Table of Contents

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.

Extra Insight

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

(grouped by topics)

Introduction

The Hardware

Kernel Drivers

Userspace Sound Servers

Pipewire (and ramble)

- note: mostly fixed!

Sound Cards

Check ALSA compatibility of a sound card

DAC and ADC

Nyquist Shannon sampling theorem

Chris Montgomery Videos

Kernel Driver Architecture

OSS

ALSA

https://www.alsa-project.org/wiki/Main_Page

Sound card multiplexing

Pulseaudio

Jack

Pipewire

Firewire

Notes

Contact me

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