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, mostly…
The new Linux buzz is around PipeWire which is PulseAudio and Jack compatible and also does video. But it is Linux-only for now, which may be a problem.
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