サンプルループ作成の考え方と手法

こういうテーマをもう書くことないだろうと思ってた。
初代以来のNord Electro 5Dに買い換えまして、これにNord Sample Editorというソフトが付属していて、今後もしかしたら自作音色をメモリに置ける電子楽器が増えるかもと思ったので、この機会にサンプルループに関する初歩的な考え方と手法を記しておく。

Nord Sample Editor
Nord Sample Editor

減衰音と持続音

音の区別にはいろいろあるが、ここでは減衰音持続音に着目する。

サンプルループの考え方
サンプルループの考え方

減衰音はピアノやベルのように時間経過に伴って音量が減衰する音で、音量が0になった箇所が音の終点。
その終点がオーディオファイルの末尾になってさえいれば、そのままサンプラーにデータを突っ込んで鳴らしても問題ない。
なお、減衰にかかる時間が極端に長い場合や、1音色で大量のファイルを使う(マルチサンプル)場合はメモリを大量に消費してしまうので、ループ設定を行ったほうがよいこともある。というかメモリが大容量化したのは比較的最近の話で、サンプリング音(PCM)搭載の電子機器登場初期は減衰音にもふつうにサンプルループが施されていた。。

一方、持続音はオルガンやストリングスのように(表現上の音量操作は除き)時間経過に伴って音量が減衰しない音、もしくは多少の減衰はあっても、ある時間からは一定音量で持続する音。
鳴らす音符の長さに従って音を意識的に止めることで始めて音が鳴り止むと解釈しておくといい。←厳密にいうとそうではないが。
オーディオファイルを使ってこれを実現するためには、極端に長いオーディオファイルを用意するかデータ内にループする箇所(ループポイント)を指定する。現実解は後者。

きれいなループと汚いループ

Nordのサンプルエディターは使いやすいと言い難いが、よく出来てるゥ〜と思ったのは、ループを設定した際の音の聞こえ方がある程度可視化されている点。

ループ指定のよい例
ループ指定のよい例
ループ指定のよくない例
ループ指定のよくない例

以下、波形と音の”クビレ”に注目してループのキレイ/キタナイを記すが、このクビレはクロスフェードというオマケ処理によって発生するもの。
※クロスフェードについては次項以降に記す。

上の各ウィンドウの左側の細い線がそれで、よくない例のほうは周期的にクビレが発生していて、実際ウワンウワン鳴ってしまう。これはこれで面白い使い方をしてもよいのだけど、原則として望ましくない。
よい例のほうはほとんどクビレがなく、言わば寸胴。ループがバレないってことが必ずしもないにしても、せめてこうでないといかん。
ウィンドウの右側を見ると、波形のパターンの合致度が高ければクビレの生じにくいループサウンドになるってのがわかると思う。
前者はループが汚いとか、ループがバレバレとか言われる。後者はループがきれいとか、見事とか言われる。

噛み合わせ位置とクロスフェード

話を単純化させるため、超シンプルな波形であるモノラルのサイン波でループを取ることを考える。

サンプルエディターでループ設定の画面に入ると、ループスタートループエンド(両方まとめてループポイントという)が自動的に設定される(左図)。
再生時には、ループエンドに差し掛かってループスタートに戻って同じ箇所を再生してまたループエンドに差し掛かって…それが繰り返される。
再生機器によってはループエンドに差し掛かった瞬間に逆再生になる”オルタナティブ”とか”ピンポン”とかいうスタイルもある。
要するに音楽再生ソフトや動画再生ソフトでのループ再生と似たようなもの。異なるのは、これがループ区間が超短くても確実に完璧に再生されるということ。

スクショのような状態だと、ループエンドの波形とループスタートの波形が噛み合っていないため、ループ箇所では針が飛んだようなボツッという音(グリッチ)が鳴ってしまう。
なので、ループポイントを狭めたり広げたりしながら、きれいに噛み合う位置を探してゆく。

ループを設定した初期状態
ループを設定した初期状態
きれいに噛み合う位置を見つけた
きれいに噛み合う位置を見つけた
ショートループの設定
ショートループの設定

きれいに噛み合う位置を見つけると、ウィンドウ右側に示されるようにさっぱりした表示になる。

