ReplayGain と、そこで手放すもの
なぜあるアルバムは次のアルバムの倍の音量なのか、その対処が実際に音声に何をするのか、そしてなぜビットパーフェクト再生と同時には手に入らないのか。
何を解決するのか
盤は共通の音量でマスタリングされていません。同じアルバムの 1985 年の CD と 2005 年のリマスターでは 10 デシベル以上違うこともあり、それは快適さと音量つまみに手を伸ばすことの差です。40 年分のライブラリをシャッフルすれば、3 曲に 1 回は音量をいじることになります。
ReplayGain は音声に触らずにこれを直します。解析パスが基準の音量からどれだけ離れているかを測り、その数値をデシベルでファイルのタグに書きます。再生時にプレイヤーがその数値を読んで適用します。再エンコードもされず、何も失われません。補正はタグの中にあり、その下の音声は元のままだからです。
トラックゲインとアルバムゲイン
測定されたファイルはどれも 2 つの数値を持ち、そのどちらを取るかが、聴き心地を実際に変える唯一の設定です。
トラックゲインは曲ごとに独立して揃えます。どの曲も同じ音量で届くので、シャッフルにはこちらです。同時に、意図してダイナミクスを作ったアルバムを平らにもします。大きな最終曲の前の静かな間奏がそれに合わせて持ち上げられ、プロデューサーの意図した効果は消えます。
アルバムゲインは盤全体から割り出した 1 つの値を、その盤の全曲に適用します。アルバム内の相対的な差はマスタリングされたまま残り、アルバムという単位が他のアルバムと並びます。盤を頭から通して聴くなら、これが正しい既定です。
rox はこれを設定として受け取り、選ばれた値を曲を開くたびに適用するので、ファイルに焼き付けるものではなく好みの問題になります。
ピークと、ブーストがクリップする理由
ゲインと並んで、測定パスは曲の中で最も大きなサンプルを記録します。ReplayGain の補正は両方向に効くので、この数値が効いてきます。静かな録音には正のゲインが付き、既にフルスケール近くまで達しているサンプルを掛け算すれば、それを超えて押し出されます。フルスケールの先には行き場が無いので波形は平らになり、ファイルには入っていなかった歪みが聴こえます。
それを防ぐのがピークです。rox はタグが報告するピークに対してブーストを頭打ちにするので、静かな曲はクリップしない範囲までしか上がりません。結果として一部の静かな曲は目標の音量よりわずかに下に着地します。それが正しい引き換えであり、そもそもピーク値を保存している理由です。
誰も測らなかったファイル
ReplayGain はタグを持つファイルにしか効きませんし、20 年かけて集めた本物のライブラリでは、その大部分が持っていません。かつては、プレイヤーが役に立つ前に別のタガーを全体に走らせるということでした。
rox がライブラリに取り込むどの形式でも、標準的な名前のタグがあればそれを読みます。ID3v2 の TXXX フレーム、FLAC の Vorbis comment、MP4 のフリーフォーム atom、そして Opus が持つ R128 ゲインタグは読み込み時に ReplayGain の基準へ換算します。それ以外については EBU R128 のラウドネスパスで自分で測り、結果をライブラリに測定済みとして記録するので、あとで再スキャンしても rox 自身の数値とタガーが書いたものを見分けられます。数値をファイルに置きたいなら、設定でタグエディターと同じ検証付きの書き込み経路を通して書き戻せます。
そのパスは自分で走れます。自動測定をオンにしておくと、インポート後にフォルダー監視が落ち着いた時点でファイルが測られます。既に測定済みのアルバムに 1 曲落とすと盤全体が測り直しに回ります。アルバムゲインはファイルではなく盤についての値だからです。
ほとんどのページが飛ばす部分
ReplayGain はサンプルに数値を掛けます。それは処理です。ロスレスではなく、素通しでもなく、ReplayGain とビットパーフェクト出力を同時に謳うプレイヤーは、起こり得ないことを説明しています。
選び抜いた DAC を持っているなら、ここが効いてきます。ビットパーフェクトとは、コンバーターに届くサンプルがファイルの中のサンプルそのままだということなので、それを拡大縮小するもの、つまり 1 未満の音量調整、イコライザー、ReplayGain は、その主張を終わらせます。ビットをそのままにするラウドネス正規化は存在しません。音量を変えることが、ビットを変えることだからです。
どちらが欲しいかは引っかけ問題ではなく本物の選択です。ビットパーフェクトは、良い機材で 1 枚のアルバムを本気で聴くときに効いてきます。ReplayGain は、ライブラリをシャッフルしていて音量に触りたくない、それ以外のすべての時間に効いてきます。ほとんどの人は ReplayGain を走らせて、そのことは忘れていいはずです。大事なのは、どちらがオンかを知っていることです。
排他出力は、別の話として
ビットパーフェクトには経路から OS を追い出すことも要ります。それが排他出力モードの役目です。rox はデバイスを直接取ります。Linux では ALSA の hw: 名で、dmix も plug もサウンドサーバーも挟まず。Windows では WASAPI exclusive、macOS では CoreAudio の hog モード。デバイスが許すならソースのレートに従い、頼んだ値ではなくハードウェアが実際に受けた値を報告します。
引き換えは、どこでも排他が意味するものです。rox がデバイスを掴んでいるあいだ、マシンの他の何もそこから鳴りません。デバイスを取れなければ、rox は黙り込んで理由を推測させるのではなく、状態を見せたまま共有モードに落ちます。
扱っていないこと
- iTunes の
iTunNORMは対象外です。他に書くものが無く、そのチャンネルごとの値はデシベルのゲインでもありません。 - 排他モードでソースのレートに追従すると、サンプルレートの違う 2 曲のあいだに聴こえる無音が入ります。ストリームを開き直すからです。同じレートの中でのギャップレスには影響しません。
ビットパーフェクトと ReplayGain のどちらが今そうなっているかを教え、タガーが手を付けなかったファイルを測ってくれるプレイヤーは、そう多くありません。ライブラリと DAC のあいだに立つものにその種の正直さを求めるなら、rox はその一つです。
自分のライブラリに向ける
測定パスはゲインの無いものすべてに対して裏で走り、設定ウィンドウを閉じても走り続けます。ライブラリの規模で他に何が効いてくるか も参考に。