Les patterns

Précédent Sommaire Suivant

Les patterns fournissent des fonctionnalités de hauts niveaux dans SuperCollider. Elles sont conçues pour exécuter des séquences dans un temps donné. Elles prennent en charger certaines constructions algorithmes et libèrent l’utilisateur de cette mise en forme.

// Avant d’exécuter ces exemples, il est nécessaire de charger le synthétiseur testBlip vu dans le chapitre des synthétiseurs.
(
Pbind( \instrument,\testBlip, // Utilisation d’un instrument défini.
\frequence, Pseq((60..72).midicps), //Montée chromatique de do3 à do4.
\dur, 0.5, // La durée de chaque note est fixe.
).play;
)

// Dans l’exemple suivant, tous les paramètres reçoivent des valeurs aléatoires grâce à différentes distributions, sauf les hauteurs.
(
Pbind( \instrument,\testBlip,
\frequence, Pseq((60..72).midicps),
\dur, Pbrown(0.3, 1.5, 0.5),
\nombreHarmonique, Pbeta(10, 100),
\position, Pwhite(-1.0, 1),
\amp, Pexprand(-21.dbamp, -9.dbamp),
\release, Pgbrown(0.5, 1, 0.25)
).play;
)

// Choix entre la séquence ou la parallélisation de deux patterns. Commentez et décommentez pour sélectionner votre choix.
(
var voieUne, voieDeux;
voieUne = Pbind( \instrument,\testBlip, \frequence, Pbrown(60, 72, 3, 5).midicps );
voieDeux = Pbind( \instrument,\testBlip, \frequence, Pbrown(48, 60, 3, 5).midicps );
Ppar([voieUne, voieDeux]).play; // Parallélisation.
// Pseq([voieUne, voieDeux]).play; // Séquence.
)

// Un exemple de structuration modale.
(
Pbind( \instrument,\testBlip,
\position, Pwhite(-1.0, 1),
\amp, Pexprand(-15.dbamp, -6.dbamp),
\dur, Pbrown(0.3, 1.1, 0.5),
\release, Pgbrown(0.5, 1, 0.25),
\frequence, Pseq( [
Pseq( Scale.dorian.degreeToFreq(Pbrown(0,6,2).asStream.nextN(5), 58.midicps, 0).addFirst(58.midicps).addFirst(65.midicps).add(58.midicps) ),
Pxrand([ Pseq(Scale.harmonicMinor.degreeToFreq(Pbrown(0,6,2).asStream.nextN(5), 58.midicps, 0).add(58.midicps)),
Pseq(Scale.shang.degreeToFreq(Pbrown(0,6,2).asStream.nextN(5), 51.midicps, 0).addFirst(51.midicps).add(58.midicps)),
Pseq(Scale.rast.degreeToFreq(Pbrown(0,6,2).asStream.nextN(5), 65.midicps, 0).addFirst(65.midicps).add(58.midicps))
], 3),
Pseq( Scale.dorian.degreeToFreq(Pbrown(0,6,3).asStream.nextN(5), 58.midicps, 0).add([58.midicps, 65.midicps, 70.midicps]) ) //Accord final.
])
).play;
)

Pour aller plus loin, consultez les tutoriels :
http://doc.sccode.org/Tutorials/Getting-Started/16-Sequencing-with-Patterns.html
http://doc.sccode.org/Tutorials/Streams-Patterns-Events1.html

Sébastien Clara – Avril 2013

Précédent Sommaire Suivant