
Open Sound Control ( OSC ) es un protocolo para la interconexión de sintetizadores de sonido , ordenadores y otros dispositivos multimedia con fines tales como la interpretación musical o el control de espectáculos . Las ventajas de OSC incluyen la interoperabilidad , la precisión, la flexibilidad y una documentación detallada. [ 1 ] Sus desventajas incluyen mayores requisitos de ancho de banda y carga en los procesadores integrados en comparación con alternativas como MIDI , [ 2 ] así como la falta de mensajes estandarizados entre diferentes dispositivos. [ 3 ] [ 4 ] [ 5 ] La primera especificación se publicó en marzo de 2002.
Motivación
OSC es un formato de contenido desarrollado en CNMAT por Adrian Freed y Matt Wright, comparable a XML , WDDX o JSON . [ 6 ] Originalmente, se diseñó para 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 se utiliza a veces como alternativa al estándar MIDI de 1983 , cuando se desea una mayor resolución y un espacio de parámetros más amplio. Los mensajes OSC se transportan a través de Internet y dentro de subredes locales mediante UDP/IP y Ethernet . Los mensajes OSC entre controladores gestuales generalmente se transmiten a través de puntos finales serie de USB envueltos en el protocolo SLIP .
Características
Las principales características de OSC, en comparación con MIDI, incluyen: [ 1 ]
- Esquema de nombres simbólicos abierto, dinámico y de estilo URI
- Datos simbólicos y numéricos de alta resolución
- Lenguaje de coincidencia de patrones para especificar múltiples destinatarios de un solo mensaje.
- Etiquetas de tiempo de alta resolución
- "Paquetes" de mensajes cuyos efectos deben producirse simultáneamente
Aplicaciones
Existen docenas de aplicaciones de OSC, incluyendo entornos de procesamiento de sonido y multimedia en tiempo real, herramientas de interactividad web, sintetizadores de software, lenguajes de programación y dispositivos de hardware. OSC se ha extendido a campos como la expresión musical , la robótica, las interfaces de interpretación de vídeo, los sistemas de música distribuida y la comunicación entre procesos .
El estándar comunitario TUIO para interfaces tangibles como las multitáctiles se basa en OSC. Del mismo modo, el sistema GDIF para la representación de gestos integra OSC.
OSC se utiliza ampliamente en controladores musicales experimentales y se ha integrado en 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 de plugins DSSI , una evolución de la API LADSPA, que permite que la interfaz gráfica interactúe con el núcleo del plugin mediante mensajes al host del plugin. LADSPA y DSSI son APIs dedicadas a 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.
Diseño
Los mensajes OSC constan de un patrón de dirección (como /oscillator/4/frequency), una cadena de etiqueta de tipo (como ,fipara 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 de 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 formato binario con alineación de cuatro bytes . Los tipos principales admitidos son
- enteros con signo en complemento a dos de 32 bits
- Números de punto flotante IEEE de 32 bits
- Matrices terminadas en nulo de datos codificados de ocho bits ( cadenas de estilo C )
- un bloque de tamaño arbitrario (por ejemplo, datos de audio o un fotograma de vídeo)
En la especificación se incluye un mensaje de ejemplo (con bytes de relleno nulo representados por ␀): /oscillator/4/frequency␀,f␀␀, seguido de la representación float32 de 4 bytes de 440.0: 0x43dc0000. [ 9 ]
Los mensajes pueden agruparse en paquetes, que a su vez pueden agruparse en paquetes, etc. Cada paquete contiene una marca de tiempo, que determina si el servidor debe responder de inmediato o en algún momento 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 obligatorios de OSC 1.1.
Las ventajas de OSC sobre MIDI son principalmente la conectividad a Internet, la resolución de tipos de datos y la relativa facilidad para especificar una ruta simbólica, en lugar de 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 la transmisión y más difícil de analizar por el firmware integrado. [ 2 ]
La especificación no define ningún método OSC ni contenedor OSC en particular. Todos los mensajes dependen de la implementación y varían de un servidor a otro.
Referencias
- 1 2 "Introducción a OSC" . opensoundcontrol.org . 7 de abril de 2021. Consultado el 11 de septiembre de 2021 .
- 1 2 Fraietta, Angelo (2008), Control de sonido abierto: restricciones y limitaciones , doi : 10.5281/zenodo.1179537 , S2CID 5690441
- ↑ "Inicio · fabb/SynOSCopy Wiki" . GitHub . Consultado el 31/12/2022 .
Una de las razones por las que OSC aún no ha reemplazado a MIDI es que no hay conexión y reproducción... No existe un espacio de nombres estándar en OSC para la interfaz, por ejemplo, con un sintetizador.
- ↑ Supper, Ben (24 de octubre de 2012). "Odiamos MIDI. Amamos MIDI" . Focusrite Development . Consultado el 1 de enero de 2023.
OSC sufre de un problema aún mayor: es anárquico, 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 manejarlo. … 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 el Do central de un secuenciador a un sintetizador de manera estandarizada
. - ↑ "OSC-Namespace y OSC-State: Esquemas para describir el espacio de nombres y el estado de los sistemas habilitados para OSC" (PDF) .
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.
- ↑ "OpenSoundControl | CNMAT" . cnmat.berkeley.edu . Consultado el 22 de diciembre de 2019 .
- ↑ "Control manual de OpenSound (OSC) de OSW" . osw.sourceforge.net . Consultado el 22 de diciembre de 2019 .
- 1 2 3 Wright, Matt (26 de marzo de 2002). "La especificación Open Sound Control 1.0" . opensoundcontrol.org . Recuperado el 22 de diciembre de 2019 .
- ↑ Wright, Matt (29 de marzo de 2002). "Ejemplos que respaldan la especificación OpenSoundControl 1.0" . opensoundcontrol.stanford.edu . Consultado el 1 de enero de 2023 .
- Schmeder, A., Freed, A. y Wessel, D., "Mejores prácticas para el control de sonido abierto", Conferencia de audio de Linux, Utrecht, Países Bajos, 2010.
- Freed, A., Schmeder, A., "Características y futuro de Open Sound Control versión 1.1 para NIME", Conferencia NIME 2009.
- Wright, M., Freed, A., "Open Sound Control: Un nuevo protocolo para comunicarse con sintetizadores de sonido", Conferencia Internacional de Música por Computadora, Tesalónica, Grecia, 1997.
- Patrick-Gilles Maillot, "PROTOCOLO REMOTO OSC X32/M32 NO OFICIAL", https://drive.google.com/file/d/1Yt_S1mpPt3CAzeq3Dnpe_IqctQ-1GlTz/view , 2012-.
- Patrick-Gilles Maillot, "WING Remote Protocols", https://drive.google.com/file/d/1-iptgd2Uxw4qPEbmegG2Sqccf8AbRRfk/view , 2020-.
Enlaces externos
- Sitio web oficial
- Introducción a OSC en LinuxJournal
- SYN , un espacio de nombres estandarizado dentro de OSC
- X32-Behringer , una colección de programas y herramientas para la consola digital X32, basada en OSC.
- patrickmaillot/wing , una colección de utilidades basadas en OSC para la consola de mezcla digital personal WING.
- patrickmaillot/x32 , una colección de utilidades basadas en OSC para la familia de consolas de mezcla digital X32/M32.
- protocolos de comunicación de audio
- Instrumentos musicales electrónicos
- Medios digitales
- Tecnología de producción de sonido
- formatos de archivo de notación musical