ChucK es un lenguaje de programación de audio concurrente y fuertemente sincronizado para síntesis, composición y rendimiento en tiempo real, [3] que se ejecuta en Linux , Mac OS X , Microsoft Windows e iOS . Está diseñado para favorecer la legibilidad y la flexibilidad para el programador sobre otras consideraciones, como el rendimiento en bruto. Admite de forma nativa la concurrencia determinista y múltiples tasas de control dinámicas simultáneas. Otra característica clave es la capacidad de codificar en vivo; agregar, eliminar y modificar código sobre la marcha, mientras el programa se está ejecutando, sin detenerse ni reiniciarse. Tiene un modelo de tiempo / concurrencia altamente preciso, lo que permite una granularidad arbitrariamente fina. Ofrece a los compositores e investigadores una herramienta de programación potente y flexible para crear y experimentar con programas de síntesis de audio complejos y control interactivo en tiempo real. [4]
Paradigma | Multi-paradigma |
---|---|
Diseñada por | Ge Wang |
Apareció por primera vez | 2003 [1] |
Lanzamiento estable | 1.4.0.2 / 20 de julio de 2020 [2] |
Disciplina de mecanografía | Fuerte |
SO | Multiplataforma |
Licencia | Mac , Linux , Windows : GPL-2.0 o posterior iOS : Código cerrado (no público) |
Sitio web | mandril |
ChucK fue creado y diseñado principalmente por Ge Wang como estudiante de posgrado que trabajaba con Perry R. Cook . [1] ChucK se distribuye libremente bajo los términos de la Licencia Pública General GNU en Mac OS X , Linux y Microsoft Windows . En iPhone y iPad , ChiP (ChucK para iPhone) se distribuye bajo una licencia limitada de código cerrado y actualmente no tiene licencia para el público. Sin embargo, el equipo central ha declarado que le gustaría explorar "formas de abrir ChiP creando un entorno beneficioso para todos". [5]
Características del idioma
El lenguaje de programación ChucK es un lenguaje orientado a objetos similar a C, con una fuerte escritura estática .
ChucK se distingue por las siguientes características: [6]
- Soporte directo para síntesis de audio en tiempo real
- Un modelo de programación concurrente potente y sencillo
- Un mecanismo de temporización unificado para el procesamiento de eventos y control de múltiples velocidades.
- Una sintaxis de lenguaje que fomenta la sintaxis y la semántica de izquierda a derecha dentro de las declaraciones del programa.
- Sincronización de precisión: un modelo de sincronización de muestra sincronizada fuertemente sincronizada.
- Los programas se compilan dinámicamente en el código de bytes de la máquina virtual ChucK .
- Un entorno de ejecución que admite la programación sobre la marcha .
- El operador ChucK (=>) que se puede utilizar de varias formas para "tirar" cualquier flujo ordenado de datos de izquierda a derecha.
Las bibliotecas estándar de ChucK proporcionan:
- Entrada y salida MIDI .
- Soporte de Open Sound Control .
- Conectividad HID.
- Generadores de unidades (UGens): es decir, osciladores, envolventes, conjuntos de herramientas de síntesis , filtros, etc.
- Analizadores de unidades (UAnae): bloques que realizan funciones de análisis en señales de audio y / o entrada de metadatos, y producen resultados de análisis de metadatos como salida [7] , es decir, FFT / IFFT, Spectral Flux / Centroid, RMS, etc.
- Capacidades de E / S en serie, es decir, Arduino .
- Capacidades de E / S de archivos.
Ejemplo de código
El siguiente es un programa simple de ChucK que genera sonido y música:
// nuestro gráfico de señal (parche) SinOsc f => dac; // establecer ganancia .3 => f.gain; // una matriz de clases de tono (en semitonos) [0, 2, 4, 6, 9, 10] @ => int hi []; // bucle infinito mientras que ( verdadero ) { // elegir una nota, cambiar registros, convertir a frecuencia Std.mtof (65 + Std.rand2 (0,1) * 43 + hola [Std.rand2 (0, hi.cap () - 1)]) => f.freq; // avanza el tiempo en 120 ms 120 :: ms => ahora ; }
Usos
ChucK se ha utilizado en actuaciones de Princeton Laptop Orchestra (PLOrk) y para desarrollar aplicaciones Smule , incluido su emulador de ocarina . [8] Los organizadores de PLOrk atribuyen parte de la singularidad de sus actuaciones a la codificación en directo que pueden realizar con ChucK. [9]
Ver también
- Comparación de entornos de síntesis de audio
- Sonic Pi
- Datos puros
Referencias
- ↑ a b Dean, RT (2009). El manual de Oxford de música por computadora . Serie de manuales de Oxford en música. Oxford University Press EE. UU. pag. 57. ISBN 0-19-533161-3.
- ^ "github.com/ccrma/chuck" . Consultado el 18 de enero de 2021 .
- ^ Wang, Ge (2008). El lenguaje de programación de audio ChucK: un entorno / mentalidad acelerada y sobre la marcha (Ph.D.). Universidad de Princeton.
- ^ "ChucK: lenguaje de programación de música fuertemente cronometrada, concurrente y sobre la marcha" . Consultado el 6 de septiembre de 2013 .
... ofrece a los compositores, investigadores e intérpretes una poderosa herramienta de programación para construir y experimentar con programas complejos de análisis / síntesis de audio y música interactiva en tiempo real.
- ^ Wang, Ge. "¡Saludos y actualizaciones de ChucKian!" . lista de correo de usuarios de chuck . Universidad de Princeton . Consultado el 24 de mayo de 2011 .
- ^ Wang, G. y P. Cook (2003). "ChucK: un lenguaje de programación de audio simultáneo y sobre la marcha" (PDF) . Actas de la Conferencia Internacional de Música por Computadora .
- ^ "Manual de FLOSS" . Manuales de hilo dental . Consultado el 18 de enero de 2021 .
- ^ Kirn, Peter (22 de julio de 2009). "Entrevista: Ge Wang de Smule sobre aplicaciones de iPhone, Ocarinas y Democratizing Music Tech" . Crea música digital . Consultado el 24 de mayo de 2011 .
- ^ Petersen, Bretaña (11 de junio de 2008). "Orquesta portátil hace ondas (de sonido)" . Revista de PC .
La otra cosa que distingue a PLOrk desde el principio fue el uso de un programa basado en texto llamado ChucK, desarrollado por un estudiante graduado de Princeton. ChucK permite al usuario codificar rápidamente, similar a la codificación en vivo, y "sobre la marcha" para una actuación, lo que permite la espontaneidad y la interacción en tiempo real que es importante en la interpretación de música en vivo. "ChucK es el único lenguaje que conozco que fue diseñado desde el principio para facilitar eso", dice Trueman. El programa también es "concurrente", lo que significa que puede manejar muchos procesos diferentes a la vez. Su "sentido innato del tiempo" permite a los artistas comunicarse durante los ensayos y actuaciones en vivo, dice, y agrega que muchos otros músicos portátiles probablemente usan un programa como Max / MSP (que PLOrk usa además de ChucK) u otro programa comercial ampliamente disponible. Hoy en día, otras orquestas de portátiles, incluida la Stanford Laptop Orchestra (SLOrk), que se inspiró directamente en PLOrk, también emplean a ChucK.
Otras lecturas
Literatura de sus autores
- Wang, G. (2018). Diseño artístico: tecnología en busca de lo sublime . Prensa de la Universidad de Stanford. ISBN 978-1503600522.
- Wang, G .; Cook, P .; Salazar, S. (2015). "ChucK: un lenguaje de música de computadora fuertemente sincronizado" (PDF) . Computer Music Journal .
- Wang, G. (2008). "El lenguaje de programación de audio ChucK" . Tesis de doctorado, Universidad de Princeton .
- Wang, G; Fiebrink, R; Cook, P (2007). "Combinando análisis y síntesis en el lenguaje de programación ChucK" (PDF) . Actas de la Conferencia Internacional de Música por Computadora .
- Wang, G; Misra, A .; Kapur, A; Cook, P (2005). "¡Sí, ChucK it! => Mapeo de interfaz dinámico y controlable" (PDF) . Actas de la Conferencia Internacional sobre Nuevas Interfaces para la Expresión Musical .
- Wang, G .; Cook, P .; Misra, A (2005). "Diseño e implementación del lenguaje de programación ChucK" (PDF) . Actas de la Conferencia Internacional de Música por Computadora .
- Wang, G .; Cook, P. (2004). "The Audicle: un entorno / mentalidad de programación de audio sobre la marcha sensible al contexto" (PDF) . En Actas de la Conferencia Internacional de Música por Computadora .
- Wang, G .; Cook, P. (2004). "Programación sobre la marcha: uso del código como instrumento musical expresivo" (PDF) . Actas de la Conferencia Internacional sobre Nuevas Interfaces para la Expresión Musical .
- Wang, G .; Cook, P. (2003). "ChucK: un lenguaje de programación de audio simultáneo y sobre la marcha" (PDF) . Actas de la Conferencia Internacional de Música por Computadora .
Cobertura aparentemente independiente
- Graham Morrison, (2009) Generate choons con Chuck . Cansados de la misma música de siempre en las listas, creamos nuestra propia música a partir de una serie de números pseudoaleatorios. Linux Format tema 125
- Alan Blackwell y Nick Collins, El lenguaje de programación como instrumento musical en P. Romero, J. Good, E. Acosta Chaparro & S. Bryant (Eds). Proc. PPIG 17, págs. 120–130
- RT Dean , ed. (2009). El Manual de Oxford de Música por Computadora . Prensa de la Universidad de Oxford. págs. 27 y 580. ISBN 978-0-19-533161-5.
enlaces externos
- Página de inicio de ChucK en la Universidad de Princeton
- Espejo ChucK en la Universidad de Stanford
- Manual de ChucK FLOSS