Przygotowanie krótkiego utworu (~30s) w środowisku Sonic Pi, spełniającego następujące wymagania:
use_bpm i with_bpmUżywając use_bpm definiujemy z jaką liczbą uderzeń na minutę wykona się kod w Sonic Pi
use_bpm 120
4.times do
play :c4
sleep 1
end
use_bpm 60
4.times do
play :c4
sleep 1
end
Podobny efekt możemy osiągnąć poprzez with_bpm
with_bpm 120 do
4.times do
play :c4
sleep 1
end
end
with_bpm 60 do
4.times do
play :c4
sleep 1
end
end
Dwie metody stworzenia oddzielnego wątku:
live_loop :nazwa do ... end (nazwa jest wymagana) - tworzymy pętlę o nazwie nazwa, która będzie powtarzać zawartość do ... end do zakończenia odtwarzaniain_thread (name: :nazwa) do ... end (nazwa jest opcjonalna) - tworzymy blok kodu, który wykonuje się niezależnie do wątku rodzicaWątkami sterujemy na dwa sposoby - albo poprzez planowanie ile każdy z wątków będzie się wykonywać albo poprzez zbiór słów sterujących:
stop - przerywa wykonywanie aktualnego kontekstusync :nazwa - oczekuj na sygnał nazwacue :nazwa - wyślij sygnał nazwalive_loop automatycznie wysyła sygnał kiedy kończy się iteracja pętli!