mp3gain.exe とコマンドラインオプション

2010年02月06日(土)22時20分

MP3Gain

手持ちの CD を PC 上でライブラリ化する作業は、現在のところ全 CD を「wav + cue + jpg」にするところまで終了しました
で、この後の具体的な作業は決まっていないものの、「MP3 ファイルを生成する」こと、「MP3Gain で音量を統一する」こと、そしておそらくそれらの作業を「スクリプトを書いて自動化する」であろうこと、はなんとなく決めていますので、とりあえず MP3Gain のコマンドライン・オプションなんかを調べてみました。

「MP3GainGUI.exe」と「mp3gain.exe」

ちなみに「MP3Gain 使い方」なんかで検索した場合に表示される多くのサイトで紹介されているのは、「MP3GainGUI.exe」というフロントエンドの GUI プログラムの使い方であり、これ自体には MP3 ファイルをどうこうする機能はありません。
実際に MP3 ファイルの分析や音量の変更を行っているのは、「mp3gain.exe」というコンソール・アプリケーションで、今回はこの「mp3gain.exe」をコマンド・プロンプトから使う場合のお話です。

「mp3gain.exe」と「aacgain.exe」

なお、このコマンドライン・ツールである「mp3gain.exe」は、AAC ファイルの音量を調整するコマンドライン・ツール「aacgain.exe」と互換性がありますので(というより AACGain が MP3Gain に合わせて作られたのだと思いますが)、ここで書かれている内容は AACGain にもそのまま流用できると思います。

「/r /c /p」

結論から言うと、とりあえず「mp3gain /r /c /p filename1.mp3 filename2.mp3 ~」で各曲を「89dB」に設定できるようです。
なお「/」を「-」に変えて「mp3gain -r -c -p filename.mp3 ~」としても同じことです。
「/r」はトラックゲインの指示で各ファイルを個別に「89dB」に調整します。
ここを「/a」に変えるとアルバムゲイン、つまり並べた各曲の相対的な音量差を保ったまま全体的に音量を上げ下げします。
「/c」はクリッピングが発生しても確認メッセージを出さないオプションで、これを付けないとクリッピングするときに「Make change? [y/n]:」と表示され、入力待ちが発生してしまいます。
これではスクリプトで連続実行させる場合などには困りますので付けておきます。
ただしこうすると当然クリッピングが防げないわけですが、まあそれが気になるようなら後からでも戻せるのが MP3Gain の利点の一つですし、そもそも特に最近の CD だと初期状態で既にクリッピングしていたりとかも普通にありますので、さして問題にならないと思います。
「/p」はファイルのタイムスタンプを変更しないオプションで、あってもなくてもいいんですが、おまけです。

「89dB」

ところでこの自動的に調整される際に使用される「89dB」という基準値はどこからくるのか、という話ですが、これはどうも「mp3gain.exe」に埋め込まれた固定値のようです。
レジストリを検索すると一見それらしき情報が見つかるのですが、これは前述のフロントエンドである「MP3GainGUI.exe」が自身の設定を記録しているもののようで、このレジストリ値を変更しても「mp3gain.exe」の挙動に変化はありません。

基準値の変更

それではこの基準値である「89dB」を変更するためにはどうすればいいのか、というと、これは「/m」か「/d」を使って指定します。
この二つのオプションは、基準値「89dB」に対していくら変化させるかを指定するもので、例えば「93dB」にしたければ、89 を 93 にするためには +4 する必要がありますので、「/d 4」とします。
つまり上の例で言えば「mp3gain /r /c /p /d 4 filename1.mp3 filename2.mp3 ~」です。
「86dB」にしたければ「86-89=-3」ですので「mp3gain /r /c /p /d -3 filename1.mp3 filename2.mp3 ~」になります。

「/k」

ところで、上記「/d」オプションの使い方について調べているとき、例えば「93dB」に変更するためには「/r /k /p /d 93」とする、というふうに紹介されている例をいくつか見かけました。
これだと「89+93」で「182dB」に設定されることになるはずで、その場合ほぼ全曲が酷くクリッピングしますから、普通だとすぐに気が付くはずです。
しかし、そうならなかったのがおそらくここで付けられている「/k」オプションの効果で、これはクリッピング発生時にクリッピングしないギリギリまで自動で下げてくれる、というものです。
つまり「/r /k /p /d 93」とすると、大抵の曲がクリッピングしないギリギリの音量に変更され、だいたいの場合それは 90dB ~ 100dB あたりになるために、一見うまく行っているように見えたのではないかと思います(もしかしたらバージョンや OS によって「/d」の指定方法が違ったのかもしれませんが)。
MP3Gain のヘルプファイルでは、だいたいどの曲でもクリッピングが発生しない音量が「89dB」だと書いてあるわけですが、「同じくらいの音量に揃えたいが、クリッピングだけは絶対に起こしたくない」という場合には「/r /k /p」として変更するのがいいかと思われます。
なお「/k」をつけた場合にはクリッピングが発生しないため、当然「/c」は必要ありません。

「/m」と「/d」の違い

ところで基準値「89dB」を指定するオプションは、「/m」と「/d」の二つがあるわけですが、この両者の違いについて、実際に適当なMP3ファイルを、それぞれ0~9まで変化させてどうなるのか試してみました。

  -m -d
0 88.4 88.4
1 89.9 89.9
2 91.4 91.4
3 92.9 91.4
4 94.4 92.9
5 95.9 94.4
6 97.4 94.4
7 98.9 95.9
8 100.4 97.4
9 101.9 97.4

