csound

Le plus puissant synthétiseur du monde

CSound n’est pas seulement gratuit, il est aussi un système de synthèse sonore incroyablement versatile et puissant. Le plus puissant du monde selon Richard Boulanger.

Comportant plus de 450 modules processeurs de signal, générateurs ou effets, CSound peut modéliser virtuellement n’importe quel synthétiseur du commerce ou n’importe quel processeur d’effets.

CSound transforme votre ordinateur en une station audio-numérique de haut niveau. Fonctionnant en temps différé comme en temps réel, il permet de modéliser n’importe quel processus de synthèse sans limite de puissance. CSound peut tout faire, ou presque.

Revers de la médaille, CSound fonctionne principalement en lignes de code, et il n’a pas de presets, du moins dans sa version de base, mais de nombreuses GUI ou interfaces graphiques permettent de le rendre beaucoup plus convivial.

Comme tout instrument de musique, il demande a être pratiqué, la vraie virtuosité étant le produit du talent et de la persévérance.

Histoire

Retracer l’histoire de CSound c’est un peu faire l’histoire de l’informatique musicale.

Historiquement, il est le descendant de la série MUSIC-n initiée par Max Mathews dans les années 50.

Le premier de la série, MUSIC I, écrit en 1957 aux Laboratoires Bell était le premier programme informatique qui générait de l’audio, plus exactement des formes d’ondes. Il fut l’un des premiers programmes informatiques, également, à faire de la musique sous forme directement sonore et certainement le tout premier à être reconnu par la communauté musicale.

Les descendants de MUSIC I sont nombreux:

  • MUSIC II, MUSIC III, MUSIC IV, tous développés aux Bell Labs.
  • MUSIC IV-B développé à l’Université Princeton et tournant sur un IBM mainframe.
  • MUSIC IV-BF ré-écrit en Fortran, ce qui le rendait portable et donc précurseur de Csound
  • MUSIC V la dernière version issue des Bell Labs qui fut considérablement étendue à l’IRCAM, à Paris, par John Gardner et Jean-Louis Richer, afin de lui permettre de traiter les sons numérisés et plus seulement de générer des formes d’onde.
  • MUSIC 360 et MUSIC 11 écrit par Barry Vercoe au MIT.
  • Csound descendant de MUSIC 11 et toujours très utilisé aujourd’hui. Nommé ainsi car il était pour la première fois écrit en C.
  • CMix et Real-Time Cmix par Paul Lansky et Brad Garton, entre autres…
  • CMusic par Richard Moore.
  • Structured Audio Orchestra Language (SAOL) qui fait partie du standard audio MPEG-4

D’une façon moins directe, MUSIC I peut -être considéré comme l’ancêtre de programmes musicaux comme:

Aujourd’hui CSound est développé principalement par John Ffitch à l’Université de Bath ainsi que par de nombreux développeurs, entre autres: Istvan Varga, Gabriel Maldonado, Robin Whittle, Richard Karpen, Michael Gogins, Matt Ingalls, Steven Yi, Richard Boulanger, and Victor Lazzarini.

 

Une introduction à CSound 

Entrons dans le vif du sujet.

Voici probablement l’exemple le plus simple que l’on puisse produire avec CSound.

Tous les paramètres de temps sont exprimés en secondes et les paramètres de fréquence, ici, en Hertzs.

On voit que le programme, qui génère une onde sinusoïde de 440 Hz, se décompose en deux parties:

Un orchestre:

instr 1 ; Instrument n°1, un score peut contenir un nombre illimité d’instruments.

a1 oscil 10000, 440, 1 ; les paramètres sont amplitude(10000), fréquence 440Hz, et table d’onde n°1

out a1 ; sort le signal a1, généré à la ligne précédente par l’oscillateur « oscil »

endin

et un score:

f1 0 4096 10 1 ; la fonction 10 calcule la forme d’onde n°1(f1) qui contient 1 sinusoïde. Elle est stockée dans la table n°1

i1 0 4 ; joue « instr 1 » paramètres instrument(1), temps de départ(0 sec), durée de la note(4 sec)

e ; indique la fin du score

 

On fait un copié/collé de l’orchestre dans un éditeur de texte quelconque. On le sauve avec l’extension .orc soit, par exemple, Ex1.orc.

Même chose avec le score que l’on appelle Ex1.sco. Les deux fichiers doivent être dans le même dossier.

On ouvre CSoundQTpar exemple, après l’avoir chargé et installé en même temps que la dernière version de Csound, et on charge l’un des deux fichiers ci-dessus, l’autre se chargera automatiquement s’il possède le même nom avant l’extension. Ça marche de la même façon avec n’importe quelle interface CSound.

On lance CSounQT et on entend, en temps réel, le résultat. Il faudra certainement, au préalable, apprendre les réglages et les fonctions de base de CSoundQT, mais c’est rapide.

Un exemple un peu plus élaboré qui nous introduit au fonctionnement des P-Fields à l’intérieur du score. Ces P-Fields nous permettent de contrôler  n’importe quel paramètre de n’importe quel instrument par le score

Soit un orchestre composé, comme précédemment, d’un seul instrument (instr 2)

instr 2 ; le point-virgule permet d’écrire des commentaires on peut écrire ce qu’on veut après lui et avant la ligne suivante

a1 oscil p4, p5, 1 ; p4=amp, p5=freq

out a1

endin

