リアルタイムに演奏してみる — Sonic Pi 5

takkii
Music and Technology
3 min readMay 4, 2017

前回までは、Sonic Piを実行すると、上からコードが読み込まれ、音がなり、下までコードを読み終えたら、そこで音は止まってました。

今回は、

  • 書いた音をループさせてみる
  • ループさせながらコードを変更してみる

の2つをやってみたいと思います。

音をループさせるには live_loop を使います。下記のように、 live_loop :名前 doendでコードを挟むように書いてみましょう。 playsleep の横にスペースを入れなくても、 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 などを見ていきます!

--

--

takkii
Music and Technology

Competitive Programming, MachineLearning, Manga, Music, BoardGame.