Aller au contenu principal

Jouer des samples (batterie et autres sons)

FoxDot peut aussi être utilisé pour jouer et manipuler des samples (échantillons audio).

  • Pour cela, il suffit d'utiliser le mot clé play à la place de blip ou autre synthé. play est un sampleur (SampleSynthDef dans supercollider).

  • Le premier argument de play doit être une chaîne de caractères (on parle de playstring dans FoxDot) au lieu d'une liste de nombres comme vous le feriez pour tout autre synthétiseur.

  • Chaque caractère représente un fichier audio différent, qui est stocké dans les sous-répertoires du dossier FoxDot/snd/.

Pour voir quel caractère correspond à quel fichier audio, exécutez:

print(Samples)

Maintenant jouons un sample avec le code suivant (la dur (duration) par défaut est 0.5 (ou 1/2), donc chaque caractère dure un demi beat)

bd >> play("x")

Un caractère fait référence à un son et le point ou l'espace est utilisé pour le silence, donc vous pouvez étaler les sons dans le temps :

bd >> play("o..o..x..")

hh >> play(" -")

Factoriser/raccourcir une expression avec les parenthèses​

On peut remplacer un caractère d'une playstring par un ensemble de caractères entre parenthèses. En faisant ceci, les caractères entre parenthèse son joué un par un à chaque répétition de la playstring: d1 >> play("x-*(-=)")

Par exemple le code suivant "x-*(-=o)" joue la même chose que "x-*-x-*=x-*o"

Ou encore "(x=)(-v)o." est identique à "x-o.=vo."

Les parenthèses dans une playstring servent donc à "factoriser" une phrase rythmique pour la rendre plus courte !

Pour comprendre intuitivement l'utilité de cette fonction de factorisation je vous propose de recopier à la main et au fur et a mesure en remplaçant les différentes lignes de code ci-dessous :

d1 >> play('.-')

d1 >> play('.(---=)')

d1 >> play('x(---=)')

d1 >> play('(xo)(---=)')

d1 >> play('((Xxxx)o)(---=)')

Si on devait l'écrire sans factorisation, la dernière ligne donnerait :

d1 >> play('X-o-x-o=x-o-x-o=')

Plusieurs coups sur un seul temps avec les crochets​

Mettre des caractères entre crochets les jouera tous en l'espace d'un temps. Et seront joués comme un seul caractère, pas simultanément, mais en succession rapide.

d1 >> play("x-o[-o]")

d1 >> play("x-o[---]")

d1 >> play("x-o[-----]")

d1 >> play("x-o[--------------]")

... et peuvent être mis entre parenthèses comme s'ils étaient eux-mêmes un caractère.

d1 >> play("x[--]o(=[-o])")

Vous pouvez combiner les parenthèses comme vous le souhaitez : les exemples suivants sont identiques

d1 >> play("x-o(-[-o])")

d1 >> play("x-o[-(o )]")

Sample au hasard​

Les accolades sélectionnent un sample au hasard si vous voulez plus de variété.

d1 >> play("x-o{-=[--][-o]}")

Les crochets combinent les motifs à jouer simultanément.

d1 >> play("<X   ><-   ><#   ><V   >")

d1 >> play("<X >< - >< # >< V>")

Chaque caractère est associé à un dossier de fichiers sonores et vous pouvez sélectionner différents échantillons en utilisant l'argument du mot clé sample.

d1 >> play("(x[--])xu[--]")

d1 >> play("(x[--])xu[--]", sample=1)

d1 >> play("(x[--])xu[--]", sample=2)

On peut, changez l'échantillon pour chaque coup (sample peut utiliser des patterns/listes comme presque tous les autres paramètres).

d1 >> play("(x[--])xu[--]", sample=[1,2,3])

Petite listes des samples de base de FoxDot​

Kick (grosse caisse) A v V x X W

Snare/Rim (caisse claire) D i I o O t u

Hihat (charleston) : = - a n N

Clap/Snap * h H

Cymbale/Crash / # e E

Tom/Tom-like m M p P w

Percussion & + d f l r R y

SoundFX \ b F k L Q Y z Z

Voix 1 2 3 4 ! < ? c C

Bell T Cymbale Ride ~ Bruits @ % Maracas s S

Autre $ ; B g G j J K q U