Linux Audio Essentials
This post is also in the form of a video blog. Watch the video first!
The description below is longer then the one on YouTube, which passed the maximum 5000 character limit.
The version here has all the full URLs and any extra comments I might add.
In this video, I explain how audio and sound works on Linux based comptuers and systems.
More specifically, I go over the point of sound hardware, kernel drivers such as OSS and ALSA and userspace sound servers such as PulseAudio, Jack and Pipewire.
Along the way, I discuss the advantages and drawbacks of the current implementations, as well as why one implementation is often favored over another.
Finally, I discuss the latest-and-greatest sound server, Pipewire, what it means, and how you can benefit from the improvements.
This video is a bit rambly at times, so please stick with me, and I hope you learn something throughout and feed your curiosity.
Please feel free to use the timestamps below to skip between sections!
Timestamps
Introduction
The Hardware
00:18 - Basic Hardware, Inputs and Outputs
00:36 - Sound Cards (and what they do)
01:01 - Digital Audio, PCM and extra hardware
Kernel Drivers
01:29 - Kernel Drivers! (How to interact with hardware)
01:53 -
OSS (Open Sound System)
02:12 - ALSA (Advanced Linux Sound Architecture)
02:46 - ALSA Limitations - hardware mixing/multiplexing
Userspace Sound Servers
03:54 - Pulseaudio (and sound servers)
04:25 - Benefits of PA - mixing and resampling
07:26 - Drawbacks of PA (and JACK introduction)
08:13 - JACK and its benefits
09:57 - Comparison with PA and other software
Pipewire (and ramble)
11:12 - Pipewire (and its benefits)
14:05 - Future of Pipewire
15:17 - Note on Bluetooth (rant)
- note: mostly fixed!
Links (and references)
Sound Cards
Check ALSA compatibility of a sound card
DAC and ADC
Nyquist Shannon sampling theorem
I didn't get to it in this video, but it explains why 44.1 and 48 kHz are perfectly fine.
More specifically, how we can perfectly reconstruct analog waves provided no aliasing and they are below the nyquist frequency.
-
Chris Montgomery Videos
I found these super helpful to understand digital audio and video fundamentals.
Discusses PCM and more, and also the nyquist stuff from above in video 2.
-
-
-
Kernel Driver Architecture
OSS
ie:
OSS wasn't bad, and had some afvantages over ALSA, but the licensing switch just prompted people to switch
-
ALSA
Sound card multiplexing
Pulseaudio
Jack
Pipewire
Firewire
Notes
0040 - When I say sound card, most computers have one build in these days, eg: onboard audio. Physical discrete cards are mostly a thing of the past.
0250 - Sound card multiplexing also often called hardware mixing.
1240 - There is also a “Pro Audio” mode for sound cards that splits all the channels
1705 - Most of these disconnection issues are now fixed as of the time of publishing!
Please note that due to classes and school and coop, the filming/editing/uploads of my videos are very delayed, and might not be the most sensitive. This video was filmed April 2021, Edited June-July 2021, Description written August 2021. I hate writing descriptions and thumbnails…
Watch this video on Peertube: https://peertube.tonytascioglu.com
More info is probably on my wiki: https://wiki.tonytascioglu.com
Copyright 2021 - Tony Tascioglu
I'm making this freely available under a CC-BY-SA-NC.
Email: tonytash@pm.me (not monitored 24/7)
I might not get to comments on this video until the end of my next school/work term, feel free to post anyways.
I hope you enjoyed the video and learned something!
Shoutouts
Randy MacLeod (and the rest of the Wind River Linux userspace team). I know you had asked me about Pipewire at some point, and I already had this video in the works, so hopefully you find it useful :)
Corrections