Callback de audio
La función que el controlador de audio llama cada vez que hay que llenar el siguiente búfer, y que nunca puede llegar tarde.
Casi todas las API de audio, de ASIO y Core Audio a JACK y Web Audio, siguen el mismo modelo: el programa registra una función y el controlador la llama desde un hilo de alta prioridad, quizá mil veces por segundo, con un búfer vacío que debe estar lleno antes de volver. Con 64 muestras a 48 kHz quedan unos 1,3 milisegundos de margen.
De ahí las reglas que Ross Bencina resumió en 2011 bajo el título time waits for nothing: nada de reservar memoria, nada de cerrojos, nada de E/S de archivos o de red, ninguna llamada al sistema que pueda bloquear. Un malloc suele ser rápido, pero no siempre, y ese «no siempre» se oye como un chasquido. La comunicación con el resto del programa pasa por colas sin bloqueo. A los lenguajes con recolector de basura les cuesta aquí, por la misma razón.