et son score:

f1 0 4096 10 1 ; sine wave

; instrument start duration amp(p4) freq(p5)

   i2                  0         1                2000       880

   i2                  1.5      1                4000       440

   i2                  3         1                8000       220

   i2                 4.5      1                16000      110

   i2                 6         1                 32000      55

e

Même opération que précédemment, on peut également pour aller plus vite, faire le copié/collé directement dans CSoundQT, une fois qu’on aura fait new dans le menu fichier et repéré à quel endroit placer l’orchestre et le score.

csound

On voit et on entend ici la modification des paramètres d’amplitude et de fréquence par le score.

On va maintenant contrôler les enveloppes et l’évolution de la dynamique.

instr 3 ; p3=duration of note

k1 linen p4, p6, p3, p7 ; p4=amp

a1 oscil k1, p5, 1 ; p5=freq

out a1 ; p6=attack time

endin ; p7=release time

et le score correspondant

f1 0 4096 10 1 ; sine wave

; ins   strt   dur   amp(p4)   freq(p5)   attack(p6)   release(p7)

   i3     0       1        10000       440            0.5                  0.7

   i3    1.5     1        10000       440            0.9                  0.1

   i3     3       1         5000        880            0.02               0.99

   i3    4.5    1         5000        880            0.7                  0.01

   i3     6       2        20000      220            0.005             0.5

e

On voit qu’on peut contrôler très précisément l’évolution dynamique de chaque note.

Ces exemples sont inspirés du tutoriel de Richard Boulanger que je vous invite à visiter et à pratiquer ici. Il a été traduit en Français par Laurent Pessin. Merci à lui.

Pourquoi CSound?

On l’a dit, CSound dans toutes ses versions est gratuit, il n’a pas beaucoup de concurrents en termes de puissance, de complexité et permet une créativité sans bornes. Plus que jamais, votre imagination est sa limite. Il permet le temps réel comme le rendering. La qualité sonore est maximale, j’ai testé des fichiers à 192 KHz et 32 bits en temps réel qui fonctionnent sans problèmes. Les tables d’onde, de la même façon n’ont pas de limite de taille et permettent une définition et une pureté sonore inégalables.

Étant donné son grand âge, le système profite de l’expèrience de très nombre d’utilisateurs, dans le monde entier, avec lesquels l’échange de fichiers au format texte est très facile. De fait, le nombre d’exemples, de tutoriels et templates est énorme.

De plus, par sa puissance et sa versatilité illimitées il ne se démode pas, sa longévité l’atteste, d’autant qu’il est régulièrement mis à jour. Fini le temps du soft et du hard jetables.

Il fonctionne sur un grand nombre de plate-formes et n’est pas cantonné à un style ou un autre. Des musiciens de genres très différents l’utilisent. Quelques exemples ici.

Il vous permettra de faire ce que les autres systèmes ne vous permettent pas, par exemple: un instrument avec dix mille oscillateurs (ou plus) et autant d’enveloppes évoluant tous de façons absolument indépendantes, un sampleur avec des traitements et des samples infinis, seulement limité par la mémoire de votre machine, quasiment tous les processus de synthèse connus et ceux que vous inventerez.

Enfin il est entièrement contrôlable par Max/MSP et surtout par Open-Music qui, à la fois, simplifie son utilisation et lui ouvre des horizons de synthèses algorithmiques immenses.

 

Jean-Michel Darrémont

 

Liens

  • Site Officiel Téléchargement gratuit, FAQs, manuels, examples de codes, programmes graphiques associés, etc… La mailing list et son archive est un bon endroit pour trouver des informations détaillées.
  • The Csound Manual À ma connaissance, seulement en anglais.
  • CSound – Manuel collaboratif très intéressant.
  • Csound Editor Un environnement intégré de programmation pour Csound [Windows].
  • WinXoundPro Une autre interface pour Csound.
  • CsoundQt Une interface, en partie graphique, que j’utilise et qui marche très bien sur Mac OSX [Windows/Mac/UNIX]
  • Dex Tracker Comprenant une grille d’édition et des outils générateurs de code, plus la possibilité de sauvegarder des presets.
  • Blue Un environment de composition pour Csound.
  • Bol Processor Un autre environnement de composition pour Csound et MIDI.
  • Automated CSound Orchestra construction d’instruments au format .csd, conversion midi vers CSound, et enregistrement vers CSound score en temps réel [Windows].
  • AlgoScore Un environnement de composition algorithmique avec score graphique, pour Csound et MIDI.
  • Csound-OLPC Un wiki, avec des tutoriels dont ceux de Richard Boulanger Dr.B’s TOOTs
  • The Csound Book par Richard Boulanger et plus de 3500 instrument et le Csound Catalog
  • Virtual Sound un ouvrage pour les débutants par R. Bianchini and A. Cipriani
  • Csound Power! introduction à Csound par Jim Aikin.
  • Cabbage Un environment de production pour Csound.
  • Csound-x for Emacs Une interface CSound pour les éditeurs Emacs.
  • Csound Helpers Une liste de liens vers des applications d’aide à la programmation CSound.
  • Csound For Live Une collection, payante, d’instruments et d’effets CSound pour Ableton Live.
  • csound~ Un objet externe pour Max/MSP par Davis Pyon, qui permet de faire fonctionner la puissance de CSound dans Max/MSP.
%d blogueurs aiment cette page :