Mid/Side エンコード — ステレオ L/R ↔ M/S 双方向変換
ステレオ音声を Mid (中央成分 = (L+R)/2) と Side (ステレオ差分 = (L-R)/2) の M/S 表現に変換、あるいは M/S 表現を L/R ステレオに戻します。M/S は DAW での mid-side EQ / mid-side コンプレッション (中央のボーカルだけ EQ する、Side だけリミッターをかけて広がりを抑える等) で使われる古典的な編集技法。本ツールは Mode 切替で L/R → M/S と M/S → L/R を選択でき、出力は WAV (16-bit PCM)。複数ファイル一括処理 + per-file ダウンロード + ZIP all 対応。可逆変換 (M+S = L, M-S = R) なので、外部 DAW で M 側だけ EQ → 本ツールで L/R に戻すワークフローが実現できます。音声はブラウザ内で完結。
使い方
ステレオ音声ファイル (MP3 / WAV 等) を 1 つ以上ドロップまたは選択。 Mode を選ぶ: L/R → M/S (DAW でミドル EQ するための前処理) / M/S → L/R (M/S 編集後の最終合成)。 ファイル追加で自動エンコード、結果は WAV (16-bit PCM)。 個別ダウンロード or 全件 ZIP。元ファイルは変更されません。
詳細解説
M/S 処理に持ち込む素材は制作の核心にある音声
ミッドサイド処理をかける対象は、ボーカルとアンビエンスのバランスを調整したいミックスや、マスタリングでステレオイメージを整えたい楽曲など、制作の最終段階に近い素材です。M = (L+R)/2 はボーカル・キック・ベースといった中央成分、S = (L-R)/2 は広がり感やリバーブ成分に相当します。これらは楽曲の感情的な核心に当たる部分です。
未リリース楽曲に M/S 処理をかけるためだけに外部サービスへアップロードする場合、楽曲のマスターバスに相当するファイルがサーバーへ届きます。M/S 変換は可逆なので「変換後のファイルを返してもらう」だけのように感じますが、元のステレオ音声が一度外部に出るという事実は変わりません。
音声処理サービスへの M/S ファイル送信と著作権・機密の問題
音楽制作の文脈では、クライアントワークで未公開の楽曲を処理する場面が頻繁にあります。M/S エンコードというニッチな操作を提供する外部ツールへのアップロードは、守秘義務が生きているまま音源を第三者のサーバーへ送ることを意味します。多くのサービスでは利用規約上、コンテンツへの使用許諾が幅広く設定されており、それが実際に行使されるかどうかにかかわらず、権利関係が不確定な段階では避けておくべき選択です。
M/S 変換前後の素材は DAW の中間ファイルとして扱われるべきもので、最終的に L/R に戻した完成品が外部に出るまでは、制作者のローカル環境に留まっていることが理想的です。
Web Audio API でブラウザ内の行列演算だけで変換する
M/S エンコードの数学的な中身は単純です: M = (L+R)/2、S = (L-R)/2。このツールは音声を Web Audio API の decodeAudioData でデコードし、左右のサンプル列を取り出して行列演算で M/S に変換 (または M/S → L/R に逆変換) し、結果を 16-bit PCM WAV として書き出します。変換式の適用からバイナリの書き出しまで、ブラウザのメモリ内で完結します。
DevTools の Network タブを開いた状態でファイルをドロップすると、ページロード後の追加リクエストがゼロであることを確認できます。実装コードは GitHub で公開されており、M/S 変換行列の実装を含めて確認できます。FabFilter Pro-Q や iZotope Ozone などの M/S プラグインと互換性のある (L+R)/2, (L-R)/2 の定義を採用しています。
M/S ワークフローをブラウザ内で完結させる方法
実際の M/S 編集フローは「L/R → M/S 変換 → 各チャンネルを個別に処理 → M/S → L/R 変換」という往復です。このツールは前後の変換ステップを担い、中間の処理は DAW や他のブラウザツール (audio-channel-split でチャンネルを分けた後にそれぞれ処理する、編集が終わったら audio-channel-merge で再合成する、等) で行う、というハイブリッドが可能です。
ただし M/S 変換後のファイルは通常の再生には向かない中間表現です。L = Mid (中央成分)、R = Side (差分成分) として再生されるため、片チャンネルがほぼ無音になったり位相が不安定に聞こえます。M/S で書き出したファイルを SNS や配信に使わないよう、ファイル名に -ms を付けるなど管理上の区別をつけておくことをお勧めします。
Mid/Side 行列演算の中身と正規化の議論
M/S 変換は線形代数で書くと [M, S]ᵀ = [[0.5, 0.5], [0.5, -0.5]] · [L, R]ᵀ という単純な 2×2 行列乗算です。逆変換は [L, R]ᵀ = [[1, 1], [1, -1]] · [M, S]ᵀ で、M + S = L、M - S = R という関係が成立します。本ツールは (L+R)/2 と (L-R)/2 の定義を採用していますが、業界では正規化の方法に複数の流派があり、(a) M = (L+R)/2, S = (L-R)/2 の 平均型 (本ツール採用)、(b) M = (L+R)/√2, S = (L-R)/√2 の エネルギー保存型 (RMS が変換前後で同じになる)、(c) M = L+R, S = L-R の 非正規化型 (ファクター 2 が含まれるためクリッピングしやすい) があります。
FabFilter Pro-Q、iZotope Ozone、Waves、Logic Pro Mid/Side EQ など主要 DAW プラグインは概ね平均型 (L+R)/2 を採用しているため、本ツールの出力は DAW にそのまま読み込んで処理を施し、再度 L/R に戻すフローが可能です。32-bit float 内部処理 → 16-bit PCM 量子化での丸め誤差はあるものの、M + S - L ≈ 10⁻⁵ レベルの可逆性が保たれます。完全可逆 (bit-exact) を要求するなら 32-bit float WAV (現状本ツールは対応せず) か FLAC 24-bit が必要ですが、聴感上は 16-bit でも往復後に違いを聞き分けるのはほぼ不可能です。Side が無音のステレオ素材 (完全な mono を stereo として録音した素材) は、変換後の Side チャンネルが完全に 0 になることで「これは中央成分しか持たない素材」だとひと目で判別できます。
Mid/Side 編集の実用パターン — マスタリング / 配信前チェック
M/S 編集の典型は (1) Mid 側だけリミッターをかけてボーカルやキックを抑える、(2) Side 側だけハイパスフィルタを入れて低域の広がりを抑える (100 Hz 以下の低音は mono 寄りにする「bass mono compatibility」の確保)、(3) Side 側だけイコライザで 2〜5 kHz を持ち上げる (空気感の強調)、(4) Side 側のコンプレッションでステレオ広がりの脈動を制御する、などです。マスタリング段階での Side コンプレッションは、過剰だと音像が中央に張り付いて「mono っぽく」聞こえるので、audio-stereo-width で位相相関と幅 (%) を測定しながら調整するのが定石です。
ストリーミング配信 (Spotify / Apple Music) や FM ラジオは mono サミング (L + R) で再生される環境がまだ多く、Side が大きすぎるマスターは mono 再生でレベルが落ちる現象が起きます。本ツールで L/R → M/S を作って Side のレベルを audio-volume で -3 dB 程度抑えてから L/R に戻すと、mono 互換性を改善できます。逆に ASMR や立体音響系では Side が表現の核なので、Side を弱めると意図が損なわれます。落とし穴として、(a) 位相が反転した素材 (R = -L) は変換後に M = 0, S = L になり「中央が完全に消えた」状態になる、(b) 16-bit 量子化のため、Side が極端に小さい mono に近い素材では Side チャンネルにノイズフロアが目立つ、ことを覚えておくと安全です。
よくある質問
- M/S って何の役に立つ?
- ミックスダウン / マスタリングで Mid (中央成分) と Side (差分) を独立に処理するための表現。例: Vocal (中央) だけ EQ ブースト → Side を抑えて広がりを締める → 再合成。L/R を直接いじるとセンター成分が左右に分散してしまい難しい。M/S なら中央だけ / サイドだけを安全に操作できます。
- M/S エンコード後のファイルは普通に再生できる?
- 技術的には再生できますが、L = Mid、R = Side として再生されるので、片チャンネルがほぼ無音だったり位相が不安定だったりして「変な音」に聞こえます。M/S は編集中間表現であり、最終的には M/S → L/R で戻すのが標準的なワークフローです。
- 他の M/S プラグインと互換性はある?
- M = (L+R)/2, S = (L-R)/2 という最も一般的な定義を使用しています。多くの DAW プラグイン (FabFilter Pro-Q、iZotope Ozone 等) と互換。/2 を掛けない (sum-difference) 流儀もありますがゲイン 6dB 差が出るので注意。
- 出力フォーマットは WAV だけ?
- はい。M/S エンコードは編集の中間ステップなので、可逆圧縮の WAV (16-bit PCM) で書き出すのが安全。MP3 等の lossy 圧縮は M/S の繊細な相関関係を壊しがちなので避けてください。
- サーバーに送信されますか?
- いいえ。Web Audio API でブラウザ内処理、自前 WAV エンコーダで書き出しています。
「送らない」を確かめるには
このツールは入力データを外部に送信しません。仕組み・監査手順・運営方針は以下で詳しく説明しています。
類似のツール
ステレオ幅 / M/S 解析 — 位相相関と mono 互換性チェック
ステレオ音声ファイル (MP3 / WAV / M4A / FLAC / OGG / Opus) をドロップすると、ブラウザ内で M/S 解析 (Mid = (L+R)/2、Side = (L-R)/2) を行い、ステレオ幅 (%) / 位相相関係数 (-1 〜 +1) / Side エネルギー (dB) / Mid エネルギー (dB) / モノラル合成時のレベル低下 (dB) を表示します。Bluetooth スピーカーや Spotify Mobile の mono 縮退、ラジオ放送、テレビの中央ダウンミックスで音が痩せる / 消える問題を事前に検出。位相相関がマイナスに振れている場合は phase issue の警告を出します。音声はブラウザ内で完結。
音声チャンネル分離 — ステレオ L / R を 2 つのモノラルに分割
ステレオ音声ファイル (MP3 / WAV / M4A / FLAC / OGG) を L (左) と R (右) の 2 つのモノラル WAV / MP3 として書き出します。社外録音 (インタビュー、口述記録、ZOOM 録音、ハンディレコーダー) で話者を L チャンネル / R チャンネルに分けて録ったときの分離編集、片チャンネルだけのノイズ除去、ステレオ素材から片側だけ DAW に取り込みたいときに最適。モノラル素材はそのまま 1 ファイル出力。音声はブラウザ内で完結します。
音声チャンネル結合 — 2 つのモノラルを L + R のステレオに
2 つのモノラル音声ファイル (MP3 / WAV / M4A / FLAC / OGG) を 1 つのステレオ音声に結合します。L チャンネルと R チャンネルを別々に渡すと、内部で interleave して 1 つの stereo WAV / MP3 として出力。インタビューの A 話者 / B 話者を別収録 → L / R に振り分けたい、片チャンネル素材から擬似ステレオを作りたい、audio-channel-split の逆操作で再合成したいときに使えます。長さが違う場合は短い方に合わせる / 長い方に合わせる (無音パディング) を選択可能。音声はブラウザ内で完結します。
音声フォーマット変換 — MP3 / WAV / M4A / OGG / FLAC
音声ファイルを mp3 / wav / m4a / ogg / flac へ変換します。ffmpeg.wasm が出力拡張子に応じてコーデックを選択して再エンコード。複数ファイル一括処理 + ZIP ダウンロード対応。ファイルはサーバーに送信されません。