Usually I just complain here but now I have a real #Linux question: Trying to set up to run a DAW on Linux I'm reading a lot of things like JACK, Pipewire, ALSA et cetera - which is what & how does audio on Linux actually work?
-
Usually I just complain here but now I have a real #Linux question: Trying to set up to run a DAW on Linux I'm reading a lot of things like JACK, Pipewire, ALSA et cetera - which is what & how does audio on Linux actually work?
What I would like to find out is, what does the system audio chain look like & which ones of all these... apps? whatever they are are versions of the same things & which are drivers & which are necessary/optional

Preferrably in n00b speak, please

-
Usually I just complain here but now I have a real #Linux question: Trying to set up to run a DAW on Linux I'm reading a lot of things like JACK, Pipewire, ALSA et cetera - which is what & how does audio on Linux actually work?
What I would like to find out is, what does the system audio chain look like & which ones of all these... apps? whatever they are are versions of the same things & which are drivers & which are necessary/optional

Preferrably in n00b speak, please

@jwcph there is loads of historic why's, but i guess you don't care for those. But pipewire all the way in 2025.
Alsa is a mostly kernel and driver and stuff.
Pipewire is userland component to mix streams.A bit of history:
Jack and pulseaudio has been obsoleted by pipewire. Pipewire speaks to both pulse and jack clients still.
There is also oss but that's even more a relic. And arts. -
Usually I just complain here but now I have a real #Linux question: Trying to set up to run a DAW on Linux I'm reading a lot of things like JACK, Pipewire, ALSA et cetera - which is what & how does audio on Linux actually work?
What I would like to find out is, what does the system audio chain look like & which ones of all these... apps? whatever they are are versions of the same things & which are drivers & which are necessary/optional

Preferrably in n00b speak, please

@jwcph maybe this will help? This guide not just for arch linux. But I dont know anything about professional audio to double check - https://wiki.archlinux.org/title/Professional_audio
-
@jwcph maybe this will help? This guide not just for arch linux. But I dont know anything about professional audio to double check - https://wiki.archlinux.org/title/Professional_audio
@ascii_only Thank you, it might - not sure I understand all of it but I'm trying my best

-
@jwcph there is loads of historic why's, but i guess you don't care for those. But pipewire all the way in 2025.
Alsa is a mostly kernel and driver and stuff.
Pipewire is userland component to mix streams.A bit of history:
Jack and pulseaudio has been obsoleted by pipewire. Pipewire speaks to both pulse and jack clients still.
There is also oss but that's even more a relic. And arts.@svuorela Thank you, seems I should give PipeWire a go
follow-up question, if you know: Am I right that JACK / PipeWire also handles MIDI? Because the "correct" Reaper can't seem to see MIDI devices either... -
@svuorela Thank you, seems I should give PipeWire a go
follow-up question, if you know: Am I right that JACK / PipeWire also handles MIDI? Because the "correct" Reaper can't seem to see MIDI devices either... -
Usually I just complain here but now I have a real #Linux question: Trying to set up to run a DAW on Linux I'm reading a lot of things like JACK, Pipewire, ALSA et cetera - which is what & how does audio on Linux actually work?
What I would like to find out is, what does the system audio chain look like & which ones of all these... apps? whatever they are are versions of the same things & which are drivers & which are necessary/optional

Preferrably in n00b speak, please

