Les échantillons

Précédent Sommaire Suivant

SuperCollider offre la possibilité de lire des échantillons. Deux méthodes de manipulation sont disponibles avec chacune leur avantage et leur inconvénient. On peut charger un échantillon en mémoire vive ou le lire au fils de l’eau sur le disque dur. La première méthode permet d’accéder à son échantillon rapidement, mais si on charge trop d’échantillons on encombre la mémoire vive et on dégrade la réactivité générale du système. La seconde méthode lit les échantillons sur le disque, elle accède un peu plus lentement aux échantillons, mais elle autorise la lecture d’une grande quantité d’échantillons volumineux dans la mesure des possibilités du disque dur.

Pour lire un échantillon en mémoire vive, il est nécessaire d’effectuer trois étapes. La première alloue et copie l’échantillon en mémoire, puis on le lit et enfin lorsqu’on a terminé, on le désalloue. Cette dernière étape est importante, car si on continue d’allouer d’autres échantillons, on finit par saturer le serveur.

// Affectation à une variable globale d’un échantillon.
b = Buffer.read(s, Platform.resourceDir +/+ « sounds/a11wlk01.wav »);(
{
var ajusteDuree, rate = 1;
// La variable rate détermine la vitesse de lecture. À 2.0 l’échantillon est lu à l’octave supérieur, à -1.0 il est lu en sens inverse, etc.
ajusteDuree = if( rate.isPositive, {rate}, {rate.neg} );
PlayBuf.ar(1, b, BufRateScale.kr(b) * rate, loop:1 )
*
EnvGen.kr( Env.sine(BufDur.kr(b) / ajusteDuree), doneAction:2 );
}.play;
)
// Libération de l’échantillon. Attention ne pas libérer l’échantillon et ré-allouer d’autres buffers peut entraîner une saturation du serveur.
b.free;

Un exemple d’utilisation des échantillons.

La lecture sur le disque dur est plus transparente pour l’utilisateur. Elle consiste à donner l’emplacement des fichiers et à exécuter la lecture.

f = SoundFile.collect(Platform.resourceDir +/+ « sounds/* »).do { |f| f.path.postln };
f[0].cue( playNow:true, closeWhenDone: true );
f[1].cue( playNow:true, closeWhenDone: true );

SoundFile est une expression complète et elle permet bien d’autres choses, comme de donner plus de contrôle de lecture ou de normaliser les échantillons.

Sébastien Clara – Avril 2013

Précédent Sommaire Suivant
Publicités