7時間半の音源を処理する話

こんなこと初めてやったが様々な意味で未知の領域であり悪戦苦闘した。今さっき編集が終わったが書き出しとエンコードにやたら時間がかかるのでその間に記録をつけておく。

まず1ファイルの mp3 で7時間あるので編集前に wav にデコードする必要があるのだが、デコードが失敗する。具体的には、Wavを展開すると波形が2時間分ほどしか認識されない。192kbps の mp3 を展開して 4.6GB ほどなのでファイルサイズ的にはデコードが完了しているように見える。Lame, foobar2000, 果てはいにしえの SCMPX まで引っ張り出して試したが現象が再現するのでデコーダのバグではないようだし、wav を読み込ませる側のソフトを変えても再現する。原因分からず。
こうなると mp3 のままソフトで読み込んで編集することになるのだが、それは相当選択肢が限られてくる。mp3 を読み込めるソフト自体そう多くない上に、mp3 対応のソフトに読み込ませてもファイルサイズ的に無理なのか軒並みエラーを返してくる。だいたい、mp3 を読み込めると言ってもそれは編集前に wav でオートデコードする機能があるというだけで mp3 を直接編集できるわけではない。デコードで詰まれば結局同じことだ。Live などは mp3 を読み込ませるとデコードデータをキャッシュ容量限界まで保持してキャッシュサイズが限界を超えて初めてエラーを返すという実にいやな挙動をする。
これはもうファイル自体を読み込まずファイルサイズか何かでで無理矢理切断するしかないのか、などと考えつつ駄目もとで Cubase にドロップしてみたら、おお、読み込んだよ。Converting だの 5m 10s だのと表示される。Lame で30分近くかかったデコードが5分やそこらで完了するわけはないのだが、一体何に変換しているのだろう。謎の変換作業が終わると波形イメージ作成が開始、1分ほどで表示された。フェーダーの書き込みも wav と同じようにできる。すごいぞ Cubase。これからは長時間ファイルの編集もこいつで決まりだ。それにしても、どういう動作をしているのか気になる。
もっとも、ここでも未確認現象は発現した。まず、2,3回再生をしたあたりでスナップが効かなくなった。スナップの状態に関わらずグリッドにスナップできない。また、サイクルマーカーが打てなくなった。分割書き出しが目的なのでこれは打撃。通常のマーカーで代用したがやり辛かった。小節数が15,000を超えていたので、さすがに多少何かあっても仕方がない。ほぼ通常通り編集ができるだけでも僥倖というものだ。

音の話

少しだけ書いておく。まず長時間の音源レベルを均一にするには通常のピーク検出型ノーマライズでは意味がない。時間経過によってその時々の PA マスターは上下していくためダイナミックレンジは相当な起伏になるし当然ピークは 0dB/FS に達しているため。だからといって平均値検出ノーマライズツールではアルゴリズムにもよるのだがクリップは避けられないので実用は厳しい。結局は DAW に起こして目測で dBメーターを確認しながらダイナミクス系のオートメーションで対応することになる。
やってみて気づいたが、Cubase のフェーダーメーターには dB 値が振られていない。マスターフェーダーにもないし拡大フェーダーにもない。内部32bit 浮動小数点で動作している Cubase 上では音量レヴェルは相対的なものであり内部の音声処理でクリップは起こらず、ただマスターアウトからオーディオ IF での D/A 部でのみデジタクリップが発生する。そのため普段はメーターの振れ幅を厳密に数値で意識することがなかった。一応メーターの色分けで dB 値の数域予測はできるのだが、dB が対数の性質を持つ以上、-6dB より下の確認には精度的な問題を残す。
そこで今回は Solid State LogicVST メーター X-ISM を使って対応した。サイズが小さいのが瑕釁なのだが精度的にはこれ以上ないレヴェルの代物である。"X-ISM → ダイナミクス系 → X-ISM" というインサートチェインでメーターを2台並べてインプットゲインとアウトプットゲインをモニターしながらオートメーションを行い均一な音量を確保する。こういった工夫ができるのは DAW ならではである。やはりただの作曲ツールにとどまらないのがワークステーションの名たる所以だと再確認した。