Acordes

O Sonic Pi possui suporte para nomes de acordes que devolverão listas. Tente você mesmo:

play chord(:E3, :minor)

Agora estamos chegando em algum lugar. Isso parece muito mais bonito que listas brutas (e são mais fáceis de ler para outras pessoas). Então quais outros acordes o Sonic Pi suporta? Bem, muitos. Tente alguns destes:

Arpejos

Podemos facilmente transformar acordes em arpejos com a função play_pattern:

play_pattern chord(:E3, :m7)

Ok, isto não é muito divertido - tocou muito devagar. play_pattern irá tocar cada nota na lista separada por uma chamada a sleep 1 entre cada chamada a play. Podemos usar outra função play_pattern_timed para especificar o nosso próprio tempo e acelerar as coisas:

play_pattern_timed chord(:E3, :m7), 0.25

Podemos até passar uma lista de tempos que serão tratados como um circulo de tempos:

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

Isto é equivalente a:

play 52
sleep 0.25
play 55
sleep 0.5
play 59
sleep 0.25
play 62
sleep 0.5
play 66
sleep 0.25
play 69
sleep 0.5
play 73

Qual você prefere escrever?