[HN Gopher] Making Sense of the Audio Stack on Unix ___________________________________________________________________ Making Sense of the Audio Stack on Unix Author : zdw Score : 75 points Date : 2021-02-07 17:46 UTC (5 hours ago) (HTM) web link (venam.nixers.net) (TXT) w3m dump (venam.nixers.net) | beervirus wrote: | > The audio stack is fragmented on all operating systems because | the problem is a large one. For example, on Windows the audio | APIs being ASIO, DirectSound and WASAPI. Perhaps MacOs has the | cleanest audio stack, CoreAudio, but nobody can clearly say if | they can't look at the code. PulseAudio was inspired by it. The | stack of commercial operating systems are not actually better or | simpler. | | Maybe so for developers, but _as a user_ on Windows or MacOS I | don't have to know or care about any of that stuff. Things just | work, and work sensibly. | jcelerier wrote: | > Maybe so for developers, but as a user on Windows or MacOS I | don't have to know or care about any of that stuff. Things just | work, and work sensibly. | | depends on the kind of user you are. If you're looking for the | lowest-latency possible (for instance because you play guitar | with an effect stack going through your computer) then windows | with ASIO or linux with Jack give you a better mileage on the | exact same hardware than CoreAudio | cycloptic wrote: | I would say that's not at all true on Windows if you ever have | to install multiple ASIO drivers. | nsajko wrote: | Things can just work if your expectations are low and specific | requirements are common, and this is true independently of OS. | Where Linux shines (in general), is with customization or | uncommon requirements, which in this case would AFAIK be things | like low latency audio. | bigger_cheese wrote: | As far as I know a lot of those api's like aRts and ESD have not | been relevant for 10+ years. An article from 2021 mentioning them | seems a bit strange and contributes to the impression that things | are a lot more fragmented then they really are. | | Thing have come a long way since old days when apps used to | exclusively lock the sound card. | petepete wrote: | Ah, I wish I'd have had this article back when getting working | Audio on Linux was an uphill struggle. Even knowing what to | Google was a challenge. Those times when things would all be | working and then you reboot and now nothing works, or getting to | the end of an MP3 (played in XMMS, of course) and then hearing 25 | queued-up Gaim notifications. | | Thankfully, the last ten years have been plain sailing. It just | works. Oh, except that on Gnome the volume remote half way up my | headphones cable adjusts the Pulse Audio master level rather than | the volume of the headphones themselves, but I can live with | that. | hctaw wrote: | Here's my Linux audio anecdote: I've never successfully gotten | jackd to run on my computer(s) running Ubuntu or pop_os, and | pulseaudio doesn't let me run with low enough latency to be | usable in Bitwig. I don't want to spend my time digging through | ancient forum posts on why jack/pulse can't "just work" when | everything is fine on MacOS and Windows. A reboot is faster. | | Sidenote, audio stacks are not fundamentally fragmented. | DirectSound is deprecated in favor of WASAPI. ASIO only exists | because DirectSound sucked, now WASAPI is good enough not to use | ASIO moving forward (with some hiccups, like some software doing | SRC under the hood because WASAPI doesn't let you | programmatically select sample rate - RtAudio does this, for | example). | | CoreAudio has been stable for almost 20 years. It is the gold | standard. The only problem is the almost complete lack of | documentation except for the CoreAudio mailing list. | | If you're writing audio software the solution is to use WASAPI on | windows, CoreAudio on Mac, and tell Linux users to use Windows or | MacOS if they want low latency audio. | S_A_P wrote: | There is a factual error in the article. Middle C is not 440hz, | which is an A... | froh wrote: | On a tangent this makes me feel old. Unix, wasn't that solaris, | aix, ... ? | | Today I learned: Unix now is Linux and free bsd. | | Get me right, this sounds good, great, actually. Still, it amazes | me. | shadowgovt wrote: | The audio stack on Unix is easily in my top three pet peeves of | the desktop environment. It feels like a huge case of too many | cooks in the kitchen. | | To this day, every time I upgrade my distro to a major revision I | just can't assume the audio will keep working. Latest upgrade of | Ubuntu, and I had to download alsamixer to get audio coming from | my headphones again on Zoom meetings. Both the output selector in | Zoom and the selector in Settings just... Stopped working. I | could select the headphone output, and nothing changed. | majewsky wrote: | > The audio stack on Unix is easily in my top three pet peeves | of the desktop environment. It feels like a huge case of too | many cooks in the kitchen. | | This is also my opinion, which is why I was surprised by the | conclusion of the article. Money quote: | | > The audio stack is fragmented on all operating systems | because the problem is a large one. [...] The stack of | commercial operating systems are not actually better or | simpler. [...] Linux is the platform of choice for audio and | acoustic research and was chosen by the CCRMA (Center for | Computer Research in Music and Acoustics). | | I guess my gripe is this disconnect between "desktop audio" and | "pro audio". I have my PulseAudio set up the way I want it, and | that's what I need 99% of the time, but I would like to use | Ardour when I want to record a podcast, but whenever I read the | Arch wiki about how to have PulseAudio and JACK coexist, it | looks like a huge mess that I don't want to deal with. Here's | hoping PipeWire really shapes up to be my savior one day. | cycloptic wrote: | The simplest way to do this now is to install pulseaudio- | module-jack, that works pretty seamlessly in my experience. | jcelerier wrote: | > whenever I read the Arch wiki about how to have PulseAudio | and JACK coexist, | | https://github.com/brummer10/pajackconnect | | start jack, start pulseaudio, run pajackconnect, done | enriquto wrote: | Keyboard configuration of the login screen is another favourite | of mine. ___________________________________________________________________ (page generated 2021-02-07 23:00 UTC)