サイン波のような超シンプルな波形だと、ぶっちゃけ、極端にループ間を狭めて波形1周期で収めることもできる。
※ただし波形一周期でループを組むと、再生機器自身のサンプリングレートと波形データのサンプリングレートおよび波形データのルートノート(そのオーディオデータを鍵盤で鳴らした際に音程を決めるもの;ルートノートを決めてもその値を読みこんでくれないソフトサンプラーもあるので注意)さらに波形データのピッチとの兼ね合いで、再生時のピッチが微妙にズレることがあるので、あまりお勧めしない。。

このサンプリングエディターは、画面左下に見えるようにLong LoopとShort Loopの2種類のモードを持っていて、基本のLong Loopでは100msを下回るループ長の設定ができなくなっているようなので、超短いループを設定したいならShort Loopを選ぶ。

Short Loopを選ぶと、このように1周期分の美しいループが設定される。
よく見るとわかるが、クロスフェードが自動で設定されていて、たぶん(上の注記に示したような)ピッチのズレが起きにくくなっている。

クロスフェードというのはこの場合、ループエンドに差し掛かる直前でループスタートより少し前のところから混ぜ気味で再生する仕組み。
このクロスフェードはのちのちの話でじわじわ効いてくるので、頭に留めておきたい。

ループさせやすい音およびループポイントの見つけ方

最初の例「きれいなループと汚いループ」で取り上げたのはバスーン(ファゴット)のソロ音色で、音を伸ばしている間は音に変化が極めて少なく、ループを組みやすい音の一例。
これに比べてストリングスやブラスなど、同じ楽器でも複数編成で鳴らしたものは、音を伸ばしている間の変化こそ少ないものの、元の演奏者一人一人の微妙なピッチの違いに起因する複雑なうねりが発生するため、豊かな音ではあるけれど少々ループを組みにくい。
しんどいのは、音を伸ばしている間に音が変化するシンセサイザーやシタールなど。
倍音が複雑なチュブラーベルやドラ(ゴング、タムタム)、あるいはシンプルな音色であっても和音で弾かれた音などは結構厄介で、倍音や構成音の各周期の最小公倍数にあたる周期で取ればクオリティを確保できるのだが、どうしても長いループ長になってしまうため、一般には音を犠牲にしてでもメモリー節約を優先して短めのループを組む。

基本的な段取りとしては、やはりまずざっくりとループポイントを設定して徐々にループポイントの間隔を狭めてゆき、ちょうどいいループポイントを見つけること。
ループが取りにくい場合は、その音の’らしさ’が表れるより後ろにループポイントを設定しないと、シタールだかギターだかわからない音になってしまう。

先ほどのバスーンのソロ音色のような場合でも、元音にビブラートがかかっていて、ビブラートを含めたループポイントを設定したいときはあるだろう。
この場合、考えなければならないのは3点。

  1. ビブラートを含めたループにしなくても再生機器側でビブラート表現が可能であるならばわざわざビブラート箇所にループを組む必要がない。
  2. ループ可能なビブラート箇所を目視で見つけるのはかなり高難度で、これを踏まえて波形データの表示に多少の工夫をあらかじめ施してある波形編集ソフトが便利。
  3. マルチサンプリング方式を取らないのであればビブラート周期は再生時の音程次第で大きく変動してしまうので、場合によっては楽曲内のフレーズまで大きくアレンジし直さなくてはならない。

いっときのゲーム音楽の業界で、こうした作業を知らない作曲家に仕事を依頼すると軒並みループを取りにくい音ばかりで曲を組み立ててきたり、1音色の使用する音程の幅がやたら広かったりした。そのほうが曲にゴージャス感が出るからだ。
2ミックスで再生するならばよいのだが、組み込み(内蔵音色)での再生では工程が非常にしんどくなってしまう。
しかしながら、こうした作業を知っている作家が作曲すると今度は守りに入ってしまって、2ミックスのデモの時点でチープになってしまう。痛し痒し。双方に理解が必要といったところだ。

ループ長の短め/長めは元の音程の高低にもよるが2秒程度がだいたい境目で、2秒のループが組めるようになればそれより短いループを組むのもそんなに苦労しなくなるかと思う。
メモリの小さなゲームへの組み込み仕事の場合だと、力ずくで0.4秒程度まで縮めることもある。もちろん、もっと短い場合もあるが、ここからはマニアックな世界なので書かない。

