Dans les épisodes précédents de cette série sur Sonic PI, nous avons exploré la puissance de l’aléatoire pour introduire de la variété, de la surprise et du changement dans nos pistes et nos représentations de Live Coding. Par exemple, nous avons choisi aléatoirement des notes d’une gamme pour créer des mélodies sans fin. Aujourd’hui, nous allons apprendre une nouvelle technique qui utilise l’aléatoire pour le rythme - les rythmes probabilistes !
dice (dé)
8.times do
puts dice
sleep 1
end
Remarquez comme le journal affiche des valeurs entre 1 et 6 comme si nous avions lancé nous-même un dé.
Écoutons comment cela sonne :
live_loop :random_beat do
sample :drum_snare_hard if dice == 1
sleep 0.125
end
dice (dé)
dice (dé)
live_loop :different_probabilities do
sample :drum_snare_hard if one_in(6)
sleep 0.125
end
Lancez la boucle ci-dessus et vous pourrez entendre un rythme aléatoire familier. Cependant, n’arrêtez pas l’exécution du code. Au lieu de cela, changez le 6
pour une valeur différente comme 2
ou 20
et appuyez de nouveau sur le bouton Run
. Constatez que des nombres inférieurs signifient que le son de caisse claire sera plus fréquent et que des nombres supérieurs signifie que la caisse clair est jouée moins fréquemment. Vous faites de la musique avec des probabilités !
Les choses deviennent vraiment excitantes quand plusieurs échantillons sont joués avec des probabilités différentes. Par exemple :
live_loop :multi_beat do
sample :elec_hi_snare if one_in(6)
sample :drum_cymbal_closed if one_in(2)
sample :drum_cymbal_pedal if one_in(3)
sample :bd_haus if one_in(4)
sleep 0.125
end
De nouveau, exécutez le code ci-dessus et commencez à changer les probabilités pour modifier le rythme. De plus, essayez de changer les échantillons pour créer une sensation entièrement nouvelle. Par exemple, essayez de changer :drum_cymbal_closed
par :bass_hit_c
pour obtenir plus de basse !
Ensuite, nous pouvons utilisez notre vieil ami use_random_seed
pour réinitialiser le générateur aléatoire après 8 itérations pour créer un rythme régulier. Tapez le code suivant pour entendre un rythme beaucoup plus régulier et répétitif. Une fois que vous entendez le rythme, essayez de remplacer la valeur 1000
par un autre nombre. Remarquez comme des nombres différents génèrent des rythmes différents.
live_loop :multi_beat do
use_random_seed 1000
8.times do
sample :elec_hi_snare if one_in(6)
sample :drum_cymbal_closed if one_in(2)
sample :drum_cymbal_pedal if one_in(3)
sample :bd_haus if one_in(4)
sleep 0.125
end
end
Une chose que j’ai tendance à faire avec ce genre de structures, c’est de me rappeler quelles graines aléatoires sonnent bien et de les noter. De cette manière, je peux facilement recréer mes rythmes dans des sessions d’entrainement ou des représentations futures.
Finalement, nous pouvons ajouter un peu de basse aléatoire pour lui donner un contenu mélodique sympa. Vous pourrez remarquer que nous pouvons aussi utiliser notre méthode de séquençage probabiliste récemment découverte sur les synthés comme sur les échantillons. Nous vous arrêtez pas là pour autant - ajuster les nombres et faites votre propre piste grâce au pouvoir des probabilités !
Choix ("choose")