Share to: share facebook share twitter share wa share telegram print page

 

Csound

Pantallazo de csound

Csound es un lenguaje de programación de computadores orientado a crear, editar, analizar y componer música y sonido. Recibe ese nombre porque su compilador está programado en lenguaje C. Está estructurado en forma de instrumentos en un fichero de orquesta, especificados mediante operadores de síntesis y procesamiento del sonido. Estos instrumentos son activados y controlados desde un fichero de partitura. Para realizar su función, ambos ficheros (orquesta y partitura) son procesados por el compilador de Csound, obteniendo un sonido como resultado de las instrucciones programadas.

Funciona correctamente en máquinas pequeñas y lentas, aunque si se ejecuta en equipos más potentes, es posible utilizarlo en tiempo real, crear interfaces gráficas de usuario, y conectarlo a otros sistemas vía drivers, MIDI o red.

Csound es un software libre basado en código abierto, con licencia LGPL, totalmente modular y ampliable por el usuario. Csound está relacionado con el lenguaje para audio estructurado de MPEG-4, SAOL.

Historia

El programa Csound tiene su origen en la década de los años 1970. Si bien Csound no existía como tal, Max Matthews recopiló algoritmos de generación de sonido y creó el lenguaje Music (más tarde Music1, Music2, Music3 y Music4). Las rutinas de Csound derivan de estos programas. durante 1964 y 1965, Godfrey Winham y Hubert Howe expandieron el Music4 en un nuevo programa llamado Music4B.

Con el avance de los computadores, las antiguas máquinas se quedaban obsoletas y había que desarrollar nuevas versiones. Por ejemplo Music4 y Music4B no se adaptan fácilmente a los nuevos computadores. Music4B se tradujo completamente al lenguaje Fortran para favorecer su transportabilidad a otros sistemas de computación. Howe escribió el nuevo programa Music4BF y posteriormente Howe y Winham lo alteraron y expandieron.

Después de algún tiempo Barry Vercoe desarrolló un sistema para el IBM System/360, este es el Music11. Es el primer programa de este tipo desarrollado para microcomputadores. Music11 es el antecesor directo de Csound, basado en el cual fue desarrollado por Barry Vercoe del MIT. Csound incrementa la flexibilidad de sus predecesores y puede además funcionar en cualquier sistema operativo que disponga de un compilador de C. Por ejemplo funciona tanto en MAC OS X, DOS/os, MS-Windows y Unix/Linux.

El Csound se hizo con la ayuda combinada de varios compositores interesados por la música y la informática. Son particularmente importantes las contribuciones de Richard Boulanger del Berklee College of Music (de Boston) y Barry Vercoe, graduado en el MIT, así como Dan Ellis y Bill Gardiner. Actualmente dispone de más de 1200 operadores, y siguen publicándose nuevas versiones de forma casi constante, con ampliaciones y mejoras de algoritmos.

Funcionamiento del Csound

El funcionamiento del Csound (así como el de los programas Music1, Music2, etc.) es trabajar con dos clases de objetos relevantes en la composición.

Por un lado se debe crear la «orquesta» (en inglés orchestra), que se compone de los instrumentos que se utilizarán en la composición.

En Csound hay que crear los instrumentos, es decir, realizar una descripción completa de cómo son y cómo funcionan (cómo suenan): esto puede ir desde un oscilador que genere un tono puro (sinusoide) de un frecuencia determinada (de sonido similar a un diapasón real) a un instrumento complejo cuyo timbre varía estadísticamente.

Por otro lado está la partitura (en inglés score), que es el segundo objeto relevante. Esta no es más que una tabla o gráfica donde se especifica el orden de actuación de los instrumentos a lo largo del tiempo. Por ejemplo, el clarinete toca tal cosa mientras el timbal reverbera en una sala de tales características. Con Csound, el control sobre el sonido digital es absoluto (si se encuentra el programa adecuado).

