De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Csound es un lenguaje de programación de computadoras de dominio específico para la programación de audio. Se llama Csound porque está escrito en C , a diferencia de algunos de sus predecesores.

Es un software gratuito , disponible bajo la LGPL .

Csound fue escrito originalmente en el MIT por Barry Vercoe en 1985, basado en su sistema anterior llamado Music 11, que a su vez siguió el modelo MUSIC-N iniciado por Max Mathews en los Bell Labs. Su desarrollo continuó durante las décadas de 1990 y 2000, dirigido por John Fitch en la Universidad de Bath. La primera versión documentada de la versión 5 es la 5.01 el 18 de marzo de 2006. Muchos desarrolladores han contribuido a ella, entre los que destacan Istvan Varga, Gabriel Maldonado, Robin Whittle, Richard Karpen, Iain McCurdy, Michael Gogins, Matt Ingalls , Steven Yi, Richard Boulanger. , Victor Lazzarini y Joachim Heintz.

Desarrollado durante muchos años, actualmente cuenta con cerca de 1700 unidades de generadores . Uno de sus mayores puntos fuertes es que es completamente modular y extensible por el usuario. Csound está estrechamente relacionado con el lenguaje subyacente de las extensiones de audio estructurado para MPEG-4 , SAOL .

Código de sonido [ editar ]

Csound toma como entrada dos archivos de texto con formato especial . La orquesta describe la naturaleza de los instrumentos y la partitura describe notas y otros parámetros a lo largo de una línea de tiempo. Csound procesa las instrucciones en estos archivos y genera un archivo de audio o una secuencia de audio en tiempo real como salida.

Los archivos de orquesta y partitura se pueden unificar en un solo archivo estructurado utilizando etiquetas de lenguaje de marcado (un archivo CSD con extensión de nombre de archivo .csd). Aquí hay un ejemplo muy simple de un archivo de datos de Csound unificado que produce un archivo de onda que contiene un tono de onda sinusoidal de un segundo de 1 kHz a una frecuencia de muestreo de 96 kHz:

<CsoundSynthesizer>  <CsOptions> csound -W -d -o tone.wav </CsOptions>  <CsInstruments>  sr  =  96000  ; Frecuencia de muestreo.  kr  =  9600  ; Tasa de señal de control.  ksmps  =  10  ; Muestras por señal de control.  nchnls  =  1  ; Número de canales de salida. instr  1  a 1  oscil  p4 ,  p5 ,  1  ; Oscilador: p4 y p5 son los argumentos de la partitura, 1 es el número de la tabla.  fuera  un 1  ; Producción.  endin  </CsInstruments> <CsScore>  f 1  0  8192  10  1  ; Tabla que contiene una onda sinusoidal. El generador incorporado 10 produce una suma de sinusoides, aquí solo una.  i 1  0  1  20000  1000  ; Reproduzca un segundo de un kHz a una amplitud de 20000.  e  </CsScore></CsoundSynthesizer>

Al igual que con muchos otros lenguajes de programación, la escritura de programas largos en Csound se puede facilitar mediante el uso de un entorno integrado para editar, previsualizar, probar y depurar . El que ahora es oficialmente compatible es CsoundQt, y tiene muchas características, como inserción automática de código, navegador de documentación integrado, widgets integrados para controlar gráficamente los parámetros en tiempo real, además de un botón para reproducir el código.

Csound 5 [ editar ]

La versión 5.01 se lanzó el 18 de marzo de 2006, 20 años después del primer lanzamiento de csound. Csound 5 está disponible en código binario y fuente para Linux, Microsoft Windows y Mac OS X desde el proyecto SourceForge Csound. [3] Se ha mejorado y ampliado mucho en comparación con el software original, convertido efectivamente en una biblioteca de software con una API . Para ello se han desarrollado una variedad de frontales . Además de la API básica de C , también hay Python , Java , Lisp , Tcl y C ++ entre otros enlaces, como uno de Haskell que permite el control de Csound desde un entorno puramente funcional.

El uso de complementos permite capacidades adicionales sin modificaciones en el código de Csound, ya que existe la posibilidad de escribir códigos de operación definidos por el usuario como extensiones del idioma original. Se admiten LADSPA y DSSI , pero se eliminó la compatibilidad con VST .

La interpretación en tiempo real a través de MIDI se agregó en la década de 1990. Otra adición fue la compatibilidad con widgets FLTK (componentes de interfaz gráfica con controles deslizantes, perillas, etc.) para controlar el audio en tiempo real y la integración de interfaces gráficas personalizadas escritas en Python.