@jwcph @mosgaard I’m documenting my process on this (newish to #Linux in that I’ve used it for 15 years, but am making a push to move everything there this year). There’s a pinned post on my Linux Audio Considerations that you can read.
@amadeus is also documenting his process with a bit more experience.
It might help to know which #DAW and which #Distro you are using as well as if you have an #AudioInterface (which one) and any specific goals or needs.
-
Usually I just complain here but now I have a real #Linux question: Trying to set up to run a DAW on Linux I'm reading a lot of things like JACK, Pipewire, ALSA et cetera - which is what & how does audio on Linux actually work?
What I would like to find out is, what does the system audio chain look like & which ones of all these... apps? whatever they are are versions of the same things & which are drivers & which are necessary/optional

Preferrably in n00b speak, please

ALSA are drivers to talk to hardware - 90% of audio interfaces (whatever enables you to plug an audio cable into your computer) use ALSA. (exceptions are FireWire interfaces and some other). if a new audio interface is 'incompatible' with Linux, it means it doesn't have an ALSA driver (aka kernel module) - yet.
on top of #ALSA drivers (so, using those drivers) there were two systems in last decade:
PulseAudio - designed to be invisible way to handle all desktop audio - mutiple application would be able to send sound to your audio output (to ALSA). not capable of low-latency audio needed for professional music/audio work. if you had multiple outputs (ALSA), like HDMI or analog out, you could choose one of those for a particular application (like web browser), and similarly for inputs (microphones etc)
JACK audio server - low latency, designed for pro audio work, allowed completely free patching between multiple applications (ins and outs), standalone audio plugins, and audio interface(s) - essentially infinite patchbay among "everything". all decent audio apps work with JACK, but not 'desktop' apps, something like web browsers for example.
at first #JACK and #PulseAudio were incompatible - you were supposed to suspend (or uninstall) PulseAudio in order to use JACK and vice-versa. they fought for access to ALSA. Later on, bridges were developed so you could send sound from web browser (that was using PulseAudio) to your DAW (that was using JACK) or output from DAW to OBS or internet radio... this patching was enabled by JACK.
audio apps needed code to talk to any of these two systems. they needed to be compatible with JACK, or/and PulseAudio.
last few years PipeWire ( @pipewire ) appeared to replace JACK and Pulse at the same time and be very transparent and invisible but still configurable if you so needed. Like JACK and PulseAudio it also sits on top of ALSA drivers, but "acts" like it's Pulse and/or JACK. the idea seems to be that replacing JACK and PulseAudio is easy if nothing needs to be changed in those apps. so applications think they are sending audio to JACK but are actually sending it to PipeWire 'in disguise'. it's extremely good at pretending (tech speak: it uses same API). So, if you are using (running) PipeWire, you cannot use (run) JACK or/and PulseAudio.
PipeWire is amazing solution. it also automatically discoveres new audio devices like usb headphones, or Bluetooth speakers and makes the default audio output. you can unplug your audio devices and apps won't notice. It's still a bit rough on the edges, but it's getting better and better.
MIDI? well, it's complicated: there's ALSA MIDI and JACK MIDI. Just two different systems trying to do patching between apps. So some apps will show one, and some the other. I think PipeWire tries to make this irrelevant by bridging these two, but it's not always successful. It should be accessible in PipeWire patchbay app like 'qpwgraph'.
Sorry if that's too long, but I hope it is understandable enough. And sorry for so many edits.
-
ALSA are drivers to talk to hardware - 90% of audio interfaces (whatever enables you to plug an audio cable into your computer) use ALSA. (exceptions are FireWire interfaces and some other). if a new audio interface is 'incompatible' with Linux, it means it doesn't have an ALSA driver (aka kernel module) - yet.
on top of #ALSA drivers (so, using those drivers) there were two systems in last decade:
PulseAudio - designed to be invisible way to handle all desktop audio - mutiple application would be able to send sound to your audio output (to ALSA). not capable of low-latency audio needed for professional music/audio work. if you had multiple outputs (ALSA), like HDMI or analog out, you could choose one of those for a particular application (like web browser), and similarly for inputs (microphones etc)
JACK audio server - low latency, designed for pro audio work, allowed completely free patching between multiple applications (ins and outs), standalone audio plugins, and audio interface(s) - essentially infinite patchbay among "everything". all decent audio apps work with JACK, but not 'desktop' apps, something like web browsers for example.
at first #JACK and #PulseAudio were incompatible - you were supposed to suspend (or uninstall) PulseAudio in order to use JACK and vice-versa. they fought for access to ALSA. Later on, bridges were developed so you could send sound from web browser (that was using PulseAudio) to your DAW (that was using JACK) or output from DAW to OBS or internet radio... this patching was enabled by JACK.
audio apps needed code to talk to any of these two systems. they needed to be compatible with JACK, or/and PulseAudio.
last few years PipeWire ( @pipewire ) appeared to replace JACK and Pulse at the same time and be very transparent and invisible but still configurable if you so needed. Like JACK and PulseAudio it also sits on top of ALSA drivers, but "acts" like it's Pulse and/or JACK. the idea seems to be that replacing JACK and PulseAudio is easy if nothing needs to be changed in those apps. so applications think they are sending audio to JACK but are actually sending it to PipeWire 'in disguise'. it's extremely good at pretending (tech speak: it uses same API). So, if you are using (running) PipeWire, you cannot use (run) JACK or/and PulseAudio.
PipeWire is amazing solution. it also automatically discoveres new audio devices like usb headphones, or Bluetooth speakers and makes the default audio output. you can unplug your audio devices and apps won't notice. It's still a bit rough on the edges, but it's getting better and better.
MIDI? well, it's complicated: there's ALSA MIDI and JACK MIDI. Just two different systems trying to do patching between apps. So some apps will show one, and some the other. I think PipeWire tries to make this irrelevant by bridging these two, but it's not always successful. It should be accessible in PipeWire patchbay app like 'qpwgraph'.
Sorry if that's too long, but I hope it is understandable enough. And sorry for so many edits.
@jwcph to add a real world use-case here.
i've recently got a pretty goot ThinkPad laptop, installed LinuxMint one it that came with PipeWire.
I do all of my pro audio work on it via PipeWire - SuperCollider programming - including live-coding performances, Ardour recording and editing, DJ-jing with Mixxx, and also some real-time processing on stage performances (mainly Autotuner), OBS streaming, and daily casual web browsing, or playing videos.. I can plug pro USB audio interfaces like Behringer X18 AIR mixer, tiny cheap USB wired in-ear headphones, or connect to Bluetooth speakers at home. It all appears in the
qpwgraph1 app where I can patch anything to anything.So in 99% I'm satisfied with PipeWire. I'm need to test more and learn how to force it very low latency - something I was able to do on the commandline with Jack, and I have a problem with ALSA driver with my integrated soundcard (sometimes it glitches out for few seconds), but that's quite a particular problem to this hardware I think.
-
@jwcph @mosgaard I’m documenting my process on this (newish to #Linux in that I’ve used it for 15 years, but am making a push to move everything there this year). There’s a pinned post on my Linux Audio Considerations that you can read.
@amadeus is also documenting his process with a bit more experience.
It might help to know which #DAW and which #Distro you are using as well as if you have an #AudioInterface (which one) and any specific goals or needs.
@ambientspace @jwcph @mosgaard @amadeus I'm also documenting my process, too.
The good news is that REAPER runs awesome with PipeWire pretending to be JACK. Better low latency than I get on Windows.
-
Usually I just complain here but now I have a real #Linux question: Trying to set up to run a DAW on Linux I'm reading a lot of things like JACK, Pipewire, ALSA et cetera - which is what & how does audio on Linux actually work?
What I would like to find out is, what does the system audio chain look like & which ones of all these... apps? whatever they are are versions of the same things & which are drivers & which are necessary/optional

Preferrably in n00b speak, please

@jwcph I'm a bit late to the party. I seem to have missed your question. Are you all set now, or do you still have questions?
-
@jwcph I'm a bit late to the party. I seem to have missed your question. Are you all set now, or do you still have questions?
@amadeus Definitely not all set
info still very much welcome 
-
J jwcph@helvede.net shared this topic
-
@amadeus Definitely not all set
info still very much welcome 
@jwcph 2/2
4. Install Helvum or qpwgraph to explore and manage PipeWire’s routing capabilities.
5. Install DAW.
6. Optional: Install plugins — see https://linuxdaw.org/ for native options
7. Optional: Tune your system for low latency and stability with Millisecond
PD: In my experience, MIDI (via USB or your audio interface) usually works without any ado out of the box.
-
@jwcph to add a real world use-case here.
i've recently got a pretty goot ThinkPad laptop, installed LinuxMint one it that came with PipeWire.
I do all of my pro audio work on it via PipeWire - SuperCollider programming - including live-coding performances, Ardour recording and editing, DJ-jing with Mixxx, and also some real-time processing on stage performances (mainly Autotuner), OBS streaming, and daily casual web browsing, or playing videos.. I can plug pro USB audio interfaces like Behringer X18 AIR mixer, tiny cheap USB wired in-ear headphones, or connect to Bluetooth speakers at home. It all appears in the
qpwgraph1 app where I can patch anything to anything.So in 99% I'm satisfied with PipeWire. I'm need to test more and learn how to force it very low latency - something I was able to do on the commandline with Jack, and I have a problem with ALSA driver with my integrated soundcard (sometimes it glitches out for few seconds), but that's quite a particular problem to this hardware I think.
@prinlu Thank you so much for this comprehensive & very understandable explanation!
You have nothing to apologize for - I truly appreciate you taking the time 🥰 -
@ambientspace @jwcph @mosgaard @amadeus I'm also documenting my process, too.
The good news is that REAPER runs awesome with PipeWire pretending to be JACK. Better low latency than I get on Windows.
@fortifieduniverse @ambientspace @mosgaard @amadeus Glad to hear this - I'm using Reaper too & definitely not in the mood for switching to anything else

-
-
@jwcph @mosgaard I’m documenting my process on this (newish to #Linux in that I’ve used it for 15 years, but am making a push to move everything there this year). There’s a pinned post on my Linux Audio Considerations that you can read.
@amadeus is also documenting his process with a bit more experience.
It might help to know which #DAW and which #Distro you are using as well as if you have an #AudioInterface (which one) and any specific goals or needs.
@ambientspace @mosgaard @amadeus Thank you, I think I found it
I'm using Reaper on Zorin 18 - btw I would also need to get Davinci Resolve up & running if I ever get to switching my other Mac to Linux, I see you have some info there, too 
My audio interface is an M-Audio M-Track DUO & I've got an AKAI MPK Mini IV for MIDI.
My goal is strictly amateur Bedroom Producing, for now anyway

-
@jwcph 2/2
4. Install Helvum or qpwgraph to explore and manage PipeWire’s routing capabilities.
5. Install DAW.
6. Optional: Install plugins — see https://linuxdaw.org/ for native options
7. Optional: Tune your system for low latency and stability with Millisecond
PD: In my experience, MIDI (via USB or your audio interface) usually works without any ado out of the box.
@amadeus Thank you very much
is the order of operations crucial? As in, should I remove Reaper, then re-install it at the proper step? Thanks for the plugin link, too - I'm also trying to get Windows plugins to work with Yabridge; there's a few I don't want to leave behind (and not just because I paid for them) but I will definitely prefer going native where I can.
-
@jwcph 2/2
4. Install Helvum or qpwgraph to explore and manage PipeWire’s routing capabilities.
5. Install DAW.
6. Optional: Install plugins — see https://linuxdaw.org/ for native options
7. Optional: Tune your system for low latency and stability with Millisecond
PD: In my experience, MIDI (via USB or your audio interface) usually works without any ado out of the box.
@amadeus No, sorry, far above my head... I did find out that I have PipeWire running & I got non-Flatpak Reaper to stop throwing an error, but I had to download QJackCtl to launch the JACK server - and I still don't know how to get Reaper to recognize any inputs at all.
Somebody else suggested I try using Flatseal to overcome the sandboxing issue with Flatpak Reaper, in which everything else works - might work, if I can find out what to set/allow/add... not tonight tho -_-
-
@amadeus No, sorry, far above my head... I did find out that I have PipeWire running & I got non-Flatpak Reaper to stop throwing an error, but I had to download QJackCtl to launch the JACK server - and I still don't know how to get Reaper to recognize any inputs at all.
Somebody else suggested I try using Flatseal to overcome the sandboxing issue with Flatpak Reaper, in which everything else works - might work, if I can find out what to set/allow/add... not tonight tho -_-
@amadeus To clarify, I followed your steps but can't find out how to patch anything - my status now is I have a non-FP Reaper which loads the Yabridge stuff but nothing else works & an FP Reaper in which everything seems to work except the Yabridge stuff...
- and now my brain is tired, I'll have to get back to it later.