4.LAMEのコンパイル
4-1 Microsoft Visual C++(以下、MSVC++)(当面無料)でコンパイル
Visual C++ 2005 Express Edition 日本語版
まず下記をダウンロード
Visual C++ 2005 Express Edition ISOイメージ
追加ドキュメント
Windows Server 2003 R2 Platform SDK (2006-03-14) ISOイメージ
DAEMON Tools 3.47
DAEMON Tools V3.47 勝手に日本語化
以上をダウンロード
まずDAEMON Toolsをインストール。次にDAEMON Tools勝手に日本語化のパッチを当てる。そして、DAEMON ToolsにまずWindows Server 2003 R2 Platform SDK (2006-03-14) ISOをマウントする(拡張子がimgになっているのでisoに変換するとマウントできる)。マイコンピュータから仮想ドライブが見えているのでWindows Server 2003 R2 Platform SDK (2006-03-14) ISOをマウントしたドライブをダブルクリックするとインストールが始まる。(たいていはマウントした時点でインストールが始まる。)
次にVisual C++ 2005 Express Edition 日本語版をインストールする。選択時にMicrosoft Windows Core SDKのみを選択する。他の選択は好みに合わせて。次に追加ドキュメントをインストールする。
Visual Studio 2005 Express Edition のユーザー登録について
http://www.microsoft.com/japan/msdn/vstudio/express/register/
Visual C++ 2005 Express Edition と Microsoft Platform SDK を一緒に使う
http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/
手順 3. [オプション] ダイアログ ボックスの [プロジェクトとソリューション] セクションで [Visual C++ フォルダ] を更新します。
このセクションでは、適切なサブセクションにパスを追加します:
Executable ファイル - 「C:\Program Files\Microsoft Platform SDK\Bin」
Include ファイル - 「C:\Program Files\Microsoft Platform SDK\include」
Library ファイル - 「C:\Program Files\Microsoft Platform SDK\lib」
ノート:
代わりに、Visual C++ Express Edition がインストールされているフォルダのサブフォルダにある \vc\vcpackages に存在する VCProjectEngine.dll.express.config ファイルを修正することで、Visual C++ フォルダの更新を行うことも可能です。ただし、Visual C++ Express Edition を再度立ち上げる前に、「%USERPROFILE%\Local Settings\Application Data\Microsoft\VCExpress\8.0」 において "vccomponents.dat" が存在する場合は、その削除を行うことも忘れずに行ってください。
手順 4. corewin_express.vsprops ファイルを更新します。
Visual C++ 2005 Express Edition で Win32 テンプレートを使えるようにするための作業です。
corewin_express.vsprops ファイル (「C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults」にあります) を編集し、次の文字列を修正してください。
修正する文字列
AdditionalDependencies="kernel32.lib"
修正後の文字列
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"
手順 5. Win32 アプリケーションを生成、ビルドして、指定したパスの動作確認を行います。
Visual C++ 2005 Express Edition では、Win32 アプリケーション ウィザードで「Windows アプリケーション」が無効となっています。これを有効にするには、"%ProgramFiles%\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1041\" フォルダにある AppSettings.htm ファイルを以下のように編集する必要があります。
テキスト エディタで上記ファイルを開き、441 行目から 444 行目の先頭に // を追加してコメント アウトしてください。
// WIN_APP.disabled = true;
// WIN_APP_LABEL.disabled = true;
// DLL_APP.disabled = true;
// DLL_APP_LABEL.disabled = true;
ファイルを保存のうえ閉じて、Visual C++ 2005 Express Edition を起動します。
[ファイル] メニューから [新しいプロジェクト] をクリックします。[新しいプロジェクト] ダイアログ ボックスにある、[プロジェクトの種類] ツリーの [Visual C++] ノードを展開し、[Win32] をクリックします。[Win32 コンソール アプリケーション] テンプレートをクリックし、任意のプロジェクト名を指定して [OK] をクリックします。[Win32 アプリケーション ウィザード] ダイアログ ボックスで、アプリケーション タイプとしてWindows アプリケーションが選択されていること、ATL は選択されていないことを確認してください。最後に [完了] ボタンをクリックして、プロジェクトを生成します。
最後の手順として、生成されたプロジェクトをテストします。IDE の [開始] ボタンをクリックするか [F5] キーを押下します。Win32 アプリケーションがビルドされ、実行されるはずです。
手順3でInclude ファイルにはC:\Program Files\Microsoft Platform SDK\includeに加えてC:\Program Files\Microsoft Platform SDK\include\mfc及びC:\Program Files\Microsoft Platform SDK\Include\crtも追加する。
準備が終わったら、LAMEに取り掛かる。
プロジェクトのサイトからlame-3.97.tar.gz をダウンロードする。+Lhacaで展開し、フォルダの中のlame_vc7.slnをダブルクリックする。Visual C++ 2005 Express Editionが起動する。変換ウィザードが起動するので変換する。変換し終わったらいったんVisual C++ 2005 Express Editionを終了する。次にそのフォルダの下の階層のDllフォルダに移動する。Example_vc6.dswをダブルクリックするとまたVisual C++ 2005 Express Editionが起動する。「変換しますか」という問いには「すべてはい」。左上のソリューションエクスプローラでLameMp3EncDllを選択。右クリックで「ビルド」。ビルドに失敗するが、最後までやってからまたいったんVisual C++ 2005 Express Edition終了。上の階層に戻ってまたlame_vc7.slnをダブルクリック。左上のソリューションエクスプローラでLameMp3EncDllを選択。右クリックでビルド。 出力に「ライブラリ .\Debug/lame_enc.lib とオブジェクト .\Debug/lame_enc.exp を作成中」とでて、ビルド成功。outputというフォルダができる。中に、lame_enc.dllが作成される。
4-2 MinGWでコンパイル
NASMをダウンロード
http://sourceforge.net/projects/nasm
Win32 binaries の項目から、最新のものをダウンロードする。nasm-2.06rc1-win32.zip が20090309現在最新。
展開して、でてきた nasm.exe ndisasm.exe をMinGWのbinフォルダーへ入れる。もう一度展開して、 nasm.exe ndisasm.exe をそれぞれ nasmw.exe ndisasmw.exe と名前を変えて、また MinGWのbinフォルダーへ入れる。
nasmw.exe ndisasmw.exe は
http://homepage2.nifty.com/kei-i/というサイトの
Pathed NASM patch and Windows binaryでもよい。
MSYSのフォルダーの中で、LAMEのソースを展開する。lame-398-2.tar.gz が20090309現在最新。
configure ファイルのある階層に移動し、下記を打ち込む
make -f Makefile.unix UNAME=MSDOS HAVE_NASM=YES --win32
frontend フォルダーに lame.exe が出来上がるので、frontend フォルダに移動する。
strip lame.exe
上の階層に戻って libmp3lame フォルダーの中に、libmp3lame.a が出来上がっているか確認する。
次に、 DLL フォルダに移動する。
Makefile.mingw32 というファイルをテキストエディタなどで開き、一番最後の方の
example.exe : Example.cpp BladeMP3EncDLL.h
gcc Example.cpp -o example.exe
clean :
rm -f $(DLL_NAME).dll $(OFILES) example.exe
を
example.exe : Example.cpp BladeMP3EncDLL.h
g++ Example.cpp -o example.exe
clean :
rm -f $(DLL_NAME).dll $(OFILES) example.exe
に変更する。どうやら gcc ではなくて g++ でないとうまくいかないようだ。
そして訂正したら、下記を入力する。
make -fMakefile.mingw32 UNAME=MSDOS HAVE_NASM=YES
lame_enc.dll と example.exe が出来上がる。
DLLフォルダーに適当なWAVファイルを持ってきて
example.exe tekitou.wav
と入れると、tekitou.wav.mp3 というMP3に変換される。
ACMのMinGWでのコンパイルは未確認。
Windows Server 2003 DDK
1830_usa_ddk.iso
が必要になる模様。
余談
最近では、iTunes 、 Windows Media Player 10 、RealPlayer などでも MP3 に変換できるようです。WAV さえ作成すれば、MP3 に変換するのは簡単な時代になってきました。
MP3 などのフォーマットは特許の制限を受けるため、それらの代替として OGG というフリーの音声ファイルフォーマットを使う人も多くなってきました。
パソコンゲームの音楽にはよく OGG が使用されています。
Audacity 、TiMidity++ windows synthesizer(TWSYNTH) では、デフォルトで OGG が出力できますし、Rip!AudiCO というソフトもお勧めです。
(参考ファイル)
ダウンロード TiMidity-CVS060714_setup_en.exe (12371.5K)
ダウンロード TiMidity-CVS060714_setup_jp.exe (12371.5K)
ダウンロード TiMidityCVS060714_bin.zip (1691.5K)
ダウンロード TiMidityCVS060714_src.tar.bz2 (1530.9K)
ダウンロード timiditydrv060714_bin.zip (382.0K)
ダウンロード lame-3.96.1.tar.gz (1226.2K)
ダウンロード lame-3.97.tar.gz (1296.9K)
ダウンロード daemon347.exe (492.5K)
ダウンロード daemon347_jp.lzh (167.2K)
LAMEバイナリー
http://lame.sourceforge.net/links.php#Binaries
ISO マウント
窓の杜 仮想ドライブ
http://www.forest.impress.co.jp/lib/sys/hardcust/virtualdrv/
WinCDEmu
http://wincdemu.sourceforge.net/
仮想CD-ROMイメージをマウントする(vcdrom.sys編)
http://www.atmarkit.co.jp/fwin2k/win2ktips/536vcdrom/vcdrom.html
Virtual CD-ROM Control Panel for Windows XP
http://download.microsoft.com/download/7/b/6/7b6abd84-7841-4978-96f5-bd58df02efa2/winxpvirtualcdcontrolpanel_21.exe