SFZ音源を元サンプルから作る(例1:オルゴール音源を組み立てる)
(2020.08.20執筆)
前回の記事でSFZ音源を再生するプラグイン(Sforzando)をインストールできました。
手持ちにWAVサンプルがあれば、簡単に.sfz形式にして扱うことができます。
ソフトの制限を超えて、自分の好きなように音源をカスタマイズできるので、.SFZ形式の音源管理は断然おすすめ。
試しに自前で組んで音を鳴らすことをしてみます。
記法の予備知識
音階ドレミの表記が、アルファベット形式です。
- ド=C
- ド#=C#
- レ=D
- ミ=E
- ファ=F
- ソ=G
- ラ=A
- ラ#=A# = シ♭=Bb
- シ=B
其処に音階の高さを表す数字が付属します。
(例:C3)
鍵盤キーにWAVサンプルを割り当てる時は、.sfzにテキストエディタで、対応する音階に合わせて以下のように記述するだけです。
(例:.sfzファイルが.wavと同じフォルダに在る状態)
<region> key=A4 sample=Dat_Carillon_A4_rr1.wav
たったこれだけで、A4の鍵盤を押したときにちゃんと音が鳴ります。
動画でも実践してみました。
<region> lokey=G#4 pitch_keycenter=A4 hikey=A#4 sample=Dat_Carillon_A4_rr1.wav
加えて、一つのWAVサンプルで複数の鍵盤キーを担当させる時は↑のようにします。
鍵盤のキー範囲をlokey、hikeyで設定すること。
元のキー(pitch_keycenter)を指定すれば、それぞれのキーが半音単位でピッチシフトします。
こちらの動画でコードとKey範囲を確認できます。
尚、オルゴールのサンプル音源は、DreamAudioToolsさんより使わせていただいてます。感謝。
音源を組む手順
元の音源の演奏を聴いて、使いたいな〜と思ったら組む。
構成はサンプル一覧を見て考える。
DreamBoxの音階サンプル一覧
- A4 rr2
- A5 rr2
- Bb4 rr2
- Bb5 rr2
- C6 rr2
- C#6 rr2
- D4 rr2
- D5 rr2
- D6 rr2
- D#6
- F#4 rr2
- F#5
- G4 rr2
- G5 rr2
これを音階順に並び替えてみる。
↓
- D4 rr2
- F#4 rr2
- G4 rr2
- A4 rr2
- Bb4 rr2
- D5 rr2
- F#5
- G5 rr2
- A5 rr2
- Bb5 rr2
- C6 rr2
- C#6 rr2
- D6 rr2
- D#6
サンプルが多くなると.sfzが見つけづらいのでフォルダ分けしてみます。

