リアルタイムに演奏してみる — Sonic Pi 5
前回までは、Sonic Piを実行すると、上からコードが読み込まれ、音がなり、下までコードを読み終えたら、そこで音は止まってました。
今回は、
- 書いた音をループさせてみる
- ループさせながらコードを変更してみる
の2つをやってみたいと思います。
音をループさせるには live_loop
を使います。下記のように、 live_loop :名前 do
と end
でコードを挟むように書いてみましょう。 play
や sleep
の横にスペースを入れなくても、 Run
ボタンを押すと自動的に整います。(名前は自由につけていただいて大丈夫です。)
live_loop :one do
play 60
sleep 1
end
実行すると 60
の音が連続して聞こえるようになりました!もちろん sample
などを間に挟んで、ループさせることも可能です。
止めたくなったら Stop
ボタン、または Command + S
を押してください。
それでは、もう一度実行して、音がループしている間に、 sleep
の下にコードをつけ加えてみましょう。
live_loop :one do
play 60
sleep 1
play 62 #追加
sleep 1 #追加
end
コードを付け加えただけでは何も変わりませんね。 Run
ボタンを押してみましょう。
すると、リズムがずれることなく、自然に変化しました!
Sonic Piではこのように、 live_loop
を用いることで、メロディやリズムをループさせながら、コードを書き換え、音楽を変化させていくことが可能です。
Sam Aaron さんのコード(を少し僕がいじったもの)を見てみましょう。
live_loop :foo do
use_synth :prophet
play :e1, release: 8
sleep 8
end
上記を書いたら実行してください。
少し殺風景なので、ドラムを追加して見ましょう。
live_loop :foo do
sample :loop_garzul #追加
use_synth :prophet
play :e1, release: 8
sleep 8
end
書き足したら再度実行。
play
の音を書き換えて見ましょう。
live_loop :foo do
sample :loop_garzul
use_synth :prophet
play :c1, release: 8 #cに変更
sleep 8
end
なんか色々できそうな気がしてきましたね!コードをいじって遊んでみましょうー
次は、ランダムな数字の作り方や、データ構造のリスト、Sonic Pi特有のデータ構造の ring
などを見ていきます!