Open Sound Control ( OSC ) es un protocolo para conectar en red sintetizadores de sonido , computadoras y otros dispositivos multimedia para fines tales como interpretación musical o control de espectáculos . Las ventajas de OSC incluyen interoperabilidad , precisión, flexibilidad y organización y documentación mejoradas. [1] Sus desventajas incluyen codificación ineficiente de información , mayor carga en procesadores integrados , [2] y falta de mensajes estandarizados/interoperabilidad. [3] [4] [5] La primera especificación fue publicada en marzo de 2002.
OSC es un formato de contenido desarrollado en CNMAT por Adrian Freed y Matt Wright comparable a XML , WDDX o JSON . [6] Originalmente estaba destinado a compartir datos de interpretación musical ( gestos , parámetros y secuencias de notas) entre instrumentos musicales (especialmente instrumentos musicales electrónicos como sintetizadores ), computadoras y otros dispositivos multimedia. OSC a veces se utiliza como una alternativa al estándar MIDI de 1983 , cuando se desea una resolución más alta y un espacio de parámetros más rico. Los mensajes OSC se transportan a través de Internet y dentro de subredes locales utilizando UDP/IP y Ethernet . Los mensajes OSC entre controladores gestuales generalmente se transmiten a través de puntos finales en serie de USB envueltos en el protocolo SLIP . [ cita requerida ]
Las principales características de OSC, en comparación con MIDI, incluyen: [1]
Existen docenas de aplicaciones OSC, incluidos entornos de procesamiento de sonido y medios en tiempo real, herramientas de interactividad web, sintetizadores de software, lenguajes de programación y dispositivos de hardware. OSC ha alcanzado un amplio uso en campos que incluyen la expresión musical , la robótica, las interfaces de interpretación de video, los sistemas de música distribuida y la comunicación entre procesos .
El estándar de la comunidad TUIO para interfaces tangibles como la multitáctil se basa en OSC. De manera similar, el sistema GDIF para representar gestos integra OSC.
OSC se utiliza ampliamente en controladores musicales experimentales y se ha incorporado a varios productos comerciales y de código abierto.
El lenguaje de programación musical Open Sound World (OSW) está diseñado en torno a la mensajería OSC. [7]
OSC es el núcleo de la API del complemento DSSI , una evolución de la API LADSPA, cuyo objetivo es que la interfaz gráfica de usuario interactúe con el núcleo del complemento mediante mensajes al host del complemento. LADSPA y DSSI son API dedicadas a los efectos de audio y sintetizadores.
En 2007, se propuso un espacio de nombres estandarizado dentro de OSC llamado SYN, para la comunicación entre controladores, sintetizadores y hosts.
Entre los programas notables con implementaciones de OSC se incluyen:
El hardware notable con implementaciones de OSC incluye:
Los mensajes OSC consisten en un patrón de dirección (como /oscillator/4/frequency
), una cadena de etiqueta de tipo (como ,fi
para un argumento float32 seguido de un argumento int32 ) y los argumentos mismos (que pueden incluir una etiqueta de tiempo). [8] Los patrones de dirección forman un espacio de nombres jerárquico , que recuerda a una ruta del sistema de archivos Unix , o una URL , y hacen referencia a " Métodos " dentro del servidor, que se invocan con los argumentos adjuntos . Las cadenas de etiqueta de tipo son una representación de cadena compacta de los tipos de argumentos. Los argumentos se representan en forma binaria con alineación de cuatro bytes . Los tipos principales admitidos son
Se incluye un mensaje de ejemplo en la especificación (con bytes de relleno nulos representados por ␀): /oscillator/4/frequency␀,f␀␀
, seguido de la representación float32 de 4 bytes de 440.0: 0x43dc0000. [9]
Los mensajes se pueden combinar en paquetes, que a su vez se pueden combinar en paquetes, etc. Cada paquete contiene una marca de tiempo, que determina si el servidor debe responder inmediatamente o en algún momento en el futuro. [8]
Las aplicaciones suelen emplear extensiones de este conjunto básico. Más recientemente, algunas de estas extensiones, como un tipo booleano compacto, se integraron en los tipos básicos requeridos de OSC 1.1.
Las ventajas de OSC sobre MIDI son principalmente la conectividad a Internet, la resolución del tipo de datos y la relativa facilidad para especificar una ruta simbólica, en contraposición a especificar todas las conexiones como números de siete bits con tipos de datos de siete o catorce bits. [8] Sin embargo, esta legibilidad humana tiene la desventaja de ser ineficiente para transmitir y más difícil de analizar por el firmware incorporado. [2]
La especificación no define ningún método OSC ni ningún contenedor OSC en particular. Todos los mensajes están definidos por la implementación y varían de un servidor a otro.
{{cite web}}
: Falta o está vacío |url=
( ayuda )Una de las razones por las que OSC aún no ha reemplazado a MIDI es que no hay una conexión y reproducción... No existe un espacio de nombres estándar en OSC para la interfaz, por ejemplo, un sintetizador.
OSC sufre un superconjunto de este problema: es anarquía, y deliberadamente. Los propietarios de la especificación han estado tan ansiosos por evitar imponerle restricciones que se ha vuelto cada vez más difícil para el hardware lidiar con ella. … Más grave aún, existe un problema de interoperabilidad. OSC carece de un espacio de nombres definido incluso para los intercambios musicales más comunes, hasta el punto de que no se puede usar para enviar C central desde un secuenciador a un sintetizador de manera estandarizada.
OSC también introduce nuevos obstáculos. En primer lugar, dado que no hay un conjunto fijo de mensajes, cada servidor participante necesita saber qué mensajes puede enviar a los servidores con los que pretende comunicarse. Actualmente, el estándar OSC no proporciona un medio para descubrir programáticamente todos los mensajes a los que responde un servidor.