Digital Audio Tools and Tooling
Audio Is Invisible
Working with audio is a pain — can only experience it by hearing
Can't take in a whole sound at once
Can't detect a lot of what's going on
Ear is in the frequency domain
Audio Frameworks
Linux, Windows, Mac, Android: no common standard for OS audio, really
PortAudio tries to provide a common API
I will mostly talk about Linux audio here, because it is what I know best
Linux Audio Frameworks
Typically several parts: drivers, system software, library interface, UI tooling
OSS: a sad piece of history
- Still common to use the OSS compatibility device
(
/dev/dsp
) provided by ALSA for simple audio things
- Still common to use the OSS compatibility device
(
ALSA provides Linux kernel drivers and a library that does some shared-memory stuff between processes
- Let me know if you want some class time on ALSA: it's a beast, but I do know a tiny bit about how it works / how to configure it
PulseAudio provides system software atop ALSA, etc; library API supports various GUI programs — this is what most systems use
Jack provides an alternative to PulseAudio aimed at low-latency audio routing for pro-grade music and sound stuff — this is what most "special" tools use
Integration between PulseAudio and Jack seems to actually work these days…
Audio Tools
Huge range of function
Generate: e.g. FluidSynth, various languages e.g. CSound)
Record / Play / Edit: simple e.g.
parecord
andpaplay
from PulseAudio to complex e.g. ArdourProcess: e.g. the LADSPA plugin suite and frameworks