Akkoorden

Sonic Pi heeft ingebouwde ondersteuning voor akkoordnamen die lijsten zullen weergeven. Probeer dit voor jezelf:

play chord(:E3, :minor)

Nu komen we er. Dit ziet er veel beter uit dan de rauwe lijst (en is makkelijker te lezen voor andere mensen). Welke andere akkoorden ondersteund Sonic Pi nog? Wel, een hoop. Probeer wat van deze:

Arpeggio ‘s

We kunnen gemakkelijk akkoorden in arpeggio’s omzetten met de functie ‘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

We kunnen zelfs een lijst met tijden doorgeven, welke als een tijdscirkel zullen worden behandeld:

play_pattern_timed chord(:E3, :m13), [0.25, 0.5]

Dit is gelijk aan:

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

Welke wil je liever schrijven?

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