frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

The Audio Stack Is a Crime Scene

https://fireborn.mataroa.blog/blog/i-want-to-love-linux-it-doesnt-love-me-back-post-2-the-audio-stack-is-a-crime-scene/
83•todsacerdoti•7mo ago

Comments

PaulHoule•7mo ago
Windows is better but not much. My big PC at home isn't completely reliable to attach to Bluetooth headphones, some of which might be the fault of the particular headphones, but some of which seems to be the fault of having various sorts of "virtual" drivers installed such as for Steam, MQ 3, Immersed, etc.
mystified5016•7mo ago
Windows' Bluetooth stack is an absolute dumpster fire. They trashed the perfectly good BT stack from windows 7 and apparently had an unpaid intern write the replacement.

My day job is building widgets that connect to a windows PC over Bluetooth. The situation is so bad that we're building a dedicated RF adapter so we can have a sane stack under our control.

If your program is scanning for a particular device in the background, that device will never show up in the windows BT pairing menu. I can't even imagine how that happens. Many API calls do nothing or return garbage, many BT features are just not exposed at all, despite windows clearly having that data internally.

W10 never even had BT audio sink. You could not play audio from a remote device to your PC. W7 had it and I think W11 finally got it a few years back. Linux has always had it.

Windows' Bluetooth stack is no contest the worst available on the market. It's astonishing how poor quality Microsoft products are these days.

Macha•7mo ago
Yeah, I always feel surprised when people call out the Linux audio experience as uniquely bad. Meanwhile on Windows I need to jam voicemeter in the middle to separate inputs and outputs so I don't have games crashing to desktop because my bluetooth headset ran out of battery, while Mac makes each individual application implement volume control UI.
Ekaros•7mo ago
After upgrading to Intel Bluetooth/Wlan module I have had lot less issues.

But in general Bluetooth is just bad protocol audio...

Artoooooor•7mo ago
I'm still baffled by difference between Audacity on Windows and Linux. On Windows I have n+1 recording devices, where n is number of microphones, the 1 being stereo mix. On Linux I have gazillion cryptic names and I pray for each of them to even work. And neither of them is stereo mix, for such advanced feature I have to enable external mixer.
loa_in_•7mo ago
Stereo mix is a surprisingly neutral nontrivial feature. How do you mix the channels, are you okay with limitations of software mixer, do you want to hardware mix it on supported audio chipsets, what stereo mix means when you have three or more microphones?
pseudosaid•7mo ago
A stereo mix is in fact trivial and roughly assumes a left right speaker arrangement. Software summing is math and is the same across digital audio workstations because math is math. Are there 3 or more microphones? doesnt matter, each mic is a mono input. trying to capture a facsimile of a perceived stereo field? use ORTF mic spacing and hard pan those mono inputs appropriately.

Stereo is just dual mono. its that simple. Summing is just math, its that trivial.

Creating a mix of multiple inputs for a stereo lr output? also completely trivial from a technical standpoint. Hardly trivial from a creative pov, but that isnt what this is about.

okdood64•7mo ago
Precisely the reason I don't understand how people can daily drive Linux on their laptop. (I say laptop because additionally: trackpad issues, Bluetooth issues, etc.)

Is it much better than 10 or 20 years ago? Yes.

Is it still annoying enough and sometimes colossal waste of time? Yes. Just use a Macbook and be done with it.

xrhobo•7mo ago
I think it depends on what laptop.

Asus laptops have always worked flawlessly for me.

I am writing this on an Asus laptop with linux mint. Everything just works perfect out of the box.

I could buy three of these laptops instead of the same setup on a mac is the major selling point for me.

ringeryless•7mo ago
the cause of all this? single client ALSA driver model.

coreaudio doesn't need pulse nor jack nor pipewire to allow a single device to be opened by multiple applications.

ALSA additionally specifies every 2 channels as separate 2channel devices, so your 8 channel audio interface looks like 4.

the confusion is added to by device tree overlays such that you may find your pro audio 8 channel device is always seen as a surround setup, replete wirh highpass filtering on the principle pair of outputs, and you don't know why your poor desktop environments sound device doesn't show this...

patrakov•7mo ago
> ALSA additionally specifies every 2 channels as separate 2channel devices, so your 8 channel audio interface looks like 4.

