Grayson Penland: [0:00] Welcome to the "Fedora Podcast," a proud member of the Destination Linux Network. This is season two, episode two. This is the podcast here to teach you about how the Fedora community works with news, interviews, and more. [0:14] I'm your host, Grayson. Today, I'm joined by Wim Taymans, who is here to talk about PipeWire. We're also going to speak with Aleksandra Fedorova about the new Annual Fedora Contributor Survey. [0:29] [music] Grayson: [0:30] Stay tuned for that. You're listening to the Fedora Podcast, a proud member of the Destination Linux network. [0:37] [music] Grayson: [0:37] Hi, Wim. How are you doing? Wim Taymans: [0:46] I'm good. I'm good. Thank you. Grayson: [0:49] Before we get into PipeWire and the technical stuff, who are you personally, and how did you get involved in Fedora? Wim: [0:58] I'm a Belgian programmer. I started programming when I was young on Commodore 64 and things like that. I cofound the GStreamer back in the day, in '99. That was a hobby. Fedora was still Red Hat back then, running on Amiga 500. That was my first Linux distro. [1:24] After that, I run Debian and Ubuntu. When I started working for Red Hat eight years ago, I switched back to Fedora. I'm very happy with that. From all the GStreamer experience, I started developing PipeWire four years ago, and now we're here. [laughs] Grayson: [1:49] You mentioned that you work with the audio system in Fedora. How does it work right now in Fedora 33 with ALSA and PulseAudio and JACK? How does that all work right now? Wim: [2:02] At the lowest levels, you to have the Linux kernel and the test drivers, which are provided by the ALSA project. ALSA has two parts, basically, the kernel drivers, and also it has a library that applications can use. [2:24] This library's rather big. It has a lot of functionality, such as plugins that do mixing in all these things, but it's all rather stacked. What happened is that ALSA wasn't able to implement all the features that you want from a modern desktop, and people started looking at alternatives. [2:47] For example, PulseAudio was developed with that as a bit more of a dynamic system to manage the ALSA hardware, but also implement Bluetooth, which is not something ALSA provides. All of the features that were implemented as ALSA plugins were moved to PulseAudio. What's left in ALSA that is interesting nowadays is only the wrapper around the kernel driver. [3:20] PulseAudio sits on top of ALSA, implements all the routing, the mixing, the conversion of formats, the management of the volumes, loading and saving settings, and all of that. [inaudible] a lot of stuff around ALSA that you can't implement. There's also JACK which is an alternative to PulseAudio so to say, but only for professional users. [3:49] It has a completely different set of goals by design. For example, it is tuned to be super-low latency. It is tuned to be very inflexible and static, so you need to configure it. It's rather hard to configure, and on default-install Fedora, it doesn't play nice with anything else. You have to touch config files to make it work. [4:20] You can make JACK and PulseAudio somewhat interoperate. People do that. There are Fedora Spins that do this and set this up properly for you, but the JACK ecosystem and together with the JACK server is very rich. [4:39] There's a lot of professional apps like digital audio workstations and tools to make filters and chains and synthesizers and all these things, but it's very hard to run these on a stock Fedora. That's the current situation in Fedora 33. Three different systems, but only one, PulseAudio, that manages all the audio. Grayson: [5:06] That's a bit of a complicated pile of audio systems. What is PipeWire in comparison to that combination? Wim: [5:16] PipeWire is a replacement for the two alternatives that we have, like PulseAudio and JACK, but it is structured in a different way. It can transfer anything multimedia-related between devices and applications. [5:37] That means images, textures, samples, MIDI, all of that stuff. As long as it is bytes, it can be sent between applications. It's different from D-Bus, for example, that applications talk to each other. It's more structured as a graph, as a multimedia graph, and it is optimized for performance. [6:02] This small little layer, it doesn't do very much. It's called PipeWire, and on top of that, you can implement things like what PulseAudio does, but also what JACK does. You can re-implement these existing audio servers on top of PipeWire. [6:21] The advantage is then you have one common layer for all of the audio services, and they can all talk to each other, interoperate, and it becomes one nice little audio experience. [6:35] You have the PipeWire layer itself, the routing of the media, and on top of that, we run a media session manager. This is something that is built-in in PulseAudio that is now abstracted. It's taken out of it and it runs a separate entity which allows us to have different behavior depending on where you're running, and you can customize it more. [6:59] There's also a PulseAudio replacement server that runs on top of PipeWire. It's very small, a relatively small daemon that translate PulseAudio protocol to PipeWire protocol. There's also a JACK replacement library that makes JACK apps run directly on top of PipeWire. Grayson: [7:20] Once we update to Fedora 34, what benefits will the average user and normal people using workstations see from PipeWire? Wim: [7:34] Hopefully, first of all, there will be no change. All of the applications that used to run should still run. It's supposed to be a drop-in replacement. [7:46] The PulseAudio server that is currently running is replaced by a smaller server that talks to PipeWire. The session manager which was already running in Fedora 33 to do the screen sharing, and stuff like that, is now also enabled for audio. It will also manage the audio device. The actual change is the PulseAudio replacement server. [8:14] All the applications, they still are the same, they do their audio stuff, and they have no idea that they're talking to a different daemon than PulseAudio, but [laughs] realistically, some people will have less issues. [8:36] There were issues with PulseAudio where it didn't work so well on some hardware. Other people will have new issues on hardware that used to work with PulseAudio but doesn't work so well with PipeWire. We need to figure out what's going on and how to make everybody happy. [8:54] For running things like games, the sentiment seems to be that it's less latency. There is less latency between the movements that you do in the game and the sound that comes out of it. Other than that, it should all work like it did before, hopefully. If there are bugs, then we need to fix them. Grayson: [9:22] That would be the benefits for normal people. What about people who would normally be running JACK, people who run studios and have big mixers and all that? What benefits will they see from switching to PipeWire? Wim: [9:36] Currently, the JACK parts are enabled, but are not 100 percent feature complete. There's two features missing. If you are running a professional studio and all of that, you may or may not be able to switch right away. [10:03] First of all, for a lot of pro audio users that are not super hardcore, maybe, or they're really able to access a lot of new apps that were traditionally difficult to run. [10:18] Tools like Carla to manually route audio to have plugins to your audio thing. Like for podcasting and things like that, it becomes a much more out-of-the-box experience. Of course, if you are using JACK tools, you will see immediately that things are much more integrated than the rest of the desktop is. [10:43] Like the control panels where you can configure volumes and stuff for devices, it's all transferred to JACK apps. All of the normal PulseAudio apps, they are part of your JACK apps now, too. It opens a lot of new possibilities which we don't exactly have explored on yet. [11:04] I think the biggest benefit now is that many pro audio users will not have to mess around with JACK anymore. They will be able to just run their applications out of the box. The more demanding users, they may or may not have to wait until all of the lost features are implemented, like latency reporting and freewheeling. Grayson: [11:29] Lots of people who run JACK are going to use something that makes it easier for them, like Fedora Jam or Ubuntu Studio, where it's already set up. With the ease of use of PipeWire and its abilities to compete with JACK, will things like Ubuntu Studio, Fedora Jam, be necessary, or could you just go straight to a workstation and use PipeWire? Wim: [11:56] Short term, these distros are still needed. Like I said, not all of JACK features are supported. If you go to an Ubuntu Studio or like Fedora Jam, you get a completely integrated solution, with all of the apps there, with the PulseAudio things tuned, with the kernel tuned for pro audio use cases. [12:21] This currently is not available in stock Fedora. Short term, these things are definitely still useful. Long term, we don't know, of course, how much of these things we can all transfer to stop Fedora, like the tuning of the kernel and all of that. It's difficult to say. Short term, yes, still needed. Grayson: [12:51] You've talked about different awesome benefits of PipeWire, like being able to use pro audio tools like Carla or the low-latency options. If I'm running Fedora 33, and I do the normal upgrade path to 34, will this all be enabled automatically for me, or do I have to do any fiddling with it? Wim: [13:14] It should all be automatically enabled for you. The PulseAudio should be replaced by PipeWire, the PipeWire implementation, and the audio path should be enabled, so it should all run automatically on top of PipeWire. Grayson: [13:32] Switching tracks from audio, there's a slightly less-talked about subject, which is PipeWire with video. What can PipeWire do with video? Wim: [13:44] Yeah, so lots of potential, but for now, it's still like Fedora 33. We use it for screen sharing, so it's basically the only way to get textures with Weyland, the compositor, into applications such as browsers for screen sharing and screen recording. [14:10] There is also a video processing part in PipeWire, but we haven't really worked on that yet. It's not really, like you also need the tools to get this working, video filters, and all of that. We have not tried to do any of these things. [14:33] What we did improve for the video part was using EMA Buff between the compositor and the clients, so that you can avoid some memory copies. Like for screen sharing in OBS Studio, for example, it should all be EMA Buff zero [inaudible] , highest possible performance. [14:50] One of the things is to improve the video processing pipelines as well, but yeah, we have been focusing on audio right now, so it's a bit on the backburner. Grayson: [15:02] Those features will be coming in a later Fedora release? Wim: [15:11] Yes, yes, definitely, yes. It's a lot of work. There is actually no tool whatsoever for any of the video processing, so like GUI tools to edit and the processing graphs don't exist. We all have to build that from scratch. Grayson: [15:33] You mentioned screen sharing and video processing on Weyland. How is PipeWire working alongside Flatpack and Weyland to create a more secure and stable system for Linux apps? Wim: [15:49] Like I said, the only way to get screen content out of Weyland, so clients cannot directly get screen content at all under Weyland, so we go through to a portal. The portal, which is a DBUS API that gives you access to exactly the screen content that you want, and with all the permissions that are asked. [16:16] It's not like some applications can just start grabbing some data from the screen and share it with everybody on the Internet. It's all pretty much secured that way, and there is a secure port between the compositor and the application itself. You cannot really get in between that. [16:38] For Flatpack's applications, for example, for PulseAudio apps that are running in a Flatpack, if they go to the PipeWire PulseAudio implementation, they will be limited in what they can do, for example, in Fedora right now. [16:59] They won't be able to mess with the system volumes and things like that, or with things from other applications. There is a limited security there, which you didn't have with PulseAudio. For example also, the JACK apps, they are not Flatpackable at all using real JACK. [17:20] We are transporting them to PipeWire JACK API, which it can be bundled in Flatpacks then. Hopefully, some of the JACK apps will become available as Flatpacks, and we get much more access to that ecosystem as well. [17:38] We will continue integration with portals, so there is currently no audio support in the portal. We will be implementing, so like you will get pop-ups or like you have grant permissions to applications when they're trying to use the microphone, these things, which we currently don't have. That is things that we can now start to think about and start to implement. Grayson: [18:07] Where outside of Fedora is PipeWire being used currently, or is it mainly being rolled out in Fedora? Wim: [18:18] We have other bleeding-edge distros that are eager to experiment with all these things. You can run this on Arch and Gentoo. One of the earliest adopters for this rolling release is that these people testing the git snapshots. [18:36] I'm not aware if it's the default or not in those distros and how these things work, but there's a very large community of people using that. It's part of Automotive Grade Linux which is a distro aim for cars. It's the default routing system for audio and video in that distro. It's been worked on. [19:10] From that project, there's also a new session manager that we're going to try to implement in Fedora in later versions which is called WirePlumber, which is like [inaudible] scripts to make stuff happen in your audio server. It's all very exciting what we can do with these things. Grayson: [19:37] Interesting. I didn't know that it was used in cars now, but that's cool to think about. I have another question about PipeWire which is what is pw-cat and its suite of tools, and what are they for? Wim: [19:53] If you are doing an audio server, you need to be able to playback samples and record samples. [20:00] We did have the emulation layer for PulseAudio, and you can use the PulseAudio tools, but we also implemented native tools that are the equivalent of all the PulseAudio tools to record from a device, to playback samples, and things like that. These things get evolved as we go because there's also a lot of JACK tools that we're now making a replacement for, like pw-link, which is a new one. [20:33] There's also a couple of modules that we're making tools of, like pw-loopback, to route the capture from a microphone directly to the speakers, and things like that. We also have pw-cli which is a tool to manipulate objects in the graph. [20:55] With all these tools, we don't know exactly where we're going with, but you have to, instead of writing code, you can use these to do a lot of stuff, like make virtual devices now with pw-loopback. It's to avoid writing codes, and basically to give a lot of options for playing around PipeWire. It's both debugging tools and actual useful tools. [21:20] [music] Grayson: [21:20] Thank you, Wim. Wim: [21:32] Thank you. [21:33] [music] Grayson: [21:46] Now, I'm joined by Aleksandra Fedorova. She's here to talk about the Annual Fedora Contributor Survey. Hi, Aleksandra. Aleksandra Fedorova: [21:55] Hi there. Grayson: [21:57] Before we go into talking about the Contributor Survey, who are you and how are you involved in Fedora? Aleksandra: [22:05] That's the long story, [laughs] but in short, I'm Aleksandra Fedorova. I work in Red Hat. I work on continuous integration topics in Fedora CentOS Stream and Red Hat Enterprise Linux, but I was a Fedora contributor long before I joined Red Hat. I was a Fedora contributor for 10 years before joining. [22:32] I was mostly involved in the Russian Fedora community, and I was the Fedora Russian...Russian Fedora ambassador. If you were at the FOSDEM, for example, you may know me from the FOSDEM booth of Fedora back when this was a thing. I participated mostly in five last FOSDEMs and worked there, but I'm involved in other areas of the project now. Grayson: [23:05] You've proposed the idea of something called the Fedora Contributor Survey, which has now gone from an idea to a reality. What is the Fedora Contributor Survey? Where did you get the idea for it? Aleksandra: [23:19] I need to clarify first, that Fedora Survey is not a new idea. It actually was in discussion. I think the ticket number one in Fedora CoreOS backtracker is actually talking about pure periodic user and contributor surveys. Conversation was going over six years. [23:39] For me, personally, the trigger to start being involved in this topic and to move forward with this was the conversation about default editor for Fedora, which I was following on Fedora mailing list. When I was reading the discussion, I was thinking that it's interesting to see different opinions and different people highlighting pros and cons of a change. [24:13] In fact, we don't have any reasonable source of data to make such decisions and to talk really about which applications are more used, which are preferred by the community, by the users, and so on. We only have anecdotal references. I know a person who uses Emacs, for example, or I know a person who uses Beam. [24:39] We don't know how many, we don't know how often, and we have no way to reason about it and make decisions in Fedora-based on data rather than feelings and expectations, in stereotypes, maybe. [24:56] This is where it was a triggering moment for me to go and actually think about the ways how we can learn about the Fedora user or Fedora contributors, their choices, their preferences in the applications and services we have in Fedora. Grayson: [25:14] Has this sort of survey ever been done in Fedora before? Aleksandra: [25:19] Exactly the Fedora Contributor Survey, we haven't run anything like this in Fedora, I think. I'm not in Fedora from the very beginning, so maybe I don't have a full information. As I mentioned, and also discussion to run the survey itself is six years old, but we only finally got there and run it. [25:49] We did run some different types of surveys in the last year, in the previous year, which was targeting more of the ambassadors, the outreach, and different areas. For the Contributor Survey, this was the first one. Grayson: [26:05] With that in mind of what the purpose of this data is, who are you hoping will respond to it? New people, or veteran users, or coders, and contributors? Are there any specific groups you'd like to get data from? Aleksandra: [26:21] The question which I mentioned as a trigger, can be actually asked in a very wide range of different audiences. In all of these audiences, it will be an interesting topic to discuss. [26:41] When we were developing the idea further, we understood that we don't try to learn everything about everyone at the same time at the first try. We scoped down the survey a bit so we can make it more effective and we can learn as we go. [27:03] In this particular edition of a survey, we are focusing on the contributors. It doesn't mean just package maintainers. It means contributors of any kind. If you're contributing to testing, if you're contributing into infrastructure, contributing via support channels, or even filing bug reports, or contributing via testing, they're all sorts of design and so on. [27:27] Here we want to not just ask what do you use, but we also try to add like a second dimension to it and try to maybe find the correlations between the tools you use and for example, services you use, or roles you have in a project. [27:56] Is there a correlation between two different parameters, not just the majority of people using VIM, for example? No. Is there a correlation between VIM users and users of Firefox browser? Something like that. [28:16] We are targeting contributors because we also want to know the correlations with your participation in the Fedora project. Again, what's your role? If you're a packager, do you still use the same tool? Do you use the same communication channels? Do you use the same news channels? and so on. [28:40] I'm honestly not sure this will give us some major insights when we first run and when we first try, but this is just the initial attempt and we will see how it works and how it can be improved. Grayson: [28:59] Why should these contributors you're targeting want to take it? Are there any incentives or is it purely a, "Do you want to contribute to Fedora and give us more insights?" Aleksandra: [29:08] The easy answer, if you contribute to Fedora, you get a badge. If you're a badge collector, please join and get one. The longer answer is it will be very helpful for Fedora project to be aware of its contributor base. It is good for a contributor to tell the rest of the community that we exist and they have specific choices and they have specific preferences. [29:38] This will give us the idea and maybe possibilities to find new connections to find new special interest groups and to direct Fedora project better so that we address the needs and the preferences of the actual contributors of a project. The main reason why you should take it is you should be part of a project and you should influence the direction of a project, and survey is one of the ways how you do that. Grayson: [30:14] Kind of you can share your opinion with the rest of the project in an easy way. Aleksandra: [30:20] Yeah. Grayson: [30:21] For this survey, what platform are you guys going to use to let people take it and why did you choose whatever you did? Aleksandra: [30:33] In this area, I'm no expert. We have people from Fedora Infrastructure, for example, people who already have experience in running surveys, and we have tools to do that, so we kindly asked them for help and they provided us with technical support on that side. [30:55] We are using the LimeSurvey platform. It's a hosted service. We don't have a self-hosted instance. We use the service provided to us. LimeSurvey is a good alternative to more, how do you say, data greedy services out there. It's more open and more respectful to the privacy of the participants and so on. [31:25] This is not the first time we use LimeSurvey as a platform. We already use it for some outreach surveys for the Mindshare work. Again, I didn't want to spend too much time on developing a special platform for this, so we went with the easy and more or less option which fits our needs and will be enough for what we purpose. Grayson: [31:55] Very cool. I'm looking at it now and it's open-source, on GitHub, and everything. Aleksandra: [32:00] It's a nice service. It's open-source, and it tries to be in line with expectations of the open-source community. Grayson: [32:09] When this survey closes and we get the results, are there any particular things you hope to clarify, or do you expect that we'll have to wait for another year or so of doing this survey before we'll see any clear trends or patterns? Aleksandra: [32:30] We definitely are going to do initial analysis and present data at Fedora Nest in August. The questions I have in mind is, the most interesting part for me would be correlation between Fedora news and discussion channels, and the Fedora roles in... [32:57] We can maybe identify if we have clusters of people who are contained in one communication medium or way of communicating which don't exchange that much of information with another cluster of people, and then we maybe consider ways to address that. Or maybe we will see that we're equally distributed across all possible communication channels and this will be a great result for us. [33:27] Questions like this already can be answered from this survey. Also, keep in mind it's indeed just the first step in setting up a yearly tradition of having the surveys. Once we will do it a couple more times, we will learn better what we can and what we cannot do with this kind of survey. [33:51] I'm looking for the feedback for the current survey because this survey right now is kind of meta survey. We want to have feedback on the survey itself so that we know how to improve next time. This part of the answers, the feedback part, is almost as important as the answers to the questions of the survey itself. Grayson: [34:20] My next question was, who gets to see the results? If you're presenting them at Nest, that's just about everyone. Aleksandra: [34:28] This is a bit tricky question. When you do a survey, you have different way to access the results. The raw data of the survey will be available for the Fedora council members and for the technical administrator of the survey. This data, while we don't expect it to be sensitive or private, we also don't want the risk of people being identified by the answers they give or the comments they will write. [35:10] We will be accessing the raw data, but then we will sanitize it and remove the things which may expose people who provided the answers and feedback. Then we will be doing some aggregated analysis. That analysis or the statistics we get from the survey then will be publicly available. [35:34] We cannot publish the raw data as is for everyone to see, because we need this additional check before we make it public. Fedora Consult will be doing that. I will be involved in that work from the beginning. Grayson: [35:57] Thank you for coming on the podcast and talking about this, Aleksandra. Aleksandra: [36:00] Thank you for inviting me. It was really nice experience. Grayson: [36:04] That was Aleksandra Fedorova. A red hatter working on CI for REL. The last item in this show today is what I'm calling what's going on Fedora. The first item is the Fedora elections are over. The council seat was won by Aleksandra Fedorova, who we just talked to about the survey. [36:27] The FESCo seats were won by Neal Gompa, Stephen Gallagher, Dan Čermák, and Mohan Boddu. I'm sorry, Mohan, I probably ruined your name. The Mindshare seat was won by Onuralp. [36:45] In other news, the Red Hat desktop engineering team is hiring and all of our official IRC channels have moved from freenode to Libera.chat, or Libera.chat, however you want to pronounce it. [37:01] Thanks to Ben Cotton, the federal program manager for this news in his Friday's Fedora facts you can find those at communityblog.fedoraproject.org . [37:11] [music] Grayson: [37:11] Thanks to Wim Taymans and Aleksandra Fedorova for coming on this episode. Our music is made by ‎Tricknology and our website is at podcast.fedoraproject.org , where you can find show notes and all of the other things. [37:32] I'm your host, Grayson, and you're listening to the Fedora Podcast, a proud member of the Destination Linux Network. I'll see you in two weeks. [37:41] [music]