Do tej pory interesowaliśmy się tylko uruchamianiem nowych dźwięków i efektów. Jednakże Sonic Pi daje nam możliwość manipulacji i kontroli aktualnie uruchomionych dźwięków. Dokonujemy tego, używając zmiennych do przechwycenia referencji do syntezatora:
s = play 60, release: 5
Mamy tutaj zmienną lokalną s
, która reprezentuje syntezator grający nutę 60. Zauważ jednak, że to jest zmienna działająca lokalnie - nie masz do niej dostępu z innych uruchomień takich jak funkcje.
Gdy już mamy zmienną s
, możemy zacząć kontrolować ją za pomocą funkcji control
:
s = play 60, release: 5
sleep 0.5
control s, note: 65
sleep 0.5
control s, note: 67
sleep 3
control s, note: 72
Rzeczą godną zauważenia jest tutaj to, że nie uruchamiamy 4 oddzielnych syntezatorów - uruchamiamy tylko jeden, po czym zmieniamy wysokość tonu 3 razy, w trakcie gdy wciąż gra.
Możemy przekazywać dowolne ze standardowych parametrów do polecenia control
- pozwala nam to na kontrolowanie takich rzeczy jak amp:
, cutoff:
czy pan:
.
Są pewne parametry, które nie mogą być kontrolowane, gdy syntezator został już uruchomiony. Dotyczy to m.in. wszystkich parametrów obwiedni ADSR. Możesz samodzielnie sprawdzić, które z parametrów danego syntezatora mogą być kontrolowane, zaglądając do systemu pomocy. Jeśli w dokumentacji jest napisane can not be changed once set (nie może być zmieniony, gdy już raz został ustawiony), to wiesz, że nie możesz kontrolować i zmieniać danego parametru, gdy syntezator już wystartuje.