AudacityでMP3ファイルを扱う (LAMEライブラリが必要)

Audacity ( http://audacity.sourceforge.net/ ) というアプリケーションを
ちょっとした音声ファイルの編集に使っています。
おそらく、高度な音楽ファイルの編集にも使用できそうですが、
自分ではそういう用途に使ったことはありません。


少し厄介な点としては
MP3ファイルの編集が標準でできないことでしょうか。
おそらく、MP3のエンコーダーのライセンスの関係なのだと思います。


別に配布されている、Lame というMP3を扱うライブラリを使えば、編集できるようになります。


基本は、ソースファイルで配布されています。
おそらく、lame_enc.dll というバイナリファイルが、どこかで配布されていると思いますが、
知らない人のコンパイルしたバイナリファイルだと、
セキュリティの面で心配なので、自分でコンパイルする方法を以下に示します。


コンパイルしないといけないので、兎に角、
Mingw, Msys をインストールします。
(おそらく、Visual C++ compiler でコンパイルできそうですが、今回やっていないのでわかりません。)


最近は、Mingw-get-setup という、プログラムで、インストールできます
http://sourceforge.net/projects/mingw/
同時に、Mingw, Msys の developmentやutility のパッケージも入れておきます。


これで、gccや、make (msys-util で配布) が使えるようになったと思います。


自分は、Web上で、mintty-mingw が便利という情報を得たので、これも入れました。
mingw-get update
mingw-get upgrade
mingw-get install msys-mintty


あと、msys のホームディレクトリが、/home/(ユーザ名)で、Windowsディレクトリでは
C:\MinGW\msys\1.0\home\(ユーザ名)
なので、このフォルダを作り、
そこに、.bashrcで


PS1='[\u@\h \W]\$'
umask 220
export PATH=$HOME/local/bin:$PATH
export LIBRARY_PATH=$HOME/local/lib:/usr/local/lib:/mingw/lib
export LD_LIBRARY_PATH=$LIBRARY_PATH
export LD_RUN_PATH=$LIBRARY_PATH

export INCLUDE_PATH=$HOME/local/include:/usr/local/include:/mingw/include
export C_INCLUDE_PATH=$INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$INCLUDE_PATH


という感じで書いておきました。(今回のAudacityコンパイルには関係ないですが、今後Mingw使う時のため。)


あと、Windowsのシステム環境変数のPATHに、
C:\MinGW\bin;C:\MinGW\msys\1.0\bin;
の追加しておくと、いいですね。
これも注意ですが、はじめ、ユーザ環境変数の方にパスを追加していましたが、
どうも、Mingwと、Windowsシステムで同じプログラム名があるようで、エラーがでて、後でコンパイルに失敗しました。
Stackoverflowで調べると、先頭にパスを追加すべきだそうです。
http://stackoverflow.com/questions/12060186/libtool-object-name-conflicts-in-archive-netcdf-mingw


次に、lameコンパイルに進みます。
http://kemovitra.blogspot.jp/2009/08/mingw-to-compile-lame-for-windows.html
ここに書いてある通りにしました。


具体的には、
http://sourceforge.net/projects/lame/files/lame/
から、最新版の、ソース
自分の場合は、( lame-3.99.5.tar.gz でした)を取ってきて展開します。


その展開したディレクトリで、
./configure --prefix=/mingw
make
とすると、コンパイルが始まります。


これで、無事にライブラリは生成されていましたので、OKです。


デフォルトでは、
dllファイルでなく、UNIXで使われる .aファイル のみが生成されています。
ライブラリが出力されているのは、以下のフォルダです。
lame-3.99.5\libmp3lame\.libs


a2dllコマンドで、以下のように変換します。
(※a2dllがない場合は、"mingw-get instll mingw-utils" でインストール)
a2dll libmp3lame.a -o lame_enc.dll


これで、lame_enc.dll が完成です。


これを、適当なディレクトリにコピーして、
Audacity起動 > 編集 > 設定 > MP3 ライブラリ
から、lame_enc.dll
を選択すればOKです。


(インストールを終えて)
Mingw、Msysの感想。


全く詳しくありませんが、
Mingwが、コンパイラ関係
Msysが、いろいろなユーティリティなんでしょう。


これまで、何度か、Cygwinをいれて、使いにくいなぁと思って、使わなくなったり、
gnupack 入れたけど、結局使ってなかったりでした。


これからは、Mingw+Msysもいいかなぁと思いました。
mingw-get で パッケージ管理できるところが素敵です。