# Coder un séquenceur probabiliste

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 !

# Portabilité

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é.

# Rythmes aléatoires

Écoutons comment cela sonne :

    live_loop :random_beat do
      sample :drum_snare_hard if dice == 1
      sleep 0.125
    end

dice (dé)

# Changer les probabilités

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 !

# Combiner les 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 !

# Rythme

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.

# Rassemblons tout

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")