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
  • 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 and paplay from PulseAudio to complex e.g. Ardour

    • Process: e.g. the LADSPA plugin suite and frameworks

General-Purpose Tools

  • We will concentrate on "Swiss Army Knife" utility tools for now

    • SoX, literally "the Swiss Army knife of sound programs"

    • Audacity, a cross-platform GUI tool with more emphasis on recording, playback and editing

  • More about these tools after we've understood frequency-domain and DSP a bit better

Last modified: Monday, 8 April 2019, 9:24 PM