LUFS Unifier v1.6

リニアゲイン調整だけで LUFS を統一化するツール
96kHz/32bit ハイレゾ対応版

1. 開発経緯

様々なところから集めてきたデジタル音源を一つにまとめてコンピレーション盤やベストアルバム等を作ろうとする時、必ず問題になるのが各曲の音量差です。音量が揃っていないとイライラして聴いていられません。それを解決するためにこのツールを開発しました。

本ツールの最大の特徴は、よくあるノーマライズ処理では失われることが多い「音楽のダイナミクス」を可能な限り損なわないように設計されていることです。

2. 概要

WAVファイルをまとめてEXEファイル(あるいは、そのショートカット)へドラッグ&ドロップするだけで、音量統一処理を全自動で行います。元のファイルは一切変更しません。

処理内容:

STEP1: 先頭末尾の無音部分を削除して別ファイルとして保存 (LUFS統一化処理後に自動削除)
STEP2: 音量が統一されたWAVファイルを別ファイルとして保存
STEP3: ALACファイル(Apple Lossless:可逆圧縮形式)へ変換・保存(スマホ等で聴く用)
OPTION: CDフォーマット(44.1kHz/16bit)への高品質変換(選択式)

v1.6の新機能:

  • ハイレゾ対応: 96kHz/32bit floatの高解像度音源に対応しました
  • CDフォーマット変換: ハイレゾ音源からCD用音源を高品質に作成できます
  • メモリ最適化: 大容量ファイルも安定して処理できるよう動的メモリ管理を実装

3. 動作環境

必要システム要件

  • OS: Windows 10以降
  • その他: FFmpeg インストール必須(同梱のインストーラーで簡単にインストールできます)

本ツールはプログラミング言語 Python で作成されており、EXE版ではPythonランタイムを含むすべてのPythonコンポーネントが単一の実行ファイルに統合されています。

4. 配布ファイル

lufs_unifier.exe                EXEファイル(約105MB)
lufs_unifier.yaml               設定ファイル
ffmpeg_install.bat              FFmpeg 自動インストーラー
ReadMe.html                     このファイル(使用説明書・日本語版)
ReadMe_en.html                  使用説明書(英語版)

注意: 本ツールのインストール作業はありません。すべてのファイルを同じフォルダに置くだけです。

5. 準備

FFmpeg が正しくインストールされている必要があります。ffmpeg_install.bat を使えば簡単にインストールできます。

1. ffmpeg_install.bat をダブルクリック
2. 指示に従い操作すれば FFmpeg を自動で C:\ffmpeg へインストール
3. さらに自動でユーザー環境変数へ登録(※ PATH が通ります)、Windowsへの通知も完了します

6. LUFS Unifier の使い方

(1) WAVファイルをドラッグ&ドロップ

音量を統一したいWAVファイルをまとめて lufs_unifier.exe(あるいは、そのショートカット)へドラッグ&ドロップします。

フォルダドロップにも対応:

  • 個別ファイル、フォルダ、またはその混在をドロップ可能
  • フォルダ内のWAVファイルのみが処理対象(サブフォルダ内は対象外)

(2) 自動処理スタート

以下の処理が自動で実行されます:

STEP1: 先頭末尾の無音部分を削除して別ファイルとして保存
STEP2: 音量が統一されたWAVファイルを別ファイルとして保存
STEP3: ALACファイル(Apple Lossless:可逆圧縮形式)へ変換・保存(スマホ等で聴く用)

(3) CDフォーマット変換(オプション)

自動処理完了後、CD用フォーマット(44.1kHz/16bit)への変換を選択できます。

変換方法:

  • リサンプリング: librosa Kaiser窓関数(最高品質)
  • ディザリング: TPDF三角波(16bit変換時)
  • 処理対象: 44.1kHz/16bit以外のファイルのみ自動判定して変換
  • 出力先: output_unified/output_cd44/ フォルダ

この変換により、ハイレゾ音源から品質の高いCD制作用音源を作成できます。

(4) 出力フォルダ

処理後は元のWAVファイルフォルダに下記フォルダが新たに作成され、それぞれのファイルが保存されています。

