2. トラックを用意する

注意: すべてのコマンドは bash シェルを想定しています。

  1. すべての MP3 ファイルをひとつのディレクトリに集めます。

  2. ファイル名に空白があるなら、最初に空白をアンダーラインに変更してやります

         for i in *.mp3; do mv "$i" `echo $i | tr ' ' '_'`; done 
  3. 次に示すコマンドで WAV ファイルに変換します。

         for i in *.mp3; do mpg123 -w `basename $i .mp3`.wav $i; done 

    Mpg123 はどの Linux ディストリビューションにも入っ ているはずですが、手もとにないなら、http://www.mpg123.de/ から入手できま す。

    注意:ある種の MP3 ファイルは、mpg123 出力にひずみ がでることがありますので注意してください。最初、私はそのファイルがおかしいの だと考えていましたが、別のプレイヤーで調べたところ問題はありませんでした。 そこで、ディスクに WAV ファイルを書き出せる別の MP3 プレイヤーを探してみた ところ、次のようなものを見つけました。 http://www.mars.org/home/rob/proj/mpeg/ にある MAD mp3 デコーダーです。次のようなコマンド を使います。

    for i in *.mp3; do madplay -o `basename $i .mp3`.wav $i; done 

    さらに別の方法もあります。見たところいくつかの mp3 ファイルは mpg123madplay の両者でデコード トラブルを起こします。lame エンコーダにはデコード機能 があり、それらのファイルでもうまく扱えるようです。 (lamehttp://www.mp3dev.org/mp3/ にあ ります)。

         for i in *.mp3; do lame --decode $i `basename $i .mp3`.wav; done
         

    注意:`basename $i .mp3`.wav という コマンドは、 MP3 拡張子を WAV で置き換えます。 さまざまな実行方法がありますが、ここでは一例を示しておきます。 `echo "$1" | sed 's/\.mp3$/.wav/'`

  4. "file *.wav" を実行し、16 ビット、 ステレオ 44100 Hz とは異なるファイルに対する出力をチェックします。

  5. 違った特性を持つファイルがあるなら、上述した方法でそれらファイルを 変換します。たとえば、track01.wav というファイルを変換してサンプルレート 44.1 kHz になるようにするには次のようにします。

         sox track01.wav -r 44100 track01-new.wav resample

    Sox はとても一般的なもので、 どのような Linux ディストリビューションにもデフォルトでインストールされているでしょう。 また次のところでも入手できます。http://www.spies.com/Sox/ しかし、 私のようなお気軽ユーザにはコマンドオプションはちょっと暗号のように思えま す。sox をうまく使うには http://www.spies.com/Sox/sox.tips.html を見てください。

  6. 音量の極端な違いを避けるには、WAV ファイルを標準化します。私 は Chris Vaill () の normalizeというプログラムを使っています。http://www.cs.columbia.edu/~cvaill/normalize/ で入手できます。

    私は次のような構文を使っています( -m は mix モードで、すべてのファイル はできるだけ大きな音になるはずです)

         normalize -m *.wav