There is no such specification. It is device-dependent and abstracted through ALSA configuration. Creative Labs indeed implemented their cards as three separate codecs, while ForteMedia used a single 6-channel codec that you can open as such at the hardware level. In both cases, you can open a single virtual "surround51" device that routes the channels correctly.

duped•7mo ago
> The stack is clean. The interfaces are better. But the expectations are still stuck in 2012.

The interfaces are absolutely not better, they're a bunch of ~~undocumented~~ C preprocessor macros that hide a pit of complexity and indirection. Pulse is mature enough that you can figure out how to interface with it, pipewire has a handful of examples and some reference documentation that doesn't make sense if you don't already know what you're looking for. Good luck if those examples don't fit nicely into your existing applications' architectures.

Pipewire is very impressive as an achievement, but the work needs to be put in to make it mature enough as a software project (meaning: documentation and well typed interfaces) before existing software can work with it.

The architecture may well be better equipped to provide stable and elegant interfaces to complex media routing problems in application software. But I couldn't tell you if that's true or not, because it's sparsely documented. An undiscoverable API is a nonexistent one.

edit: I wrote this ignorantly before looking back at the pipewire docs. They've improved since I last looked, but I still find the docs lacking (comparable to Apple's docs, which is not a compliment) and the overall interface design of Pipewire a massive challenge to grasp. It might be better, but I don't know. The last time I tried to implement direct support for pipewire in a Linux app I gave up because of its design and lack of useful documentation.

amy214•7mo ago
the interfaces are shite, from the same clown who invented systemd

just use one file per stream eg /dev/dsp/pid_tempfile eg /dev/dsp/778_gJG86h, move mix to kernel, give it a /proc interface. the unix way

nesarkvechnep•7mo ago
Another area where FreeBSD excels.
AHTERIX5000•7mo ago
The Linux audio stack is just baffling. After all these years it's still unreliable. I'm running Fedora 41 and often toggle between two audio devices, USB DAC and HDMI output. Sometimes when I change the output via Gnome settings my Flatpak apps don't care and keep playing with the previous output and other apps change as expected.

I've never edited any audio configs on this machine because I expected my 2 device setup and Gnome settings would be trivial enough for the latest Linux desktop audio solution.

thedanbob•7mo ago
A few years ago I was helping run sound at a conference which involved recording and rebroadcasting multiple audio streams simultaneously. The provided equipment included a Linux computer running a real-time kernel and routing was handled by JACK.

It was a disaster. If the USB audio interface ever disconnected, JACK crashed and wiped my routing configuration. After the first day I ditched the Linux computer and ran the whole setup through my MBA, using Reaper for both recording and routing.

wormius•7mo ago
I got bit by linux audio issues after moving from Win10 to CachyOS (arch based distro). It seemed to be working fine, but I noticed when switching to speakers a terrible digital distortion that wasn't there previously. (I'm not a linux noob, have used since Debian Bo in '97, for example, plus many other distros off and on through the years)

I spent so much time messing with alsamixer, removing pipewire, installing pulse, uninstalling pulse, readding pipewire, resetting ports and connections.

I realized it had something to do with the audio buffer (due to the echo and the distortion was "shaped" like the feedback/if that makes sense). like a half second delay feedback.

Ultimately I read up on the buffering mechanism and found that switching to the Bore-LTO kernel fixed everything. I was so desperate I was literally swapping ends of my cables between the PC and speaker, in theory it shouldn't matter but before realizing the issue when I noticed the noise was based on a delay/feedback, I had no other alternative and was at my wits end.

esbranson•7mo ago
Facts. I still don't think pavucontrol, the GTK volume control tool for PulseAudio, has been replaced by a PipeWire native tool. (I have no idea what Helvum is for, and pavucontrol has minimal backing.) And since I messed with it one time now using headphones is all jacked.

Roomba Maker iRobot Files for Bankruptcy and Will Go Private

https://www.bloomberg.com/news/articles/2025-12-15/robot-vacuum-roomba-maker-files-for-bankruptcy...
1•ksec•1m ago•0 comments

GitCrafts, AI powered documentation assistant that generates docs in 60 seconds

https://www.gitcrafts.pro/
1•deecodes•3m ago•1 comments

Zyn 0.3.0 – An extensible pub/sub messaging protocol for real-time apps

https://github.com/zyn-org/zyn/releases/tag/zyn-0.3.0
1•ortuman•7m ago•0 comments

HTML5 genetic algorithm 2D car thingy

