Musique algorithmique

Progressions d'accords

L’exemple précédent jouait seulement avec l’accord de C (do) mineur. Voici maintenant un exemple qui utilise un anneau d’accords que toutes les boucles utilisent. Toutes les boucles vont jouer autour du même accord et une des boucles change d’accord pour toutes les autres. Cela devient un peu compliqué, mais regarde cela peut t’inspirer. Si tu veux, tu peux t’aider des tables de progression des accords pour choisir un ensemble qui sonne bien.

chords = [(chord :C, :minor7), (chord :Ab, :major7), (chord :Eb, :major7), (chord :Bb, "7")].ring
c = chords[0] # prend le premier accord de l'anneau et stocke le dans une variable
# ce c va être utilisé dans toutes les live_loops. Il sera modifié par la boucle :basse

live_loop :melodie do
  use_synth :blade
  r = [0.25, 0.25, 0.5, 1].choose
  play c.choose, attack: 0, release: r
  sleep r
end

live_loop :tonalite do
  use_synth :blade
  play c
  sleep 1
end

live_loop :basse do
  use_synth :fm
  use_octave -2
  3.times do
    play c[0] # joue la première note de l'accord
    sleep 1
  end
  play c[2] # joue la troisième note de l'accord
  sleep 0.5
  play c[1] # # joue la seconde note de l'accord
  sleep 0.5
  c = chords.tick
end