クロスフェードを使うサンプルループ

上記2つ目の例のような変化のある音であっても、周期的な変化のある音であればその周期に合わせてループポイントを設定すればよいが、多くのナマ音は周期的な変化がない。したがって周期を自分で作ってやる必要がある。
周期は長いほどきれいなループに聞こえる傾向があるが、メモリの限界を考慮するならなるべく短いループを設定して、なおかつクビレが起きにくくしてやるのがよい。

ループを設定したときにループスタートとループエンドの位置で音色が異なる場合、クロスフェードを使うことでそののギャップを鈍化することができる。
ところが、クロスフェードを使うことでかえってクビレが起きやすくなることがあるので(最初の例を参照)、繰り返し書くが、大まかに具合のいいループポイントを設定してから、クビレの起きにくい箇所に少しずつループポイントをずらしてゆくとよい。

画像のほうがわかりやすいかもしれない。
クロスフェードをかけてない場合だとツギハギのポイントが丸見えだが、クロスフェードをかけていればループポイントがぼやけるのでマシに聞こえるということ。

クロスフェードをかけない場合
クロスフェードをかけない場合
クロスフェードをかけた場合
クロスフェードをかけた場合

メモリ的にも聞こえ的にも都合のいいループポイントを見つけるのは相当しんどく、OKかどうかを判断するのは自分の耳次第。
マルチサンプルの場合、几帳面な人は各サンプルでループ長を周波数比に合わせたくなるところだが、これを行うと和音で奏でた際にかえって人工的に聞こえてしまうので、自然に聞こえるようバラけさせたほうがよい。
音量は、直線でなく指数カーブの世界。なのでウィンドウ下部中央に示されるLinearでのクロスフェードでなく、Log(またはExponential)でのクロスフェードのほうが好ましい。
Linearの設定しかない波形編集ソフト、たとえば古いSound Forgeの場合、いったんLinearのクロスフェードを反映(破壊編集)したのちに、クビれをなだらかにするボリューム操作を書き込んでやるとだいぶマシになる。

ループスタートより前部分のデータへの配慮

と、ここまではループスタートとループエンドに関して書いたが、1個のオーディオファイルというのは当然ループスタートより前の言わば助走部分もファイルサイズに含まれる。

クロスフェードは、ループエンド部分ではループスタートより前部分の音がフェードインして、そのあとループスタートに舞い戻ってくる仕組みなので、原則としてループスタートより前部分をカットするのはよろしくない。
ことに、おそらく良かれと非破壊編集の仕組みになっていると思われるNordのサンプルエディタはなおさら。ループ箇所のクオリティを維持するためには参照先を無くす処理はご法度、つまり原則、ループスタートより前部分をカットするべきでない。

ループスタート前のデータの切り詰め(イメージ)
ループスタート前のデータの切り詰め(イメージ)

さてオーソドックスな破壊編集の場合に行うことのできるデータ軽量化の話だが、要するにいったんループスタートより前の部分も2箇所に切って、ここもクロスフェードでつなげてやればそのぶん短縮されてデータを軽量化できる。
僕の身内では通称”外科的手法”と呼んでいる。

ループエンド以降についても触れておくと、再生機器によっては自動的にカットしてしまうものもあれば、そのまま保持されてしまうものもあるので、その仕様に合わせてデータを持たせておくことになる。
再生用にコンバートが必要な機器の場合、コンバート後のデータではループエンド以降が冗長なのでカットされることもある。処理時に確認が必要だ。
ひとまず、数サンプルか数十サンプルくらいループエンド以降もデータを持たせておくのが安全。

それでもデータがメモリに収まりきらない場合には、ループ箇所のみ残して前後をトランケート(切り出し;トリム)して、再生機器側のAmp EGでアタックを削るなどする。
タイムコンプを使ったりサンプリングレートを下げたり、合わせ技も用いてメモリ効率を上げる。


思いつくまま書き連ねてしまったので、いずれまた加筆などしていく予定。
ここで記したのは、安価で導入できるソフトウェアでエディットする上での話。
専門的な業者には、たとえば再生ピッチがズレにくくなるサンプリング周波数を設定しつつループ長を自動設定するような編集ソフトが内製で備えられているだろうと思うので、社内でのHOWTOに準拠いただきたい。