https://rednuht.org/genetic_cars_2/
1•fanf2•8m ago•0 comments

How to Be Exceptional at Anything

https://abdulhamidhassan.com/post/802459222214410240/how-to-be-exceptional-at-anything
1•kiyanwang•9m ago•0 comments

Thread Map – Amp

https://ampcode.com/news/thread-map
1•mefengl•10m ago•0 comments

What Is PVD? Understanding Its Role in Vacuum Coating Technology

1•daugu•10m ago•0 comments

Unofficial CPython JIT performance dashboard

https://doesjitgobrrr.com/
1•lumpa•17m ago•0 comments

I deleted the database and rebuilt my portfolio tracker to be local-first

https://www.pocketportfolio.app/
1•pocketportfolio•17m ago•1 comments

FreeBSD 15.0-Release Release Notes

https://www.freebsd.org/releases/15.0R/relnotes/
2•ksec•18m ago•0 comments

Miki Eleta Clockmaker

https://www.thenakedwatchmaker.com/people-miki-eleta
1•ClaudeGustav2•26m ago•0 comments

How the 'Brussels Effect' Backfired

https://www.ft.com/content/abc3002e-a7be-48e2-8197-aeddf937afec
1•mohi-kalantari•29m ago•0 comments

The Depth Illusion

https://gm-dev.ch/surface-grafting
1•roko_•30m ago•0 comments

200k Tokens Is Plenty

https://ampcode.com/200k-tokens-is-plenty
2•handfuloflight•31m ago•0 comments

Chunked Transfer Encoding – when content length is not known

https://pinggy.io/blog/understanding_content_length_header_and_chunked_encoding/
1•ghoshbishakh•37m ago•0 comments

NotebookLM Tools – Tags, Backup/Restore Sources and Bulk Source Fixer

https://old.reddit.com/r/notebooklm/comments/1pn2yip/notebooklm_tools_tags_backuprestore_sources_...
1•trungpv1601•38m ago•0 comments

Grok Is Glitching and Spewing Misinformation About the Bondi Beach Shooting

https://gizmodo.com/grok-is-glitching-and-spewing-misinformation-about-the-bondi-beach-shooting-2...
3•tobr•43m ago•1 comments

Show HN: I built a simulator to teach PMs why they shouldn't interrupt migration

https://apmcommunication.com
1•pingananth•46m ago•0 comments

Show HN: Generate Passwords from Regex Constraints

https://gruhn.github.io/regex-utils/password-generator.html?constraints=%5E.%7B16%2C32%7D%24%0A%5...
2•ngruhn•48m ago•2 comments

2025 Open Models Year in Review

https://www.interconnects.ai/p/2025-open-models-year-in-review
1•Philpax•49m ago•0 comments

Show HN: StreamGate – A lock-free observability proxy in Go

https://github.com/sashu2310/streamgate
2•sandeepk235•52m ago•2 comments

Nth Country Experiment

https://en.wikipedia.org/wiki/Nth_Country_Experiment
1•hexhowells•52m ago•0 comments

Smooth Scrolling on the Sega Master System

https://bumbershootsoft.wordpress.com/2025/12/13/smooth-scrolling-on-the-sega-master-system/
2•rcarmo•55m ago•0 comments

Forget the far right. The kids want a 'United States of Europe.'

https://www.politico.eu/article/united-states-of-europe-online-propaganda-social-media-memes/
4•saubeidl•1h ago•4 comments

What's Wrong with Kubernetes Today

https://www.devzero.io/blog/whats-wrong-with-kubernetes-today
5•Liriel•1h ago•1 comments

Show HN: Find the Right Game Engine – Godot, Unity, Unreal, and More

https://gameenginehub.com
1•neotanp•1h ago•0 comments

The Graffiti Question

https://www.guernicamag.com/the-graffiti-question/
2•bryanrasmussen•1h ago•0 comments

Rust's v0 mangling scheme in a nutshell

https://purplesyringa.moe/blog/rusts-v0-mangling-scheme-in-a-nutshell/
1•todsacerdoti•1h ago•0 comments

Norton's dome – A paradox in Newtonian physics

https://en.wikipedia.org/wiki/Norton%27s_dome
1•ColinWright•1h ago•0 comments

Props for Web Components

https://old.reddit.com/r/javascript/comments/1pj4ros/props_for_web_components/
2•MzHN•1h ago•2 comments