[SonicPi] サンプリングサウンドでミュージック!

サンプリングファイルを鳴らす

 音のフレーズとして、SonicPiにあらかじめ入っているサンプリング(録音)されたデータを使います。まずは、以下のプログラムを入力してください。

use_bpm 120

live_loop :breakbeat do
  sample :loop_breakbeat
  sleep 4
end

 「loop_breakfast」という名前のサンプリングファイルを再生します。ひとまず、ループして再生しますが、このままではループのはじめにカクっとリズムがズレてしまいます。


サンプリングファイルのズレをなくす

use_bpm 120

live_loop :breakbeat do
  sample :loop_breakbeat , beat_stretch: 4
  sleep 4
end

 そこで「beat_stretch」を使って、ズレないようにします。「sleep 4」で4拍でループしていますので、「beat_stretch: 4」にします。するとサンプリングファイルが4拍子の長さに調整されます。


音にグルーブ感を出す

ひとつの例「スライサー」エフェクト

use_bpm 120

live_loop :breakbeat do
  with_fx :slicer, phase: 0.25, wave:0 , mix: 1.0 do
    sample :loop_breakbeat, beat_stretch: 4
    sleep 4
  end
end

 「スライサー」とは、いま鳴らしている音に、強弱をつけるエフェクトです。「phase」「wave」「mix」の3つのパラメータがあります。「スライサー」の仕組みは、「wave」で指定した波の形で、音全体がゆらゆら揺れます。素早く音量が変化している状態です。このとき1拍子のなかで何回揺れるかを決めるのが「phase」です。下の図では1拍子のなかで4回揺れるようにしているので、「phase: 0.25」となります。「mix」は1.0を100%として、エフェクトした音ともとの音をどのくらい混ぜるか決めます。「mix: 1.0」はエフェクトした音だけ鳴らします。

 「wave」で指定できる波の形は、「0」「1」「2」の3種類あります。「phase」で指定できる数値を1.0より大きすると、1拍子よりもっと長い時間で揺らすことができます。


自分でサンプリングした音をつかう

 今度は自分でサンプリング(録音)した、外部のサウンドデータを使います。今回はサンプルとしてデータを用意してあります。サンプルは、口笛をふいた音、空き缶をたたいた音をいくつか録音して、波形編集ソフトで音を切り出したものです。波形編集ソフトはフリーの「Audacity」を使用しています。スマートフォンのアプリで録音して、PCに持ってきてもよいでしょう。「wav」形式のサウンドファイルにします。

 SonicPiでは、外部のサウンドデータが、PCの中のどこにあるのか場所をプログラムする必要があります。場所は「パス」と言いますが、このファイルのパスは手で入力するのではなくて、SonicPiのウィンドウへ外部サウンドデータをドラッグ&ドロップすると簡単です。

 どの場所でもよいのですが、今回はみんなで同じ作業になるよう、サンプルの外部サウンドデータを、フォルダごとデスクトップに置くことにします。「filename = 」のあとに続くパスを書き換えます。

live_loop :can do
  filename = "C:/Users/xxxx/Desktop/sample/can_0.wav"
  
  sample filename, beat_stretch: 1
  sleep 1
end

デスクトップに、サンプルの外部サウンドデータの入った「sample」フォルダを移動してください。SonicPiでダミーで入れてあるパスを削除します。

「sample」の中からファイルをどれか選び、SonicPi画面にドラッグドロップします。

「filename = 」のあとにファイルパスが続くように整えてください。

きちんとファイルパスを指定できるとこのようになります。「Run」ボタンで音が鳴ることを確認してください。


ランダムに音を鳴らすプログラム

次に外部サウンドファイルを、ランダムに選択するようにします。

ファイルパスを「path」で途中まで指定し、ファイル名の直前の「/(スラッシュ)」は残します。

「filename」には外部サウンドのファイル名を「,(コンマ)」で区切って並べ、「choose」とすることで、ファイル名だけをランダムに選びます。

path = "C:/Users/xxxx/Desktop/sample/"

filename = ["can_0.wav","can_1.wav"].choose

path + filename」とすることで、ひとつのファイルパスに戻すことができます。

sample path + filename, beat_stretch: 1

chooseの中を増やすこともできます。

filename = ["can_0.wav","can_1.wav", "can_2.wav", "can_3.wav"].choose

音の長さをランダムにします。

 t = [0.25,0.25,0.5,1.0].choose
 sample path + filename, beat_stretch: t
 sleep t

今回のベースとするプログラム

use_bpm 120

live_loop :can do
  path = "C:/Users/user/Desktop/sample/"
  
  
  filename = ["whistle_0.wav","whistle_1.wav"].choose
  t = [0.25,0.25,0.5,1.0].choose
  sample path + filename, beat_stretch: t
  sleep t
end

 


応用したプログラム

参考サイト

solenoids = "C:/Users/user/Desktop/sample/"
use_bpm 110

live_loop :solenoid1 do
  sample solenoids+"loop_4.wav", 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.wav", "hit_2.wav", "hit_3.wav", "hit_4.wav", "hit_5.wav", "hit_6.wav", "hit_7.wav"].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.wav", rate: (ring 0.5, 0.55, 0.6, 0.65).tick, amp: 1.5
    sleep 2
  end
end# Welcome to Sonic Pi v3.1