Les synthétiseurs

Précédent Sommaire Suivant

Jusqu’à présent nous avons joué des signaux dans des fonctions, mais il existe une autre approche pour confectionner et exécuter des synthétiseurs. Il est possible de les définir et de les charger dans la mémoire du serveur. On pourra alors accéder à un synthétiseur et à ces paramètres plus facilement. La définition d’un synthétiseur s’effectue avec la commande SynthDef et on lance un synthétiseur avec Synth.

// Définition d’un synthétiseur.
(
SynthDef(\testBlip, { arg out=0, gate=1, frequence=440, nombreHarmonique=100, position=0, amp=0.5, release=0.5;
var env, signal;
env = EnvGen.kr( Env.adsr(releaseTime:release, peakLevel:amp), gate, doneAction:2);

signal = Blip.ar(frequence, nombreHarmonique);
signal = Pan2.ar(signal, position);
Out.ar(out, signal * env );
}).add;
)

// Affectation d’un synthétiseur à une variable globale (de a à z elles sont prédéfinies, attention certaines sont réservées comme s) pour pouvoir le contrôler. Si on lui fournit pas de paramètres, il utilisera les valeurs par défaut données lors de sa définition.
a = Synth(\testBlip);
// Pour exécuter la release, on ferme la porte. Grâce à doneAction:2 le synthétiseur en jeu est libéré de la mémoire.
a.set(\gate, 0);

a = Synth(\testBlip, [\frequence,57.midicps, \nombreHarmonique,200, \position,0, \amp,-15.dbamp, \release,5] );
// Plusieurs instances peuvent utiliser la même synthétiseur.
b = Synth(\testBlip, [\frequence,63.midicps, \nombreHarmonique,100, \position,0, \amp,-15.dbamp, \release,5] );
a.set(\frequence,69.midicps, \nombreHarmonique,50);
a.set(\gate, 0); b.set(\gate, 0);

Sébastien Clara – Avril 2013

Précédent Sommaire Suivant
Publicités