Renderizado/Sincronización
Procesamiento del audio en quantums para consistencia temporal y control
En I/O, el renderizado del grafo de audio se realiza en bloques de frames de muestra (sample-frames) cuyo tamaño permanece constante durante toda la vida de un AudioGraph. A la cantidad de frames en cada bloque se le llama tamaño de quantum de renderizado (render quantum size), y al bloque en sí, quantum de renderizado (render quantum).
El valor predeterminado del render quantum es 128, aunque puede modificarse.
El hilo de renderizado de un AudioGraph está controlado por un callback a nivel del sistema, que se invoca periódicamente a intervalos regulares. Las operaciones que se ejecutan de forma atómica en un hilo solo pueden realizarse cuando no hay otra operación en curso.
Durante cada llamada, el sistema procesa un buffer de tamaño variable medido en frame de muestra, que debe calcularse antes de que llegue el siguiente callback. Por cada callback, se calcula un valor de carga dividiendo el tiempo de ejecución entre el tamaño del búfer.
El concepto de callback y valor de carga no aplican a OfflineAudioGraph.
Rendimiento
La calidad de la experiencia depende de la baja latencia y ausencia de interrupciones.
La latencia es el retraso entre un evento de entrada y la percepción del sonido, y resulta de la suma de factores como la latencia del dispositivo de entrada, el buffering, el procesamiento, la latencia del dispositivo de salida e incluso la distancia física a los altavoces.
Los glitches de audio —chasquidos o pops audibles— son fallos que interrumpen el flujo continuo de sonido. Pueden originarse por problemas en los hilos de audio (como latencias) o por una carga de procesamiento que excede la capacidad de la CPU.
Ambos problemas requieren optimización para garantizar estabilidad
Última actualización