Giacomo Bagnoli, "Design and development of a mechanism for low-latency real time audio processing on Linux"
Audio on personal computers, and thus in the Linux kernel too, started with
simple hardware support 16 bit stereo, half-duplex pulse code modulation
(PCM) and it has grown to multi-channel mixed analog-digital I/O, high sam-
ple rate design of current sound cards. As hardware became more powerful,
supporting higher sample rate, higher sample width, digital I/O over S/PDIF
or AES/EBU1 , more complex usage pattern became possible, growing from
relatively simple MIDI2 wavetables or MOD playback to digital multi-track
recording or to live set performance with software synthesizers driven by
real-time user MIDI input.
Computer Music is becoming the standard way to create, record and
produce or post post-produce music. Digital Audio Workstation DAW are
nowadays found in almost every new recording studio, from home recording
to professional ones, and digital audio is slowly becoming the standard way of
moving audio through the studio itself. Moreover, DJs and VJs are moving to
computer based setups, so that mixing consoles are reduced from the classic
two turntables or two CD players decks to a single laptop with the mixing
software and the Mp3 collection controlled with a USB or OSC3 interface.
Evolution of the audio subsystem of modern operating systems has followed
Meanwhile live music is leveraging software for real-time synthesis of
sound or for post-processing it with several effects, and spotting on stage
a MIDI keyboard attached to a common laptop is becoming the rule rather
than the exception. Unlike DAW or the DJ uses, when dealing with live mu-
sic there is an additional parameter to consider when setting up a computer
based system, and that is the latency between user input (i.e. key pressed
on keyboard, or the sound coming into the effect) and the produced output
(i.e. synthesized sound or effected sound).
This is the critical aspect in these situations. The musician wold like
to have as low latency as possible, but low latencies imposes on hardware,
operating system and on the software running on the computer strict real-
world timings, which the system has to catch up in order to produce sounds.
This work is focused on the operating system part, aiming at improving
total system reliability and correctness for low latency real-time audio on the
Linux kernel, leveraging the results reached by the real-time operating system research, using Resource Reservations from the real-time system theory to provide a certain Quality of Service (QoS) to solve practical problem of the audio world.