Audiocallback
De functie die de audiodriver aanroept zodra de volgende buffer gevuld moet worden – en die nooit te laat mag zijn.
Vrijwel elke audio-API, van ASIO en Core Audio tot JACK en Web Audio, werkt volgens hetzelfde model: het programma registreert een functie en de driver roept die aan vanuit een thread met hoge prioriteit, misschien duizend keer per seconde, met een lege buffer die vol moet zijn voordat de functie terugkeert. Bij 64 samples en 48 kHz blijft er ongeveer 1,3 milliseconde over.
Vandaar de regels die Ross Bencina in 2011 samenvatte onder het motto time waits for nothing: geen geheugenallocatie, geen locks, geen bestands- of netwerk-I/O, geen systeemaanroepen die kunnen blokkeren. Een malloc is meestal snel, maar niet altijd, en dat "niet altijd" hoor je als een klik. Communicatie met de rest van het programma loopt daarom via lock-free wachtrijen. Talen met garbage collection hebben hier om dezelfde reden moeite mee.