WAVファイルフォルダ
 │
 └── output_unified フォルダ         音量統一後のファイル
       │
       ├── *_unified.wav             LUFS統一後のWAVファイル
       │
       ├── ログファイル              処理内容を記録したファイル
       │
       ├── alac フォルダ             ALAC圧縮ファイル(可逆圧縮)
       │    └── *.m4a
       │
       └── output_cd44 フォルダ      CDフォーマット(選択時のみ)
             └── *_unified_cd.wav    44.1kHz/16bit WAVファイル

中間ファイルの自動削除:

  • trimmed フォルダ: 先頭末尾の無音削除後の中間ファイル保存フォルダ。処理完了後は自動削除されます

メタデータ完全保持: 元のWAVファイルのタグ情報(アーティスト名、アルバム名、曲名、ジャケット画像等)は、処理後のWAVファイルおよびALACファイルに完全に保持されます。

本ツールを使用する前に、元のWAVファイルに対し MP3TAG 等を使ってタグ情報(RIFFおよびID3)を一度きちんと入力しておくことをお薦めします。

起動について: ドラッグ&ドロップ後、処理開始まで数秒かかる場合があります。これはEXEファイル内に格納されているプログラムコンポーネントを一時フォルダ(TEMP)に展開する初期化処理のためです。処理終了後、展開されたコンポーネントはすべて自動的に削除されます。

注: alac フォルダは、全WAVファイルのタグ情報「アルバム名」がすべて同じ場合は、アルバム名がそのままフォルダ名になります。

7. 音響用語解説

RMS(Root Mean Square)

実効値とも呼ばれる音の平均的な強さを表す指標です。

  • 何を測るか: 音の「実際の力強さ」
  • 特徴: 人間の耳が感じる音量感に比較的近い
  • 単位: dB(デシベル)
  • 例: -12 dB RMSなど
  • 用途: ミキシング時の音量バランス調整

LUFS(Loudness Units relative to Full Scale)

ラウドネス単位で、現在最も重要視されている音量測定基準です。

  • 何を測るか: 人間が実際に感じる「聴感上の音量」
  • 特徴: 周波数特性を考慮し、人の聴覚特性に最も近い
  • 単位: LUFS
  • 配信基準:
    • Spotify: -14 LUFS
    • YouTube: -14 LUFS
    • Apple Music: -16 LUFS
  • 用途: ストリーミング配信用のマスタリング
  • 本ツールでの測定方法: FFmpegのebur128フィルター(ITU-R BS.1770-4準拠)を使用

TP (True Peak)

真のピーク値で、デジタル変換時に発生する可能性のある最大音量です。

  • 何を測るか: DA変換(デジタル→アナログ変換)後に発生し得る実際の最大音量
  • 特徴: 通常のピークメーターでは検出できない隠れたピークを発見
  • 単位: dBTP(デシベル・トゥルーピーク)
  • 推奨値: -1 dBTP以下(クリッピング防止)
  • 用途: マスタリング時の最終チェック
  • 本ツールでの測定方法: FFmpegのebur128フィルター(ITU-R BS.1770-4準拠)により、LUFSと同時測定することで処理を高速化(約1.5〜2倍)

LRA(Loudness Range)

ラウドネス・レンジで、楽曲全体の音量変化の幅を表します。

  • 何を測るか: 曲中の静かな部分と大きな部分の差
  • 特徴: 楽曲のダイナミクス(表現力)を数値化
  • 単位: LU(ラウドネス・ユニット)
  • 目安:
    • 3-6 LU: 圧縮が強い(EDM、ポップス)
    • 10-15 LU: 適度なダイナミクス(ロック)
    • 15+ LU: 豊かなダイナミクス(クラシック、ジャズ)

8. 本ツールの動作について

基本は LUFS を揃えることを目標としていますが、一定の LUFS 値に揃えるノーマライズ処理は行っていません。理由は、その手法では楽曲のダイナミクス(LRA)が大きく変化してしまうケースがあるからです。

よって本ツールではリニアゲイン調整のみで LUFS を統一しています。処理の流れは以下のとおりです。

