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.wavbeat_stretchオプションと一緒に使うループビート)。

では、sampleコマンドでファイルパスを直接指定して再生してみます:

sample "/Users/sam/Desktop/Samples/loop_1.wav", amp: 1.5

sampleコマンドに渡すパスが正確であれば、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