Csound 6 [ editar ]

Csound 6 ha estado en desarrollo desde que sus características se definieron en la Conferencia Csound celebrada en 2011 en Hannover. Csound 6 se lanzó en julio de 2013 y ahora está disponible en GitHub . [4] Csound 6 también está disponible para Android . Las principales características nuevas de Csound 6 incluyen:

  • Un analizador basado en bison / flex para el lenguaje Csound ahora es estándar. Genera un árbol de sintaxis abstracto al que se puede acceder a través de la API de Csound. Luego, el árbol se puede compilar en un tiempo de ejecución de rendimiento de Csound utilizando la API. Por lo tanto, una vez compilado el árbol, el código de usuario puede manipularlo antes de compilarlo en un tiempo de ejecución de rendimiento de Csound. Alternativamente, el usuario podría crear todo el árbol de sintaxis abstracta desde otro idioma y luego compilar el árbol en un tiempo de ejecución de rendimiento de Csound.
  • Hay un nuevo tipo de matriz multidimensional incorporado. Las matrices se pueden pasar a instrumentos y códigos de operación. La aritmética se puede realizar directamente en matrices.
  • Hay un nuevo sistema de tipos que permite utilizar tipos definidos por el usuario en el lenguaje Csound.
  • La orquesta se puede volver a compilar en cualquier momento, o los instrumentos individuales se pueden compilar en cualquier momento, durante una ejecución en ejecución. Esto permite una verdadera "codificación en vivo" en las interpretaciones de Csound.
  • La API de Csound se ha racionalizado y simplificado.
  • Csound puede aprovechar cualquier cantidad de CPU para el procesamiento simultáneo durante el rendimiento. Esto ocurre sin ningún cambio en el código de Csound. Esto produce una aceleración sustancial de la mayoría del procesamiento de Csound. Por ejemplo, una pieza que se renderiza en 100 segundos con 1 núcleo debería renderizarse en unos 50 segundos con 4 núcleos.
  • Csound puede compilar orquestas y partituras directamente a partir de cadenas de texto, lo que permite el uso de Csound en entornos donde no se permite escribir en el sistema de archivos.
  • Los eventos de puntuación, como las notas, se pueden programar para muestrear tiempos precisos, incluso si la síntesis se procesa en bloques de muestras.
  • Todos los códigos de operación que devuelven un valor único pueden usarse como funciones en el lenguaje de la orquesta.
  • Los formatos de archivo de análisis de audio pueden ser independientes del orden de bytes.
  • Una sola declaración de puntuación puede contener varios parámetros de cadena.
  • La mayoría de los códigos de operación de oscilador usarán una tabla de función seno interna si se omite el número de la tabla.
  • Las opciones de la línea de comandos se pueden configurar mediante programación utilizando la API de Csound.
  • Se han racionalizado numerosas áreas duplicadas de código dentro de Csound.
  • Se creó una aplicación para Android que proporciona interfaces gráficas de usuario definidas por el usuario y composición algorítmica basada en JavaScript utilizando HTML5.

El desarrollo de Csound 6 fue dirigido por John ffitch , Steven Yi y Victor Lazzarini .

Csound para presentaciones en vivo [ editar ]

Actualmente, solo se pueden generar eventos de notas o partituras de Csound en tiempo real (a diferencia de los instrumentos, que solo se pueden definir en tiempo de compilación, cuando csound comienza por primera vez; en Csound 6 esta limitación se elimina). El conjunto de procesadores de sonido se define y compila en el momento de la carga, pero los objetos de procesamiento individuales pueden generarse o destruirse en tiempo real, el audio de entrada procesado en tiempo real y la salida generada también en tiempo real. Los eventos de nota se pueden activar en función de las comunicaciones OSC dentro de una instancia de instrumento, generados por MIDI o ingresados ​​en stdin (escribiendo en un terminal o enviando declaraciones textuales desde otro programa). El uso de Csound 5 como herramienta de actuación en vivo se puede aumentar con una variedad de software de terceros. La hoja de eventos en vivo dentro de CsoundQt se puede utilizar para modificar la puntuación en tiempo real. Además,Las interfaces con otros lenguajes de programación se pueden utilizar para crear secuencias de comandos en Csound. En la Conferencia de audio de Linux 2012 se presentó un documento que detalla el uso de Csound con Qt o Pure Data en síntesis musical en tiempo real.[5] El proyecto Ounk intenta integrar Python con Csound, mientras que CsoundAC proporciona una forma de hacer composición algorítmica desde Python usando Csound como backend. Csound for Live de Audivation empaqueta varios códigos de operación enenvoltorios Max / MSP adecuados para su uso en Ableton Live . [6] [7] Csound también está disponible para sistemas móviles (iOS, Android). [8]