(1) 各ファイルの LUFS と TP を測定(ITU-R BS.1770-4 準拠)
(2) デフォルトで TP は -0.5 dB で制限し、各ファイルの TP と -0.5 の差を算出、LUFS を残りどれだけ上げられるか(あるいは下げられるか)で MAX LUFS をそれぞれ計算
(3) 各ファイルの MAX LUFS の最小値を全ファイルの Target LUFS とみなす
(4) 各ファイルの LUFS と Target LUFS の差だけそれぞれゲイン調整
(5) (4)を再解析し、最大 TP<=-0.5 となっていない場合は Target LUFS を調整して再度ゲイン調整
(6) デフォルトでは TP 0.01 dB の誤差を許容してゲイン調整収束(反復ゲイン調整は最大10回)
(7) 処理完了後、中間ファイル(trimmed フォルダ)を自動削除

このロジックにより、リニアゲイン調整だけで LUFS を統一することで LRA の変動を理論上はゼロにしています

音質改善機能

以下の音質改善機能がリニアゲイン調整処理において自動的に適用されます:

DC成分除去: DC成分(直流オフセット)を自動除去し、正確なピーク測定を実現
Float64高精度計算: 内部処理を64bit浮動小数点で実行し、累積計算誤差を最小化
三角波ディザリング: 16bit出力時の量子化ノイズを低減(24bit以上では自動的にスキップ。リミッティングは意図的に実装していません)

メモリ最適化機能

大容量ファイルの処理を安定して行うためのメモリ最適化機能が実装されています:

  • 動的ワーカー調整: ファイルサイズに応じて並列処理スレッド数を自動調整
  • ファイルサイズ判定:
    • 小サイズ(平均50MB未満): フル並列処理
    • 中サイズ(平均50-100MB): 並列数75%に削減
    • 大サイズ(平均100-200MB): 並列数50%に削減
    • 超大サイズ(最大200MB以上): シングルスレッド処理
  • オンデマンド処理: 音声データをメモリに保持せず、必要な時に元ファイルから読み込み

CDフォーマット変換機能(オプション)

自動処理完了後、CD制作用の44.1kHz/16bitフォーマットへの変換を選択できます。この機能により、ハイレゾ音源や異なるサンプリング周波数の音源からCD用音源を高品質に作成できます。

変換の特徴:

  • 高品質リサンプリング: librosa Kaiser窓関数を使用し、エイリアシングを最小限に抑制
  • TPDFディザリング: 16bit変換時の量子化ノイズを三角波ディザリングで低減
  • 自動判定: 既に44.1kHz/16bitのファイルはそのままコピー(再変換なし)
  • 元データ保持: 元のLUFS統一ファイルとは別フォルダ(output_cd44)に保存

用途: CD制作、オーディオCDへの書き込み、CD品質での配布など

9. 設定ファイル lufs_unifier.yaml について

設定項目 デフォルト値 内容
target_tp_db -0.5 TP制限値(dB)
max_iterations 10 最大ゲイン調整回数
max_workers 4 並列処理ワーカー数(自動調整)
tp_convergence_margin 0.01 TP収束許容誤差(dB)
threshold_db -50.0 無音検出レベル(dB)
min_silence_duration 0.05 検出する最小無音時間(秒)
head_keep_duration 0.2 先頭保護時間(秒)
tail_keep_duration 1.0 末尾保護時間(秒)
true_peak_timeout 30 TP解析タイムアウト(秒)
alac_conversion_timeout 120 ALAC変換タイムアウト(秒/ファイル)

10. トラブルシューティング

起動に時間がかかる

原因: EXEファイル内のプログラムコンポーネントを一時フォルダ(TEMP)に展開する初期化処理のため、数秒かかる場合があります。

説明:

  • ドラッグ&ドロップ後、処理開始まで3〜5秒程度かかるのは正常な動作です
  • 展開されたコンポーネントは処理終了後、自動的にすべて削除されます
  • 処理が始まれば、その後は高速に動作します
処理が途中で止まってしまう

原因: ファイルサイズが大きすぎるか、メモリ不足の可能性があります。

解決方法:

  1. lufs_unifier.yaml の max_workers を 1-2 に減らす
  2. 一度に処理するファイル数を減らす
  3. 他のアプリケーションを終了してメモリを確保