これらのWAVサンプルを、先程のように<region>〜で記述するとこんな感じ。
フォルダ指定は”フォルダ名\”で区切ります。(Linuxの場合は/で区切っても良い)
<region> lokey=C4 pitch_keycenter=D4 hikey=D#4 sample=11MusicBox\Dat_Carillon_D4_rr1.wav <region> lokey=E4 pitch_keycenter=F#4 hikey=F#4 sample=11MusicBox\Dat_Carillon_F#4_rr1.wav <region> key=G4 sample=11MusicBox\Dat_Carillon_G4_rr1.wav <region> lokey=G#4 pitch_keycenter=A4 hikey=A4 sample=11MusicBox\Dat_Carillon_A4_rr1.wav <region> lokey=A#4 pitch_keycenter=A#4 hikey=B4 sample=11MusicBox\Dat_Carillon_Bb4_rr1.wav
サンプルのフォルダパスは最初に指定する
サンプルが多くなると、sample=フォルダ名\で毎回区切るのが手間ですね。
そんなとき、最初にフォルダ名のパスを指定して、表記を省略することが可能。
<control> default_path=11MusicBox\Dat_Carillon_ //ここでサンプルフォルダ名を指定 <region> lokey=C4 pitch_keycenter=D4 hikey=D#4 sample=D4_rr1.wav <region> lokey=E4 pitch_keycenter=F#4 hikey=F#4 sample=F#4_rr1.wav <region> key=G4 sample=G4_rr1.wav <region> lokey=G#4 pitch_keycenter=A4 hikey=A4 sample=A4_rr1.wav <region> lokey=A#4 pitch_keycenter=A#4 hikey=B4 sample=Bb4_rr1.wav一オクターブ分ができたら、これらを丸ごとコピーしてさらに編集。。。
コピーした分は音階の高さを書き換えるだけで良いので楽。
<control> default_path=11MusicBox\Dat_Carillon_ <region> lokey=C4 pitch_keycenter=D4 hikey=D#4 sample=D4_rr1.wav <region> lokey=E4 pitch_keycenter=F#4 hikey=F#4 sample=F#4_rr1.wav <region> key=G4 sample=G4_rr1.wav <region> lokey=G#4 pitch_keycenter=A4 hikey=A4 sample=A4_rr1.wav <region> lokey=A#4 pitch_keycenter=A#4 hikey=B4 sample=Bb4_rr1.wav <region> lokey=C5 pitch_keycenter=D5 hikey=D#5 sample=D5_rr1.wav <region> lokey=E5 pitch_keycenter=F#5 hikey=F#5 sample=F#5.wav //ここはrrが存在しない <region> key=G5 sample=G5_rr1.wav <region> lokey=G#5 pitch_keycenter=A5 hikey=A5 sample=A5_rr1.wav <region> lokey=A#5 pitch_keycenter=A#5 hikey=B5 sample=Bb5_rr1.wav最後の音階はちょっと構成が違うので、仕上げは丁寧に。
<control> default_path=11MusicBox\Dat_Carillon_ <region> lokey=C4 pitch_keycenter=D4 hikey=D#4 sample=D4_rr1.wav <region> lokey=E4 pitch_keycenter=F#4 hikey=F#4 sample=F#4_rr1.wav <region> key=G4 sample=G4_rr1.wav <region> lokey=G#4 pitch_keycenter=A4 hikey=A4 sample=A4_rr1.wav <region> lokey=A#4 pitch_keycenter=A#4 hikey=B4 sample=Bb4_rr1.wav <region> lokey=C5 pitch_keycenter=D5 hikey=D#5 sample=D5_rr1.wav <region> lokey=E5 pitch_keycenter=F#5 hikey=F#5 sample=F#5.wav //ここはrrが存在しない <region> key=G5 sample=G5_rr1.wav <region> lokey=G#5 pitch_keycenter=A5 hikey=A5 sample=A5_rr1.wav <region> lokey=A#5 pitch_keycenter=A#5 hikey=B5 sample=Bb5_rr1.wav <region> key=C6 sample=C6_rr1.wav <region> key=C#6 sample=C#6_rr1.wav <region> key=D6 sample=D6_rr1.wav <region> lokey=D#6 pitch_keycenter=D#6 hikey=G6 sample=D#6.wav //ここはrrが存在しない
とりあえずここまで書けたら保存、既に楽器として演奏できる状態です!
おめでとう! 試しに何か鳴らしてみるといいかな。
あ〜、あはは。とりあえず鳴りはする。が、音がぶつ切れ。
.sfzの最初に以下を追記します。
<global> ampeg_release=3.0 //ノートオフ(音を止める)とき、3.0s(秒)かけてゆっくり出音を小さくする off_mode=normal <group>
<global>直下は、項目が上書きされない限り全ての<region>に値が反映される設定です。
これで、ノートオフから音がゆっくり減衰するように鳴ります。ではでは改めて。
MIDI譜面は、当サイトの「箱庭のお茶会」を使ってます。
無事に鳴りました。
ふ〜、初めてだとすっごく大変だと思います。おつかれさまでした。
慣れたら、コピペでがんがん編集できて楽です。読み込みも早いし
ラウンドロビンの設定
ちょっと休憩したら、合わせてラウンドロビン(RoundRobin)の設定まで行ってみましょう。
ラウンドロビンとは、1つの音階に複数のサンプルを用意して、ノートオン毎に交互に鳴らす設定のことです。
ベタ打ちでもバラエティに富んた音に鳴る。打楽器とかリズム楽器によく利用されます。今回のオルゴールも2つのRRが用意されてるのでカスタマイズしてみます。
ラウンドロビンの表記
<region> seq_length=2 seq_position=1 key=A4 sample=Dat_Carillon_A4_rr1.wav <region> seq_length=2 seq_position=2 key=A4 sample=Dat_Carillon_A4_rr2.wav
seq_lengthでラウンドロビンの最大数を、seq_positionで何番目を指定するかをそれぞれ表記。
サンプルも合わせてrr1とrr2にそれぞれ振り分ける。これでノートオン毎に交互に鳴ります。
<group> seq_length=2 <region> seq_position=1 key=A4 sample=Dat_Carillon_A4_rr1.wav <region> seq_position=2 key=A4 sample=Dat_Carillon_A4_rr2.wav
前回のオルゴールに、ラウンドロビンを全regionに対して付記したのが、以下。
<control> default_path=11MusicBox\Dat_Carillon_ <global> ampeg_release=3 off_mode=normal <group> seq_length=2 <region> seq_position=1 lokey=C4 pitch_keycenter=D4 hikey=D#4 sample=D4_rr1.wav <region> seq_position=2 lokey=C4 pitch_keycenter=D4 hikey=D#4 sample=D4_rr2.wav <region> seq_position=1 lokey=E4 pitch_keycenter=F#4 hikey=F#4 sample=F#4_rr1.wav <region> seq_position=2 lokey=E4 pitch_keycenter=F#4 hikey=F#4 sample=F#4_rr2.wav <region> seq_position=1 key=G4 sample=G4_rr1.wav <region> seq_position=2 key=G4 sample=G4_rr2.wav <region> seq_position=1 lokey=G#4 pitch_keycenter=A4 hikey=A4 sample=A4_rr1.wav <region> seq_position=2 lokey=G#4 pitch_keycenter=A4 hikey=A4 sample=A4_rr2.wav <region> seq_position=1 lokey=A#4 pitch_keycenter=A#4 hikey=B4 sample=Bb4_rr1.wav <region> seq_position=2 lokey=A#4 pitch_keycenter=A#4 hikey=B4 sample=Bb4_rr2.wav <region> seq_position=1 lokey=C5 pitch_keycenter=D5 hikey=D#5 sample=D5_rr1.wav <region> seq_position=2 lokey=C5 pitch_keycenter=D5 hikey=D#5 sample=D5_rr2.wav <region> seq_length=1 lokey=E5 pitch_keycenter=F#5 hikey=F#5 sample=F#5.wav <region> seq_position=1 key=G5 sample=G5_rr1.wav <region> seq_position=2 key=G5 sample=G5_rr2.wav <region> seq_position=1 lokey=G#5 pitch_keycenter=A5 hikey=A5 sample=A5_rr1.wav <region> seq_position=2 lokey=G#5 pitch_keycenter=A5 hikey=A5 sample=A5_rr2.wav <region> seq_position=1 lokey=A#5 pitch_keycenter=A#5 hikey=B5 sample=Bb5_rr1.wav <region> seq_position=2 lokey=A#5 pitch_keycenter=A#5 hikey=B5 sample=Bb5_rr2.wav <region> seq_position=1 key=C6 sample=C6_rr1.wav <region> seq_position=2 key=C6 sample=C6_rr2.wav <region> seq_position=1 key=C#6 sample=C#6_rr1.wav <region> seq_position=2 key=C#6 sample=C#6_rr2.wav <region> seq_position=1 key=D6 sample=D6_rr1.wav <region> seq_position=2 key=D6 sample=D6_rr2.wav <region> seq_length=1 lokey=D#6 pitch_keycenter=D#6 hikey=C7 sample=D#6.wav
上記のテキストデータを新規の.sfzに保存して、音源を読み込ませるとちゃんと鳴ると思います。WAVファイルの階層に注意。
SFZ編集の参考サイト
参考になるサイトさん、日本語はほとんどないが。。
他にも実際に配布されてるsfz音源の中身を観ると、組み方勉強になると思います。
わからんでも、記述の方法見ながら何とかできる。
私もつい1週間前に初めて触った、わりと扱いやすい感じでした。(余計なエフェクトを使わないなら簡単)
まとめ
sfz音源はDAWやPC(OS)間を超えて、簡単に音源の共有が可能。それに軽さと編集のしやすさが最高!
Linuxなら、この形式での管理を推奨するかな(可能な範囲で)
次 ⇒ sfz音源制作・ベロシティレイヤーでノートの強弱を設定する