this post was submitted on 04 Sep 2023
59 points (95.4% liked)
Linux
47958 readers
1508 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Pipewire is the new hotness. I've read comments from various audio engineers and programmers that pipewire "gets it right".
Pipewire came out in 2017, pulseaudio in 2004.
"PipeWire has received much praise, especially among the GNOME and Arch Linux communities. Particularly as it fixes problems that some PulseAudio users had experienced, including high CPU usage, Bluetooth connection issues, and JACK backend issues."
https://en.m.wikipedia.org/wiki/PipeWire
https://en.m.wikipedia.org/wiki/PulseAudio
Audio engineer here. Anything ALSA inherently does not "get it right". It's time for Linux to get HAL audio drivers
What sort of problems have you heard of or seen? I'd like to hear your different perspective, if that's ok with you?
Fewer kernel calls between hardware and software for loerw latency processing of audio is a must, there is a minimum amount of latency you can have with audio for anyone performing and that's debated by a total round trip time frame. From the second someone plays a note on say a guitar to the moment the resulting sound comes out of their speakers and into their ears is rather critical for timing.
Trouble is to do most anything with digital audio you require a buffer (here we add more latency) so that we can do the things we need to. Your audio device will have it's own buffer (and in the case of ALSA and Linux) your operating system will implement what's considered an audio "server" which will add is own buffer to route to whatever you are thinking you need to do and blah blah so on so forth. HAL drivers like ASIO mean you have much higher stability and much lower latency as you now have fewer buffers which is less added latency, fewer interruptus to deal with, and everything just kinda works in harmony. If you want to learn more consider first learning what ALSA is or any of the terms I originally used. I suggested starting with the wiki page where all of this is already explained
Disclamer: I touched kernel driver development only for tiny TRNG driver for Rockchip SoC, but I mostly write user-space applications and did not touch audio directly as developer(only through OpenAL-soft).
My eyes!
Correct, audiocards don't implement raw dac access because it is jittery shit.
And here you are mixing everything together to the point of being incorrect. ALSA is not audio server, it is audio userpace-to-driver api. You can opt for using audio server and you can opt to make alsa application to go through 11 out of 9 ring of hell to use audio server. There are two buffer at this point: one on your audio card(and you can do nothing about it) and one(or multiple "parallel" if mixing is enabled) in ALSA driver.
Please stop adding more and more abstraction layers.
Ah, monopolistic(exclusive) mode. So many people complained about mixing being disabled by default, now people complain of it being enabled by default. I want to make a joke about OSS(deprecated API back in 90-ies).
ALSA is as stable as it gets. If your software is unable to keep-up with updates, then write software better.
So less latency or less interrupts? To reduce amount of interrupts you need to increase size of buffer and latency. Opposite is also true. You cannot say C and D both are less then A and B in A*B=C*D. At least using regular algebra.
Now I really want to know what you know about ALSA because it seems you don't know it well even as a user.
Funfact: you can force any application using ALSA to exclusive mode. Expect exclusive mode side-effects: no sound from other applications.
ASIO is not an audio server running in exclusive mode. I mean just there, that alone makes me understand you completely have no idea what you are talking about, the rest of the gibberish you spewed here is funny but that's the biggest red flag. Thank you my guy, for deciding not to research anything about this subject then write a nice long comment attempting to make my look like an idiot while doing no research at all and wasting my time and the time of anyone else reading here and making an attempt to worsen the Linux community in doing so. Bravo, thank you so much
I never said that. ASIO is a driver running in exclusive mode. ALSA is a driver, that just so happens to be able to run in exclusive mode. If you searched here for "Direct Read / Write transfer", then you would have seen this:
ASIO is still not an audio driver running in exclusive mode, my brother in Christ how do you not understand this
So you want to say ASIO has software mixing? Really?
I don't know how you got so confused about this. Noting I said was incorrect to begin with you just love of made your own nonsense explanation for everything. I suggest doing some research on the subject. YIKES! Lemmy dunnings strike again
This got me curious what these acronyms were. I found this information interesting.
https://hal.science/hal-03116888/document
I suspect they meant “Hardware Abstraction Layer” for “HAL”
Well if they had actually added something other than "that bad, this good" we might actually know.
I don't think it's entirely necessary to explain the entire topic in a simple lemmy comment about something that is so easy to search for and learn about.
Which is what any OS already is.
I’m assuming it’s a complaint about how low level ALSA is compared to the, E.G. Audio HAL in Android
Well, being low level is exactly what lets to extract better performance, lower latency and other good stuff.
There’s still a fine line to draw between usability and performance
ALSA is too low level for musicians to reasonably understand
Having something like PipeWire to make it easier to configure isn’t a bad thing
People here also are asking for super low-latency
That’s another nice thing about PipeWire.
It supports configuring JACK for you if you need low latency
One person above(Audbol) want to go even lower.
You lost track of the conversation. That was about ALSA
Can you elaborate on what specifically makes ALSA bad, and what you mean by HAL audio drivers?
I answered below, you can also read on any of the ALSA pages as well as the wiki page for it. Wealth of knowledge on the subject is available
https://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
When you tell RTFM expect to see manual stating opposite of your point.
That's still not direct hardware, if you think you cracked the code then by all means show everyone otherwise, this would be a huge deal for a lot of people
Not direct enough? It literally says it will send your buffer straight to soundcard without creating any additional buffers.
Other people under this post complain of ALSA being too direct.
Nobody is