#002 ループオーディオ その2
こんにちは。ノイジークロークの金井です。
今月も地道に地味な内容である、ループオーディオについて触れていきましょう。ループオーディオ その2です。まだまだループは続きます。
前回の振り返り
前回の記事ではループ情報ありの波形データについて説明を行ってきました。その中のクリックノイズの項目で、ノイズを防ぐために波形編集ソフトでループ処理を行っていくと述べましたが、今回の記事ではそのループ処理を軸にして実際のループ処理まで話を進めていきたいと思います。
まず前回までの内容で、クリックノイズを防ぐために、主に下の2つの対応を行うことが多いということが分かりました。
1.ゼロクロッシングポイントにループスタート/エンドを設定する
2.波形処理ソフトでループ処理機能を使う
これから、この2項目について、具体的にはどのようにしてノイズを防いでいるのかを確認していきます。
ゼロクロッシングポイントでのループ
ゼロクロッシングポイント(Zero crossing point)は普段聞き慣れない言葉かと思いますが、この言葉は波形がゼロ軸を交差するポイントを意味します。
中央のゼロを交差(Crossing)するゼロクロッシングポイント
つまりそのポイントでは音量が小さくなるため、このポイントでループすればクリックノイズを限りなく抑えることができるというコンセプトです。これはシンプルにノイズを防ぐことができる方法ですが問題もあって、チャンネル数が増えるとL chではゼロクロッシングポイントを取れるが、R chでは取れないということが起きます。
そこまで詳しくないのですが、上記のような場合はフェードを使ってループポイントをゼロにすると紹介されていることがあります。ただそれだとループ時に音量変化によるうなりが発生しそうな気が。
以上が簡単ながらゼロクロッシングポイントでのループについての説明となります。話は逸れますが、個人的にはイントロ付きループではゼロクロッシングポイントでループ処理を行う必要はないのではと思ったりします。
そもそも急な音量変化によってクリックノイズが発生するわけですが、それを踏まえるとループポイントがどんなボリュームだとしても、急な音量変化がなければ(波形が綺麗に繋がってくれれば)クリックノイズが入ることなくループされるはずです。
そして急な音量変化が発生する場所ってどこかと考えると、無音状態を介する再生状態が変化する場所だと考えられます。具体的には無音状態から音を再生する場合と、音を停止して無音状態になる場合の2つなのではないかと思います。
まず音の再生時について考えると、これはループ波形云々ではなくワンショット(ループしない波形)であってもクリックノイズが発生する可能性があります。
次に音の停止時について考えると、ワンショットならば無音直前のサンプルの値が大きければノイズが発生しますし、ループ再生時はそもそも停止するかわからないため、サンプルの値が小さい位置で運良く停止できないとクリックノイズが発生してしまいます。上記を踏まえると、だからこそループ波形の停止時には、必ずフェードアウト処理を行うよう実装を行う必要があります。
もちろん波形をまるまるループをする場合は、ループポイントがオーディオの先頭も兼ねるため、ゼロクロッシングポイントを取らないと再生時にノイズが発生する可能性が出てきますが、イントロ付きループの場合はループポイントはオーディオの先頭ではありません。
つまりループポイントで音量に急激な変化がない限り、クリックノイズは発生する可能性は低いのではないかなと考えています。(ゼロクロッシングポイントの意義は他にもあるぞという場合、教えていただけますとありがたいです…。)
これでゼロクロッシングポイントについては終わりにします。次は「2.波形処理ソフトでループ処理機能を使う」について触れていきましょう。
波形編集ソフトのループ処理機能
波形編集ソフトではループ処理を行うための機能が存在することがあります。メジャーなのは Sound Forge かと思いますが、それ以外にもWaveLab や Acoustica にも機能が存在していることを確認しています。ここではそれらのソフトに付属しているループ処理機能について確認していきたいと思います。
Sound Forge
ここでは Sound Forge Pro 11 を使用していますが、最新の MAGIX Sound Forge Pro 14 でも、全く同様の機能であることを確認しております。
まず Sound Forge です。ゲームオーディオ界隈では広く使われている波形編集ソフトなのではないかと思います。Sound Forge では任意の時間を選択し、サスティンループマーカーを挿入することで、クロスフェードループ機能を使うことができます。
この機能を使い、ループスタート前の波形をループエンド前にコピーし、既存の波形とクロスフェードさせることで、クリックノイズの発生しない波形を作ることが出来ます。
個人的な不満は、このクロスフェードカーブがリニアであるところです。リニアカーブだとクロスフェードの中間地点で音量が-3.0dBほど下がってしまいます。そのため、ループ直前に音量が明らかに下がるポイントが生まれます。これは違和感がすごいです…。
処理を行った後にボリュームエンベロープで補償する方法もありますが、正確性に欠ける悪手だと思うのであまりおすすめしません。
WaveLab
次にWaveLabです。WaveLabにはループ調整という機能があります。この機能ではループ前後の類似度を分析し、サンプル値が近いポイントを自動検出することができます。これはループ前後のサンプル単位で繋がりを良くするための補助機能なのだと思います。
他にクロスフェード機能もあり、Sound Forgeと同じくループスタート前の波形をループエンド直前にコピーすることでクリックノイズを防ぐ事が出来ます。またクロスフェードカーブを調整できるため、Sound Forgeの項で述べたループ前に音量が下がる現象を防ぐこともできます。
Acoustica
最後に Acon Digital の Acoustica です。Acousticaではループしたい範囲を選び、Add Sampler Loopを実行するとループ処理を行えます。WaveLab 同様に拡大された波形を確認することができますが、ループ前後を同時に表示できないためあまり視認性は良くないです。こちらもクロスフェード機能が存在し、そのクロスフェードカーブも amplitude と power との間で調整を行うことができます。
ただこのソフトにはグリッドやスナップ機能が存在しないため、マーカーを使わずにループ処理をするには困難が伴うところです。というかスナップなしじゃループ処理は無理です。できるといえばできますが、ループ処理を行う場合は限りなくおすすめしません。多分ソフトの立ち位置的にはIzotope RXのあたりだと思うので、そもそもの相性が良くなかったのかもしれません。
波形編集ソフトでのループ処理のまとめ
ざっと見てきましたが、以上が波形編集ソフトのループ処理機能となります。どのソフトもループ前後の繋がりをなだらかにするために、サンプル単位で波形をずらしたり、クロスフェード処理を行っているということがわかりました。
ただ前者の方法では、波形をサンプル単位でずらすとループ周期が変わってしまいますし、周期を固定すると奇跡的にサンプルが近いものがあることを祈るしかなくなるので、あまりいい方法ではないんじゃないかなと思います。僕個人の話で言えばこちらの方法でループ処理したことは一度も有りません。しかし後者の方法ならば、ループ前の波形をクロスフェードするわけなのでクリックノイズは防げますし、ループ周期も変えることなく処理を行うことができます。
このような理由から、ループ処理ではクロスフェードを使う方法が多く取られています。そしてこのクロスフェード自体は波形編集ソフトを使わなくとも、DAWでも行うことが出来ます。
そこでここからは僕が普段行っている、DAWでのループ処理の方法について説明していきたいと思います。
DAWでのループ処理(イントロ付きループ)
ここでは普段使用している Cockos Reaper で説明を行いますが、他のDAWでも問題なく行えるかと思います。
ループ処理するオーディオのサンプル
上記のサンプルはイントロ1小節 - ループ部4小節の構成となっています。この構成の曲のループ部分を2回繰り返したものをDAWで読み込みます。
ループ部1小節目はイントロの残響が残っており、このままループすると残響成分に違和感が生じるため2小節目冒頭にループするようにします。ここでは分かりやすくループ部2小節目にLoopStartマーカーを、5小節目にLoopEndマーカーを打ち込みます。
ループ部分の5小節目以降を削除し、前半の波形を複製し同じで波形が2回繰り返されるようにします。
次に複製元の波形を1拍分短くし、複製した波形を前に1拍分長くします。じれでループ前後で全く同じ波形が繋がることとなるので、ループ時にクリックノイズが入る可能性がなくなります。
次に2つのデータの繋ぎ目をクロスフェードし、トランジェント部分などを避け、音質に極力影響を与えない部分でループするようにクロスフェード位置を調整します。
最後にループ情報を埋め込んでループ波形の完成です。Reaperの場合はリージョンを埋め込むと、Sound Forge の Sustain Loop と同じような扱いとなるので、そのようにレンダリングしています。
出力データを Sound Forge で読み込んでみたところ
以上が DAW でのループ処理の方法です。簡単かつノイズが発生するリスクが低い、またループ前後の質感調整に関してもトライアンドエラーをしやすいのでオススメです。
ただ前回の記事で触れたとおり、ループ情報はソフトによってどのように情報が埋め込まれるかが違うので、お使いのDAWと波形編集ソフト or ミドルウェアなどで、マーカーやリージョンがどのように扱われるのかの検証は必須です。
DAWでのループ処理(全体ループ)
ついでなので全体ループをする場合についても説明を行います。全体ループとは、ループ情報を読み込めないゲームエンジンでWavをまるまるループする、その方法のことを指します。
まずループしたい波形をだいたい真ん中で分割します。このとき、ミドルウェアでスタート時のフェードイン処理を行わない場合は、ゼロクロッシングポイントでカットするようにします。
次に波形の前後を入れ替え、データの繋ぎ目をクロスフェードするようにして完成です。ループ前後は1本のWAVが続いているだけなのでクリックノイズが入る可能性はありません。
余談ですが、Reaperではスクリプトを使ってこの処理を一括で行うことが出来ます。またこの動作に限りなく近いスクリプトも無償で配布されています。
Reaperスクリプトでの一括ループ処理
以上でDAWでのループ処理について説明を終えます。最後に波形編集ソフトではなくDAWを使う利点についてまとめていきます。
DAWでループ処理を行う利点
最後にDAWでのループ処理について説明しましたが、波形編集ソフトではなくDAWを使う利点は主に下の2つが挙げられます。
1.クロスフェードポイントを調整しやすい
2.ループ処理とマーカー設定を保存しておける
まず1つ目はクロスフェードポイントを手軽に調整することができるというところです。波形編集ソフトだと、クロスフェードはループ処理のウィンドウを開かないと手軽には行えないのですが、 DAW ならクロスフェードポイントを手軽に調整でき、またフェードカーブも自由に調整することができます。
2つ目はループ処理やマーカー設定を保存することができるところです。ループ処理したプロジェクトを保存しておくことで、オリジナルのオーディオデータをレンダリングし直した場合に、手戻り少なくループ処理とループ情報埋め込みをやり直すことができます。また、ループ処理が上手く行かなかった場合にも波形編集ソフトではもう一度処理をはじめからやり直すこととなりますが、DAWなら処理の過程が残っているため手軽に修正を行うことが出来ます。
ゲーム開発でのBGM制作では、ゲーム中でBGMを確認するためにラフ版をまずループ処理し、完パケ版が届いたら再度ループ処理して実装、ということがよくあるかと思います。そのような場合でも、このようにプロジェクトを保存しておくことで作業の手戻りを少なく対応することができるのではないかなと思います。
まとめ
今回の記事では主に下の3つのポイントについてお話ししました。
1.全体ループの際にはゼロクロッシングポイントでループを取ろう
2.ループ処理はクロスフェードを使った方法で行われることが多い
3.DAWでループ処理の方が楽なのでおすすめ
これでループ情報ありの波形作成の説明は終わりとなります。
次回の記事では、全体ループ波形とはまた別の、ループ情報がない場合のループ波形について見ていきます。それではまた来月。
#ノイズなアカデミー #音楽 #ゲーム #ゲーム音楽 #ゲーム業界 #ゲームBGM #効果音 #サウンドデザイン #DAW #DTM #Reaper
この記事が気に入ったらサポートをしてみませんか?