Interfaces: IDE y entornos de composición musical [ editar ]

La ventana predeterminada de CsoundQt 0.9.7, que se ejecuta en Linux Mint 20 Xfce
  • MacCsound es un entorno de programación Csound integrado para Macintosh (sin actualización desde principios de 2011).
  • Csound Editor es un entorno de programación integrado para Csound [Windows].
  • WinXoundPro otro IDE para Csound.
  • CsoundQt otra interfaz gráfica de usuario para CSound [Windows / Mac / * NIX]. Ahora está incluido en la distribución de CSound.
  • Dex Tracker Dex Tracker una interfaz de estilo rastreador para csound Incluye un editor de cuadrículas y herramientas de generación de código, y la capacidad de guardar sus sonidos y ritmos favoritos como ajustes preestablecidos.
  • azul Un entorno de composición musical para Csound.
  • Procesador Bol BP2 . Un entorno de composición musical para Csound y MIDI.
  • Automated CSound Orchestra Creación de orquesta automatizada en Csound a partir de instrumentos individuales en formato csd, convierta midi a CSound y grabe en Csound en tiempo real (programa de Windows).
  • AlgoScore Un entorno de composición algorítmica donde se trabaja en una partitura gráfica, para Csound y MIDI.
  • Cecilia (en las versiones 1–4) una interfaz de producción para Csound. (Cecilia 5 ha migrado a pyo como backend).
  • Entorno de producción de repollo para complementos de audio multiplataforma basados ​​en Csound.
  • Lettuce, un editor / frontend de Windows para Csound5.
  • Csound-x para Emacs una interfaz de Emacs para Csound.

Una computadora portátil por niño (OLPC) [ editar ]

Csound5 fue elegido para ser el sistema de desarrollo de audio / música para el proyecto OLPC en la plataforma XO-1 Laptop . [9]

Ver también [ editar ]

  • Procesamiento de señales de audio
  • Sintetizador de software
  • Música de computadora
  • Comparación de entornos de síntesis de audio
  • Lista de software de música

Referencias [ editar ]

  1. ^ Dr. Richard Boulanger - Tres décadas con Csound: las raíces, el nacimiento y los primeros años
  2. ^ "Lanzamientos · csound / csound" . github.com . Consultado el 31 de marzo de 2021 .
  3. ^ "Csound | SourceForge.net" .
  4. ^ "Csound | GitHub.com" .
  5. ^ Joachim Heintz. "Csound como una aplicación en tiempo real" (PDF) . Instituto de Música Nueva.
  6. ^ Peter Kirn (15 de octubre de 2011). "Wiki de Csound para Live" . Crea música digital.
  7. ^ Synthhead (15 de octubre de 2011). "Csound For Live Próximamente 17 de octubre wiki" . Synthtopia.
  8. ^ S. Yi y V. Lazzarini. "Csound para Android" (PDF) .
  9. ^ "Csound en la wiki de OLPC" . Consultado el 23 de noviembre de 2010 .

Lectura adicional [ editar ]

  • Richard Charles Boulanger, ed. (2000). The Csound Book: Perspectivas en síntesis de software, diseño de sonido, procesamiento de señales y programación . MIT Press. ISBN 978-0-262-52261-8.
  • R. Bianchini y A Cipriani. (2000). Sonido virtual. Síntesis de sonido y procesamiento de señales. Teoría y práctica con Csound . ConTempo sas ISBN 88-900261-1-1.Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
  • Richard Charles Boulanger y Victor Lazzarini, ed. (2011). El libro de programación de audio . MIT Press. ISBN 978-0-262-01446-5. Este es un libro principalmente sobre la programación de sonido directamente usando el lenguaje C, pero tiene un par de capítulos sobre la programación de códigos de operación Csound.
  • Jim Aikin (2013). Csound Power! La guía completa . Aprendizaje Cengage. ISBN 1-4354-6005-7.

Enlaces externos [ editar ]

  • Página web oficial