Estoy explorando el rendimiento midi en OS X
Mi plataforma de prueba es un parche puredata que envía una nota en una interfaz midi, luego mide el tiempo que tardó en volver a otra.
Probé diferentes hardware y software como interfaces de entrada/salida:
Siempre obtengo un retraso de 10 a 30 ms para el viaje de ida y vuelta (puredata MIDI OUT -> interfaz -> puredata MIDI IN), así que supongo que hay entre 5 y 15 ms perdidos en la entrada y lo mismo en la salida.
Probé la misma configuración con abeton live en lugar de puredata y obtuve el mismo resultado.
¿Alguien es testigo del mismo tipo de resultado, o mejor, tiene una solución?
Para responder a la primera parte, no, las Mac no presentan inherentemente ninguna latencia. CoreAudio es sólido como una roca, tiene una sobrecarga extremadamente baja y es una de las principales razones por las que la gente elige Mac para el audio. Obtengo una latencia de < 2 ms en Ableton con mi Apogee Duet.
Lo más probable es que su latencia provenga de la interfaz. Probablemente haya algún editor externo con un tamaño de búfer o una configuración del tipo "habilitar compensación de retraso".
No usaría Node ni nada que ejecute JavaScript para audio. Está bien para los juguetes de audio web, pero los idiomas interpretados no son buenos para nada con una latencia muy baja.
¡Finalmente encontré la razón!
En realidad fue culpa de Ableton. Hablamos con un ingeniero de Ableton que nos explica que está ocurriendo algo de magia negra en la pila Midi de Live. Retrasará algunos midi para que coincida con la latencia de audio del sistema.
La latencia agregada de 20 ms está vinculada al búfer de audio (y aumentará si aumenta el búfer de audio)
Eso tiene sentido para Ableton Live, pero no tanto para la evaluación comparativa de latencia.
Pure Data hace algo similar. Hay un parámetro de "Retraso (ms)" en la configuración de audio. De hecho, afectará la latencia MIDI (muy engañoso). TBH, no sé si también afecta el audio.
Fin de la historia, fue el software de prueba el que tuvo la falla, y no el software que se estaba probando ni el sistema operativo :)
Todd Wilcox
Tetsujin
Tetsujin
Todd Wilcox
Tetsujin
Edwin Joassart
Todd Wilcox
Edwin Joassart