Desde la versión 5.0, se da un cambio significativo en código de Csound. Aparecen características como: mejora de la gestión de "tiempo real", APIs para otros lenguajes de programación como Python o Lisp, Interfaces gráficas definidas por el usuario, protocolos de hosting a VST y LADSPA, protocolo OSC, opcodes definidas por el usuario y un gran número de nuevos opcodes de orquesta. Además en la versión para linux, se acopla perfectamente con jack.

Ejemplo

Tal vez uno de los programas más sencillos que pueden escribirse en Csound, es la generación de un tono sinusoidal. Aunque Csound dispone ya de un formato de entrada de código compacta, mediante el formato csd que aúna instrumentos y control en un fichero único, la forma clásica de programar en Csound es a mediante dos archivos de texto. Uno que defina la orquesta (orc) y otro que describa la partitura (sco).

El programa que define la «orquesta» (en este caso de un solo instrumento, identificado como el número 1), podría ser así (lo que sigue a un carácter ";" es un comentario y, por tanto, no se ejecuta):

 instr 1              ; instrumento 1
   iamplitud = 10000  ; amplitud constante = 10000
   ifrecuencia = p4   ; frecuencia controlada desde la partitura (parámetro 4)
   itabla = 101       ; número de tabla constante = 101
   a1 oscil iamplitud, ifrecuencia, itabla
   out a1
 endin                ; final de instrumento 1

Por otra parte, hace falta una partitura que active y controle la actuación del instrumento 1 creado en el archivo de orquesta. Allí se dejaba sin dar valor concreto a la frecuencia, controlada con la variable 'p4' (parámetro 4). Ahora, en la llamada a la ejecución del instrumento, el parámetro n.º 4, dará precisamente el valor de frecuencia que se elija.

    f 101  0  4096  10  1     ; tabla que contiene un ciclo de onda sinuosidal
   ;instr inicio duración frecuencia
   ;  p1    p2      p3       p4
    i 1     0        4      440
    i 1     +        2      880
    i 1     +        1     1760 
    e	  ; fin de la partitura

Dependiendo de la configuración con la que se ejecute Csound, este programa puede crear un archivo sonoro en el disco del computador o enviarse a su tarjeta de sonido para ser escuchado.

Enlaces

Kembali kehalaman sebelumnya


Index: pl ar de en es fr it arz nl ja pt ceb sv uk vi war zh ru af ast az bg zh-min-nan bn be ca cs cy da et el eo eu fa gl ko hi hr id he ka la lv lt hu mk ms min no nn ce uz kk ro simple sk sl sr sh fi ta tt th tg azb tr ur zh-yue hy my ace als am an hyw ban bjn map-bms ba be-tarask bcl bpy bar bs br cv nv eml hif fo fy ga gd gu hak ha hsb io ig ilo ia ie os is jv kn ht ku ckb ky mrj lb lij li lmo mai mg ml zh-classical mr xmf mzn cdo mn nap new ne frr oc mhr or as pa pnb ps pms nds crh qu sa sah sco sq scn si sd szl su sw tl shn te bug vec vo wa wuu yi yo diq bat-smg zu lad kbd ang smn ab roa-rup frp arc gn av ay bh bi bo bxr cbk-zam co za dag ary se pdc dv dsb myv ext fur gv gag inh ki glk gan guw xal haw rw kbp pam csb kw km kv koi kg gom ks gcr lo lbe ltg lez nia ln jbo lg mt mi tw mwl mdf mnw nqo fj nah na nds-nl nrm nov om pi pag pap pfl pcd krc kaa ksh rm rue sm sat sc trv stq nso sn cu so srn kab roa-tara tet tpi to chr tum tk tyv udm ug vep fiu-vro vls wo xh zea ty ak bm ch ny ee ff got iu ik kl mad cr pih ami pwn pnt dz rmy rn sg st tn ss ti din chy ts kcg ve 
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9