Sonic Pi posiada wbudowane wsparcie dla nazw akordów, które zwracają listy. Spróbuj sam:
play chord(:E3, :minor)
Teraz naprawdę zaczynamy dokądś zmierzać. To wygląda dużo ładniej niż czyste listy (i jest znacznie łatwiejsze do czytania dla innych ludzi). Jakie więc inne akordy wspiera Sonic Pi? Całkiem sporo. Spróbuj tych:
chord(:E3, :m7)
chord(:E3, :minor)
chord(:E3, :dim7)
chord(:E3, :dom7)
Możemy bardzo łatwo zmienić akordy w arpeggia za pomocą funkcji play_pattern
:
play_pattern chord(:E3, :m7)
Okej, to nie jest jakoś bardzo fajne - zostało odtworzone dość wolno. Funkcja play_pattern
zagra każdą listę z przekazanej listy, oddzielając każdą nutę uruchomieniem polecenia sleep 1
pomiędzy każdym uruchomieniem funkcji play
. Możemy jednak użyć innej funkcji play_pattern_timed
, aby móc samodzielnie określić timing i przyśpieszyć bieg rzeczy:
play_pattern_timed chord(:E3, :m7), 0.25
Możemy nawet przekazać listę czasów, która zostanie potraktowania jako krąg czasów:
play_pattern_timed chord(:E3, :m13), [0.25, 0.5]
Jest to odpowiednik takiego kawałka kodu:
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
Który kawałek wydaje Ci się wygodniejszy do napisania i którego byś użył?