Tipus | software synthesizer (en) , audio programming language (en) i programari lliure |
---|---|
Versió inicial | 1986 |
Versió estable | |
Llicència | GNU LGPL |
Característiques tècniques | |
Sistema operatiu | Unix-like |
Escrit en | C |
Format de fitxer de lectura | |
Format de fitxer d'escriptura | |
Més informació | |
Lloc web | csound.com |
Free Software Directory | CSound |
| |
Csound és un llenguatge de programació d'ordinador específic per a domini per a la programació d'àudio. Es diu Csound perquè està escrit en C, en oposició a alguns dels seus predecessors.
És un programari lliure, disponible sota la LGPL.
Csound va ser escrit originalment al MIT per Barry Vercoe el 1985, basat en el seu sistema anterior anomenat Music 11, que al seu torn seguia el model MUSIC-N iniciat per Max Mathews als Bell Labs. El seu desenvolupament va continuar al llarg dels anys 90 i 2000, dirigit per John Fitch a la Universitat de Bath. La primera versió documentada de la versió 5 és la versió 5.01 del 18 de març del 2006. Molts desenvolupadors hi han contribuït, sobretot Istvan Varga, Gabriel Maldonado, Robin Whittle, Richard Karpen, Iain McCurdy, Michael Gogins, Matt Ingalls, Steven Yi, Richard Boulanger, Victor Lazzarini i Joachim Heintz.
Desenvolupat durant molts anys, actualment compta amb prop de 1.700 generadors d'unitats. Un dels seus punts forts és que és completament modular i extensible per l'usuari. Csound està estretament relacionat amb el llenguatge subjacent de les extensions d' àudio estructurat a MPEG-4, SAOL.
Csound pren com a entrada dos fitxers de text amb un format especial. L'orquestra descriu la naturalesa dels instruments i la partitura descriu notes i altres paràmetres al llarg d'una línia de temps. Csound processa les instruccions d'aquests fitxers i fa un fitxer d'àudio o un flux d'àudio en temps real com a sortida.
Els fitxers orquestra i partitura es poden unir en un únic fitxer estructurat mitjançant etiquetes de llenguatge de marques (un fitxer CSD amb extensió de nom de fitxer.csd). Aquí teniu un exemple molt senzill d'un fitxer de dades Csound unificat que produeix un fitxer d'ona que conté un to d'ona sinusoidal d' un segon d'1 kHz a una velocitat de mostra de 96 kHz:
<CsoundSynthesizer>
<CsOptions>
csound -W -d -o tone.wav
</CsOptions>
<CsInstruments>
sr = 96000 ; Sample rate.
kr = 9600 ; Control signal rate.
ksmps = 10 ; Samples per control signal.
nchnls = 1 ; Number of output channels.
instr 1
a1 oscil p4, p5, 1 ; Oscillator: p4 and p5 are the arguments from the score, 1 is the table number.
out a1 ; Output.
endin
</CsInstruments>
<CsScore>
f1 0 8192 10 1 ; Table containing a sine wave. Built-in generator 10 produces a sum of sinusoids, here only one.
i1 0 1 20000 1000 ; Play one second of one kHz at amplitude 20000.
e
</CsScore>
</CsoundSynthesizer>
Com passa amb molts altres llenguatges de programació, l'escriptura de programes llargs a Csound es pot facilitar mitjançant l'ús d'un entorn integrat per editar, previsualitzar, provar i depurar. El que ara s'admet oficialment és CsoundQt i té moltes funcions, com ara inserció automàtica de codi, navegador de documentació integrat, ginys integrats per controlar gràficament els paràmetres en temps real, a més d'un botó per reproduir el codi.
La versió 5.01 es va publicar el 18 de març del 2006 – 20 anys després del primer llançament de csound. Csound 5 està disponible en codi binari i font per a Linux, Microsoft Windows i Mac OS X del projecte SourceForge Csound.[1] Es millora i amplia molt en comparació amb el programari original, convertit efectivament en una biblioteca de programari amb una API. S'ha desenvolupat una gran varietat d' extrems frontals. A més de l'API C bàsica, també hi ha Python, Java, Lisp, Tcl i C ++ entre altres enllaços, com un de Haskell que permet controlar Csound des d'un entorn purament funcional.
L'ús de connectors permet funcions addicionals sense modificacions del codi Csound, ja que hi ha la possibilitat d'escriure codis d'opció definits per l'usuari com a extensions a l'idioma original. S'admeten LADSPA i DSSI, però s'ha eliminat el suport VST.
El rendiment en temps real mitjançant MIDI es va afegir als anys noranta. Una altra addició va ser el suport de ginys FLTK (components d'interfície gràfica amb control lliscant, comandaments, etc.) per controlar l'àudio en temps real i la integració d'interfícies gràfiques personalitzades escrites en Python.
Csound 6 ha estat en desenvolupament des que es van esborrar les seves característiques a la conferència de Csound celebrada el 2011 a Hannover. Csound 6 es va llançar al juliol de 2013 i ja està disponible a GitHub.[2] Csound 6 també està disponible per a Android. Les principals novetats de Csound 6 inclouen:
El desenvolupament de Csound 6 va ser liderat per John ffitch, Steven Yi i Victor Lazzarini.
Actualment, només es poden generar esdeveniments de puntuació o nota de Csound en temps real (a diferència dels instruments, que només es poden definir en el moment de la compilació, quan csound s'inicia per primera vegada; a Csound 6 s'elimina aquesta limitació). El conjunt de processadors de so es defineix i es compila en temps de càrrega, però els objectes de processament individuals es poden generar o destruir en temps real, processar àudio en temps real i generar també la sortida en temps real. Es poden activar esdeveniments basats en comunicacions OSC dins d'una instància d'instrument, generats per MIDI o introduïts a stdin (escrivint en un terminal o enviant sentències textuals des d'un altre programa). L'ús de Csound 5 com a eina d'actuació en directe es pot augmentar amb una gran varietat de programari de tercers. El full d'esdeveniments en directe de CsoundQt es pot utilitzar per modificar la puntuació en temps real. A més, les interfícies amb altres llenguatges de programació es poden utilitzar per script Csound. Un document que detalla l'ús de Csound amb Qt o Pure Data en síntesi musical en temps real es va presentar a la Linux Audio Conference de 2012.[3] El projecte Ounk intenta integrar Python amb Csound mentre CsoundAC proporciona una manera de fer composició algorítmica a partir de Python utilitzant Csound com a backend. El Csound for Live d'Audivation empaqueta diversos codis d'opció en embolcalls Max/MSP adequats per utilitzar-se a Ableton Live.[4][5] Csound també està disponible per a sistemes mòbils (iOS, Android).[6]
Csound5 va ser escollit per ser el sistema de desenvolupament d'àudio/música per al projecte OLPC de la plataforma portàtil XO-1.[7]