CSound est un langage de programmation musicale.
Plus précisément, il permet à l’aide de fichiers de description sonore de synthétiser des instruments puis de décrire des morceaux.
Il repose sur l’utilisation d’un compilateur et de 2 types de fichiers source :
- un fichier orchestre
- un fichier partition
le tout permettant de décrire les notes, le comportement des instruments au cours du temps, etc …
L’utilisation est complexe mais très puissante.
Un exemple extrait de wikipedia :
<CsoundSynthesizer>; <CsOptions> csound -W -d -o tone.wav </CsOptions> <CsInstruments> sr = 44100 ; Sample rate. kr = 4410 ; Control signal rate. ksmps = 10 ; Samples pr. control signal. nchnls = 1 ; Number of output channels. instr 1 a1 oscil p4, p5, 1 ; Simple oscillator. out a1 ; Output. endin </CsInstruments> <CsScore> f1 0 8192 10 1 ; Table containing a sine wave. i1 0 1 20000 1000 ; Play one second of one kHz tone. e </CsScore> </CsoundSynthesizer>
(signal sinusoïdal d’une durée de 1 seconde, et d’une fréquence de 1 Khz à un taux d’échantillonnage de 44,1 Khz).
Parmi les possibilités avancées de Csound, on trouve une API de programmation permettant d’appeler CSound depuis un programme. Bienvenue à la musique procédurale
[ cSounds.com ]
[ tutoriaux ]
C’est une excellente idée !
j’avais commencé à écrire un compilateur de ce genre en c++, qui n’a jamais abouti.