Sonic Pi soporta nombres de acordes que regresarán listas. Pruébalo:
play chord(:E3, :minor)
¡Ahora estamos en algo!. Eso se mira mucho mejor que listas crudas y es más fácil de leer para otros. ¿qué otros acordes soporta Sonic Pi? Bueno, muchos. Prueba con estos:
chord(:E3, :m7)chord(:E3, :minor)chord(:E3, :dim7)chord(:E3, :dom7)Podemos convertir acordes en arpegios con facilidad, gracias a la función 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
Inclusive podemos pasar una lista de tiempos, los cuales serán tratados como un círculo de tiempos:
play_pattern_timed chord(:E3, :m13), [0.25, 0.5]
Eso equivale a:
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
¿qué preferirías escribir?
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