補足: v1.6では動的メモリ管理により、大容量ファイルでも自動的にシングルスレッド処理に切り替わり安定性が向上しています。

無音カットが適切に動作しない

原因: 無音検出の閾値設定が楽曲に適していない可能性があります。

解決方法:

  1. lufs_unifier.yaml の threshold_db を調整
    • クラシック音楽: -60.0 dB
    • ポップス・ロック: -50.0 dB(デフォルト)
    • 電子音楽: -45.0 dB
  2. head_keep_duration / tail_keep_duration で保護時間を調整
FFmpegが見つからないエラー

原因: FFmpegが正しくインストールされていないか、環境変数が設定されていません。

解決方法:

  1. 付属の ffmpeg_install.bat を実行してFFmpegをインストールすれば、ユーザー環境変数の設定、Windowsへの通知もすべて自動で行われます。
  2. インストール状況は、コマンドプロンプトで ffmpeg -version を実行すれば確認できます。

11. セキュリティ情報

VirusTotal スキャン結果

このEXEファイルは第三者機関VirusTotalでスキャン済みです:

  • 検出状況: 4/69(一部のセキュリティソフトで誤検知)
  • スキャン結果URL: VirusTotalで確認

誤検知について:

  • 検出しているのは: Avast、AVG、Jiangmin、Zillya の4つのみ
  • 主要なセキュリティソフト(Windows Defender、Kaspersky、McAfee、Norton等)では検出されていません
  • 検出理由: PythonスクリプトをEXE化したツール(PyInstaller等)に対する誤検知パターンです
  • 悪意のあるコードは一切含まれていません

ダウンロード時の警告について

ブラウザが「危険なファイル」と警告する場合がありますが、これは誤検知です。

Chrome の場合:

  1. ダウンロードバーに「危険なファイル」と表示される
  2. ファイル名の右にある「^」をクリック
  3. 「継続」または「保持する」をクリック

Microsoft Edge の場合:

  1. 「このファイルは安全にダウンロードできません」と表示される
  2. 「...」(詳細)をクリック
  3. 「保持する」をクリック

初回実行時の警告について

Windows Defender(SmartScreen)が警告を表示する場合がありますが誤検知です:

  1. 「Windowsによって PC が保護されました」と表示される
  2. 「詳細情報」をクリック
  3. 「実行」ボタンをクリック

12. 免責事項

使用に関する注意事項

  • 本ツールの使用は自己責任でお願いします。
  • 音声ファイルの処理により発生した音質の変化や損失について、開発者は一切の責任を負いません。
  • 重要なファイルは事前にバックアップを取ることを強く推奨します。
  • 商用利用に関しては、関連する著作権法や使用許諾契約を遵守してください。
  • 本ツールの動作により生じたいかなる損害についても、開発者は一切責任を負いません。
  • Windowsの仕様変更やFFmpegの更新により、将来的に動作しなくなる可能性があります。
  • サポートは基本的に提供いたしません。

13. 更新履歴

v1.6
2025年10月
機能追加:
  • trimmed フォルダの自動削除機能
  • 96kHz/32bit float対応(ハイレゾ音源サポート)
  • CDフォーマット変換機能(Kaiser窓リサンプリング+TPDFディザリング)
  • 動的メモリ管理による大容量ファイル安定処理
  • オンデマンド処理によるメモリ使用量削減
  • フォルダドロップ対応(サブフォルダは除外)
v1.5
2025年10月
EXE化対応により Python 環境を不要とした。メモリ最適化、統合インストーラー追加、ALAC変換機能強化、音質改善機能追加(DC成分除去・Float64高精度計算・三角波ディザリング)、LUFS/True Peak測定をFFmpeg統合により高速化(約1.5〜2倍)
v1.4
2025年8月
True Peak制御の改善、並列処理対応
v1.3
2025年7月
無音トリミング機能追加、メタデータ保持機能

14. 開発者情報

開発者 Noriya
Email noriyahd28v@gmail.com
URL http://noriya.info/

本ツールは音楽愛好家の皆様により良い音楽体験を提供することを目的として開発されました。
ご質問やフィードバックがございましたら、上記連絡先までお気軽にお寄せください。