Sonic Pi incorpore le support des noms d’accord, lequel retourne des listes. Essayez-le vous-même :
play chord(:E3, :minor)
Maintenant, nous avons vraiment progressé. Ça parait beaucoup plus joli que les listes brutes (et c’est plus facile à lire pour les autres). Alors quels autres accords Sonic Pi supporte-t-il ? Eh bien, un tas. Essayez quelques-uns parmi ceux-ci :
chord(:E3, :m7)
chord(:E3, :minor)
chord(:E3, :dim7)
chord(:E3, :dom7)
Nous pouvons facilement changer les accords en arpèges avec la fonction play_pattern
:
play_pattern chord(:E3, :m7)
Ok, that’s not so fun - it played it really slowly. play_pattern
will play each note in the list with a call to sleep 1
after each call to play
. We can use another function play_pattern_timed
to specify our own timings and speed things up:
play_pattern_timed chord(:E3, :m7), 0.25
Nous pouvons même passer une liste de durées qui sera traitée de façon circulaire :
play_pattern_timed chord(:E3, :m13), [0.25, 0.5]
Ceci est équivalent à :
play 52, sustain: 0.25
sleep 0.25
play 55, sustain: 0.5
sleep 0.5
play 59, sustain: 0.25
sleep 0.25
play 62, sustain: 0.5
sleep 0.5
play 66, sustain: 0.25
sleep 0.25
play 69, sustain: 0.5
sleep 0.5
play 73, sustain: 0.25
sleep 0.25
Lequel préféreriez-vous écrire ?
Note that play_pattern
and play_pattern_timed
alter the sustain of the notes to fill the times. You can remove this behavior by setting the sustain:
opt to 0
:
play_pattern_timed chord(:E3, :m13), [0.25, 0.5], sustain: 0