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!
Links are shortened to fit 5000 characters.
Full description at https://wiki.tonytascioglu.com/doku.p...
Timestamps
Introduction
00:00 - 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!
17:52 - Conclusion
Links
Sound Cards
https://bit.ly/2UvGBgE
Check ALSA compatibility of a sound card
https://bit.ly/3xWEz72
DAC and ADC
https://bit.ly/3j0SQLG
https://bit.ly/3y2S0Cj
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.
https://bit.ly/3subi2s
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.
https://bit.ly/3z38VWX
https://bit.ly/3AVppkf
https://bit.ly/3sx0Siw
Also see Chris' blog while you're at it, some interesting reads:
https://bit.ly/3k8HNiR
Kernel Driver Architecture
I found this a simple overview when researching
https://bit.ly/3AWt7dv
OSS
https://bit.ly/2W13Q37
https://bit.ly/380v4t4
ALSA
https://bit.ly/2UBKAbI
The sound card compatibility list is above. The Gentoo and Arch wiki entries are useful.
https://bit.ly/2XCca9L
https://bit.ly/3sxsKmu
Sound card multiplexing
https://bit.ly/380v8ZQ
https://bit.ly/3gfFeKA
Use a sound server. Don't do this manually https://bit.ly/384QKUB
Pulseaudio
Homepage: https://bit.ly/3z9Fjas
User docs: https://bit.ly/3CUQHsO
Git: https://bit.ly/3meKF0k
As usual, the arch page and examples are good:
https://bit.ly/3z4lMbk
https://bit.ly/3D33cCH
Jack
Homepage: https://bit.ly/3mfGqld
Jack1 git: https://bit.ly/3yYKr0O
Jack2 git: https://bit.ly/3miJsoE
Wiki (and tools using Jack) https://bit.ly/3mhBGeF
Archwiki: https://bit.ly/3y0LbRN
Pipewire
Hoempage: https://bit.ly/3B0RPcP
Neat demo and features, and other benefits discussed on hackaday here: https://bit.ly/3kceL1I
Archwiki as always: https://bit.ly/3j0Ypd2
Wiki - contains useful config parameters for pulse and jack: https://bit.ly/3ghHPUi
Git: https://bit.ly/3j22q0J
Firewire
If you have one, your best bet is https://bit.ly/3gdeyKH
Notes (no : to avoid YT linking it)
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!
I'll add more notes as I remember when rewatching this.
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.
Thanks to
Randy MacLeod (and the rest of the Wind River Linux 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 :)
Misc
Watch this video on Peertube: https://bit.ly/3D5i57o
Copyright 2021 - Tony Tascioglu
I'm making this freely available under a CC-BY-SA-NC.
Email: [email protected]
I hope you enjoyed the video and learned something!
#Linux #Audio #Pipewire
Corrections
MIDI stands for Musical Instrument Digital Interface
Watch video Linux Audio Explained (ALSA vs PulseAudio vs JACK vs Pipewire Explained) online without registration, duration hours minute second in high quality. This video was added by user Tony Tascioglu (TechnoTony) 20 August 2021, don't forget to share it with your friends and acquaintances, it has been viewed on our site 148,444 once and liked it 5 thousand people.