オーディオ基礎
音声解析やマスタリングのページを読む前に押さえておきたい基礎用語を整理します。いずれも、音がどのようにデジタル表現され、計測され、クリップし、遅延し、再生されるかという同じ信号経路の話題です。
サンプルレート
サンプルレートは、1 秒あたりに保存されるサンプル数です。44.1 kHz と 48 kHz が一般的です。サンプルレートが高いほど高い周波数を表現できますが、CPU とメモリ使用量も増えます。
ブラウザでの解析やマスタリングでは、まずファイル本来のサンプルレートのまま扱うのが自然です。ツール側が変換を要求しない限り、不要なリサンプリングは避けます。
ビット深度
ビット深度はサンプル値の量子化分解能です。ビットを増やしても上限は上がりません。フルスケールはどの語長でも 0 dBFS のままで、増えるのは下側です。量子化ノイズフロアが 1 ビットあたりおよそ 6 dB 下がり、その結果として静かな部分のディテールが埋もれずに残り、フルスケールから十分離れたレベルで余裕をもって作業できます。コンシューマー向けの最終ファイルは 16-bit や圧縮形式が多く、制作中は 24-bit や浮動小数点を使うのが一般的です。
Web Audio や libsonare の処理内部では、サンプルは浮動小数点として扱われます。浮動小数点はフォーマット自体がフルスケールの上側にも余地を持つ唯一のケースで、途中の処理段で 1.0 を超えてもクリップしません。ただし固定小数点へ書き出す最終段では、やはり True Peak(トゥルーピーク)のセーフティが必要になります。True Peak は、再生や非可逆エンコードで波形が復元されたときにサンプルとサンプルの「あいだ」に現れるピークまで含めた値で、素のサンプルピークより高くなることがあります。
モノラルとステレオ
モノラルは 1 チャンネル、ステレオは L/R の 2 チャンネルです。ステレオは音像の広がりや定位を表現できる一方で、モノラル再生時の互換性問題(モノラル互換性)が発生し得ます。
ステレオ信号をモノラルに合算したとき、サイド成分が弱くなったり打ち消し合ったりすることがあります。マスタリングデモが相関係数(コリレーション。L/R がどれだけ同位相かを -1〜+1 で表した値)やステレオイメージを表示しているのはこのためです。
振幅と dB
振幅はある瞬間のサンプル値そのものです。dB はレベルを対数で表す方法で、人間のラウドネス知覚が線形より対数に近いため、オーディオでは dB を使います。
デジタルのサンプル値は通常 -1.0 から 1.0 の範囲に正規化されています。このデジタル上限を基準にレベルを測ったものが dBFS(フルスケール基準のデシベル)で、0 dBFS がそのフォーマットで表現できる最大レベルです。実際の信号はすべてそれより下、つまり負の値になります。
クリッピングとヘッドルーム
クリッピングは、信号がシステムの表現できるレベルを超えたときに発生します。デジタルクリッピングは波形のピークが平らに切られるため、不快な歪みとして聞こえます。
ヘッドルームは、現在のピークレベルと上限との余裕です。マスタリングでは、最終リミッティングに入る前のヘッドルームと、最終書き出し後の True Peak セーフティの両方を確保する必要があります。
レイテンシ
レイテンシは処理による遅延です。ルックアヘッドリミッティングやスペクトルリペアのような処理は、判断のために少し先のサンプルを参照します。オフラインレンダリングではある程度のレイテンシは許容できますが、ライブモニタリングやインタラクティブツールでは低く抑える必要があります。
実装メモ
ブラウザデモは Web Audio でファイルをデコードし、浮動小数点バッファを libsonare の WASM 側に渡して処理し、最終的にステレオ 16-bit PCM の WAV として書き出します。マスタリングワーカーが重いレンダリングを UI スレッドから分離しています。ソース・レンダリング結果・レポート・設定の object URL は、入れ替え時に確実に revoke してブラウザ側のメモリリークを防いでいます。