Advanced Topics 1
Sonic Piは約164のサンプル音源があってそれで遊ぶことができますが、外部サンプル音源もサポートしています。例えば、あなたが何か(あなた自身の声やギターなど)を録音し、それをSonic Piで使いたいかもしれません。
最初に、サンプル音源をWAVフォーマットでハードディスクドライブのフォルダにいれておく必要があります。以下の例では、Mehackit による無料のサンプルパックを使います。それは、Solenoid Samples 1 というもので、ここからダウンロードできます。そこには、2016年初めのワークショップで作成したキネティックサウンドインスタレーションから録音された、14のワンショットもしくはループのサンプル音源が入っています。
サンプルパックをダウンロードしたら、それをどこかのフォルダに解凍してください。そのフォルダのフルパスを確認をする必要があります。例えば、もしあなたがファイルをデスクトップの’Samples’というフォルダに解凍した場合には、フルパスは以下のようなものになるでしょう:
‘sam’のかわりにあなたのユーザ名にするのを忘れないようにしてください。サンプルパックは以下のファイルがあります: hit_1.wavからhit_7.wav(パーカッシブなヒット)とloop_1.wavからloop_7.wav(beat_stretchオプションと一緒に使うループビート)。
では、sampleコマンドでファイルパスを直接指定して再生してみます:
sample "/Users/sam/Desktop/Samples/loop_1.wav", amp: 1.5sampleコマンドに渡すパスが正確であれば、loop_1.wavの音が聞こえるはずです。ここで、この例のパスを別なものに変更したいと思ったとしましょう。先程の例は、サンプルにアクセスして再生するとてもストレートな方法でした。しかし、あなたはフォルダパスを1度だけ書いて、ファイル名だけを参照してサンプルを再生したいのではないでしょうか?フォルダパスの変数を定義してそれを組み合わせてsampleコマンドで使用することができます。sampleの後に、フォルダパスを格納した変数を渡し、その後にサンプル名を渡すことができます。以下の例では、solenoidsという名前の変数を宣言してサンプルフォルダのパスを格納しています。これを実行すると、loop_4.wavのサンプルが再生され、ループするはずです:
solenoids = "/Users/sam/Desktop/Samples/"
use_bpm 110
live_loop :solenoid1 do
sample solenoids, "loop_4", beat_stretch: 4, amp: 2
sleep 4
endここまでで外部サンプル音源とSonic Piのサンプル音源の両方をあなたの作品に使うことができるようになりました。下の例では、4つのlive_loopが外部サンプルとSonic Piのサンプルを再生しています。:solenoid2のlive_loopでは、samplenameという変数を使って、hit_1.wavからhit_7.wavの1つをランダムに選択しています。
solenoids = "/Users/sam/Desktop/Samples/"
use_bpm 110
live_loop :solenoid1 do
sample solenoids, "loop_4", beat_stretch: 4, amp: 2
sleep 4
end
live_loop :kick do
sample :bd_haus, rate: 0.8, amp: 2
sleep 1
end
live_loop :solenoid2 do
samplename = ["hit_1", "hit_2", "hit_3", "hit_4", "hit_5", "hit_6", "hit_7"].choose
time = [0.25, 0.5, 0.75].choose
sample solenoids, samplename, amp: 1.5, rate: 2, pan: rrand(-0.8, 0.8)
sleep time
end
with_fx :reverb do
live_loop :solenoid3 do
sleep 2
sample solenoids, "hit_6", rate: (ring 0.5, 0.55, 0.6, 0.65).tick, amp: 1.5
sleep 2
end
end