ChucK, le code musical
10/05/06 à 08:34 chuck
ChucK est un langage de synthèse audio en temps réel, pour la composition et
l'utilisation en live. Il intégre une gestion du temps très précise, qui
constitue une de ses qualités originales, ChucK permet également la modification
des scripts à la volée, sans pause ni redémarrage. Une partie du langage permet
de traiter les évènements dynamiques externes : clavier, souris, usb, MIDI et OSC.
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 :
Avec des légères modifications :
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; }
3 commentaires :: un trackback :: envoyer ce billet par email


