ChucK, le code musical
10/05/06 à 08:34 chuck
Ce langage est développé pour faire du code un instrument d'expression musicale. L'utilisation basique de Chuck se fait à partir de scripts en mode "ligne de commandes", un environnement complet de programmation est en cours de développement.
Parmi les capacités du langage, on peut trouver en vrac : la gestion des échantillons (formats wav), des oscillateurs pour toutes formes d'onde (phasor, sin, pulse, square, triangle, sawtooth, etc.), des filtres, la gestion du réseau en udp, des évènements MIDI et OSC ainsi qu'une librairie d'instruments paramétrables (modélisation physique) : clarinette, flute, mandoline, moog, sitar, voix, saxophone, une librairie pour la modulation FM, etc.
ChucK est développé à Princeton pour les plateformes MacOS X, Windows ou Linux, sous licence GNU-GPL.
Site principal en anglais
ChucK sur Sourceforge
Voici une traduction en français de deux tutoriels pour se mettre à chucker : l'installation sur Windows XP, et la réalisation d'un premier script : ChucK en français. Ils sont basés sur la version 'Dracula' du langage (1.2.x.x)
Deux exemples (pas vraiment musicaux!) pour illustrer le langage :
// créer un oscillateur à onde carrée nommé 'car' sqrosc car => dac; // donner une valeur à la variable fréquence 20 => float frequence; // fixer la fréquence de l'oscillateur à 20 Hz frequence => car.freq; // jouer indéfiniment en changeant // la fréquence toutes les 1/2 secondes while (true) { // augmenter ou réduire aléatoirement la fréquence std.rand2f(-2.0, 2.0) + frequence => frequence; frequence => car.freq; // attribuer la nouvelle fréquence // laisser passer une demi seconde 0.5::second => now; }Voila ce que ça donne :
Avec des légères modifications :
// créer un oscillateur à onde sinusoïdale nommé 'sin' sinosc sin => dac; // donner une valeur à la variable fréquence 440 => float frequence; // fixer la fréquence de l'oscillateur à 440 Hz frequence => sin.freq; // jouer indéfiniment en changeant la fréquence // toutes les 50 millisecondes while (true) { // augmenter ou réduire aléatoirement la fréquence std.rand2f(-5.0, 5.0) + frequence => frequence; frequence => sin.freq; // attribuer la nouvelle fréquence // laisser passer 50 milli-secondes 50::ms => now; }



Commentaires
Avec iMac je ne peux pas utiliser Chuck. Je dois me contenter de radio pure data.
Si ton imac est en système 9, tu peux utiliser SuperCollider, qui est également un langage de synthèse audio, qui a fait ses preuves, et bénéficie d'une large communauté d'utilisateurs. Il n'utilise pas la même syntaxe que ChucK, mais c'est de la même famille! voir www.audiosynth.com/
Non, il n'est pas en système 9. Et voilà...! Pendant que certains utilisent Chuck ou SuperCollider et bien... je ne peux que dire : "Bououou..."
Ajouter un commentaire