2015/06/14

Windows LMMS 1.0 (64bit) のASIO対応方法



オープンソースで開発され無償で利用できるDAW「LMMS
FL Studioライクな設計で日本語ロケールにも対応し、ついこの間にはWindows版とLinux版の他、1.0のメジャーアップデートとともにOS X版も公開された。

|*| 標準ではASIOに対応していない

DTM初心者の味方のようなソフトウェアだが、Windowsで使うには「ASIO」に対応していないという欠点がある。
LMMSはLinuxベースで開発が進んでおり、オーディオ信号処理に「JACK(ジャック)」や「PortAudio」が利用できる。「JACK」はLinux上でこそパフォーマンスはいいものの、Windows上で使うにはJACKの実行環境をインストールしなければならないうえ、不安定でバッファサイズを下げてもレイテンシが50msを下回らないなど非常に評判が悪い。そのためWindowsやOS X環境ではサウンドドライバの橋渡しとして「PortAudio」の利用が推奨される

遅延を避けるためPortAudioを使うとして、OS X版ならバックエンドにある「Core Audio」を選択すれば低遅延で快適に使えるが、Windowsではなぜか「ASIO」が候補に現れないため「DirectSound」や「WASAPI」を選択するしかない。PortAudioライブラリ v18以降はWASAPIやWDM/KS,Core AudioとASIOも包括してあるはずなので、LMMSにコンパイルされているPortAudioドライバでなぜASIO使えないのか不思議に思うかもしれないが、理由はSteinberg社のASIO SDKとGPLで開発しているLMMSとのライセンス上の問題が絡んでいるため敢えてオミットされているようだ。



Windows標準のサウンドドライバは選べるが
ASIOの項目がない

左の画像はWindows版 LMMSの設定画面

オーディオインターフェースの項目には上から順に、「Dummy(音の出力なし)」「PortAudio」「SDL」となっている。(LinuxではPulseAudio、OSS、ALSAなども選択できる)PortAudioを選択するとBACKENDにWindowsで利用できるサウンドドライバ一覧が表示されるが、そこに「ASIO」の文字はない。

どうしてもLMMSでASIOを使いたいならユーザーは非公式な方法で対応するしかない。


|*| LMMS 32bit版でASIOを有効化する

64bitの前に32bit版のASIO対応について触れておく。
最も有名なのはここを参考に、Linradという仮想無線ソフトウェア用にカスタムされたPortAudioライブラリを拝借する方法

http://www.sm5bsz.com/linuxdsp/install/pa/pa.htm から「palir-02.zip」をダウンロードして解凍
・解凍して出てきた「palir-02.dll」を「libportaudio-2.dll」にリネーム
・「libportaudio-2.dll」をLMMSのインストールディレクトリ
(デフォルトはC:\Program Files (x86)\LMMS\)にぶち込む。





LMMS フォルダに元々入っていた「libportaudio-2.dll」は上書きするのではなく、「libportaudio-2.dll.old」等、拡張子をリネームしてバックアップを残しておこう。
工程はたったこれだけだが、サポート外の事をするので何か不具合が起こってもすべて自己責任となる。うまくいかない場合はXPモードや管理者権限で実行すると解決することも。

この方法はLMMS 32bit版限定であり 64bit版では使えない。



|*| "LMMS 64bit"版でASIOを有効化する

そろそろ本題。上記の通りLMMS 64bit版で「palir-02.dll」を使っても、LMMSがエラーを吐いて起動できない。Windowsのx64アプリケーションは32bitドライバ(.dllファイル)を呼び出しできないためだ。


これを解決するのは簡単で、単純に64bit用のdllファイルを用意すればいい。有り難いことにadfernandes氏のGithubリポジトリに、ASIOに対応させた64bitライブラリがあったのでそれを使わせてもらおう。

https://github.com/adfernandes/precompiled-portaudio-windowsから
portaudio-r1891-build.zip」をダウンロードして解凍
・解凍して出てきたフォルダを開き「portaudio-r1891-build\lib\x64\ReleaseMinDependency\」下層にある
portaudio_x64.dll」というファイルを取り出す
・「portaudio_x64.dll」を「libportaudio-2.dll」にリネーム
・「libportaudio-2.dll」をLMMSのインストールディレクトリ
(デフォルトはC:\Program Files\LMMS\)にぶち込む。



こんな感じにBACKENDに「ASIO」の項目が追加され、ASIOデバイスも選択できるようになった。ちなみに「portaudio-r1891-build.zip」には32bit用ライブラリの「portaudio_x86.dll」も含まれているので、LMMS 32bit版でもこちらをつかう手もある。

0 Comments :

コメントを投稿