「/m」はほぼ「1.5dB」ずつ確実に変化、「/d」は「1.0dB」ずつ変化しまずが場合によって変化しないときもあります。
この「1.5dB」という数値は MP3Gain のヘルプファイルにも載っている「変化する音量の最小単位」です。
いろいろ難しいことが書いてあってよくわからないのですが、MP3Gain は MP3 デコーダが音量を決める際に使用する係数の一つを書き換えることで音量を調整しているそうで、その係数を「1」変更すれば、音量が「1.5dB」変化する、ということのようです。
つまり「/m」はその係数の値を直接指定するもので、これを変更すると確実に音量が変化します。
対して「/d」は目標の「dB」を指定して、「1.5dB」刻みの音量変化のうち一番それに近いものが選択されるため、場合によっては変わらないこともある、ということだと思います。
この違いがあるため「/m」は整数しか指定できませんが、「/d」は小数点も使えます。
つまり「/d 3.8」のようにして「92.8dB」に近い音量にする、というような指定が可能です。

分析

音量を変更せずに分析だけする場合には「/s s」を使います。
例えば三つのファイルを目標値「95dB」として分析する場合「mp3gain /s s /d 6.0 filename1.mp3 filename2.mp3 filename3.mp3」のようにし、その結果は以下のようになります。

filename1.mp3
Recommended "Track" dB change: 9.120000
Recommended "Track" mp3 gain change: 6
Max PCM sample at current gain: 8542.094209
Max mp3 global gain field: 210
Min mp3 global gain field: 106

filename2.mp3
Recommended "Track" dB change: -2.590000
Recommended "Track" mp3 gain change: -2
Max PCM sample at current gain: 38508.922896
Max mp3 global gain field: 210
Min mp3 global gain field: 94

filename3.mp3
Recommended "Track" dB change: -1.110000
Recommended "Track" mp3 gain change: -1
WARNING: some clipping may occur with this gain change!
Max PCM sample at current gain: 39983.137323
Max mp3 global gain field: 210
Min mp3 global gain field: 108


Recommended "Album" dB change for all files: -2.150000
Recommended "Album" mp3 gain change for all files: -1
WARNING: with this global gain change, some clipping may occur in file filename3.mp3

ここで表示されるのは「現在の音量からどれだけ変化させればいいのか」であって「89dB」を基準にした数値ではないようです。
また、クリッピングが発生する場合には「WARNING:」でその旨表示されています。
末尾にはアルバムゲインとした場合の分析結果が付きます。
なお、目標音量を指定せず、ただ「/s s」とだけした場合には、当然「89dB」を目標音量として分析し、結果を表示します。

「/g」

「/g」オプションは解析を行わずにいきなり指定値で音量を変更するためのものです。
解析しませんから「89dBを基準にいくら変更するか」は指定できませんので、「現在の音量を基準にいくら変更するか」を指定します。
つまり上記の「/s s」で行った分析結果を、実際にファイルに反映するために使用するオプションです。
もちろん、全体的に音量を上げ(下げ)たいというときにも使えますが。
ここで指定する数値は「dB」ではなく係数、つまり「/m」で指定するものに相当する数値、上記分析結果で言うと「mp3 gain change:」で表示されている部分のようです。

関連記事

【同じタグを付けた記事の一覧】
ソフト紹介 音楽管理 AACGain MP3Gain

スポンサーサイト

コメントの投稿

非公開コメント

最新記事
最新コメント
Amazonサーチウィジェット
カテゴリ
タグクラウド
Amazonサーチウィジェット
カレンダー
04 | 2023/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
月別アーカイブ
プロフィール

電脳太助

Author:電脳太助
Website:電脳スピーチ web

RSSリンクの表示
メールフォーム

名前:
メール:
件名:
本文:

サイト内検索
Ads by Google
FC2アクセスランキング
Ads by Google
FC2拍手ランキング
ユーザータグ

音楽管理(66)
ポータブル(57)
ソフト紹介(44)
プログラミング(42)
音声技術(41)
自作ソフト(35)
サイト運営(33)
FC2(32)
ブログ(31)
iTunes(27)
Windows(25)
LISMO(24)
音声合成(23)
電子ブック(22)
x-アプリ(22)
音声認識(22)
eラーニング(20)
バックアップ(19)
語学学習(19)
foobar2000(18)
ソースコード(18)
WindowsLiveWriter(15)
画像管理(15)
C++(14)
アフィリエイト(10)
DnspTools(10)
FLAC(9)
JavaScript(9)
fi-6130(9)
ウォークマン(9)
Gracenote(8)
ベクター(8)
雑記(8)
英語音読学習計画(8)
Prolog(8)
spcbght(7)
SyntaxHighlighter(7)
TraConv(7)
wxWidgets(7)
CodeBlocks(7)
iGoinLM(6)
W63CA(6)
ExactAudioCopy(6)
WindowsLiveMesh(6)
MP3Gain(6)
VirtualBox(6)
DCP-J552N(6)
WinRT(6)
英語発音矯正実験(6)
LAME(5)
音楽技術(5)
楽器演奏(5)
Mery(5)
MIDI(4)
WindowsLiveSkyDrive(4)
nLite(4)
ホームページ(4)
GalateaProject(4)
GalateaTalk(4)
拍手(4)
LLVM(4)
PC-98(3)
カウンター(3)
PK-513L(3)
iTCDini(3)
AACGain(3)
UniversalExtractor(3)
アクセスランキング(3)
OverCutChecker(3)
OCR(2)
qtaacenc(2)
アクセス解析(2)
ImageCompositeEditor(2)
AquesCmdDl(1)
資格試験(1)
AquesTalk(1)

FC2アクセスランキング
最新トラックバック
アクセスランキング
[ジャンルランキング]
コンピュータ
79位
アクセスランキングを見る>>

[サブジャンルランキング]
ソフトウェア
9位
アクセスランキングを見る>>
FC2カウンター