Ljudcallback
Funktionen som ljuddrivrutinen anropar varje gång nästa buffert ska fyllas — och som aldrig får komma för sent.
Nästan alla ljud-API:er, från ASIO och Core Audio till JACK och Web Audio, bygger på samma modell: programmet registrerar en funktion och drivrutinen anropar den från en högprioriterad tråd, kanske tusen gånger i sekunden, med en tom buffert som ska vara fylld innan den returnerar. Med 64 sampel i 48 kHz finns ungefär 1,3 millisekunder att röra sig med.
Därav reglerna, som Ross Bencina sammanfattade 2011 under rubriken time waits for nothing: inga minnesallokeringar, inga lås, ingen fil- eller nätverks-I/O, inga systemanrop som kan blockera. Ett malloc går oftast snabbt men inte alltid, och "inte alltid" hörs som ett knäpp. Kommunikationen med resten av programmet går därför via låsfria köer. Språk med skräpsamlare har det svårt här, av samma skäl.