portaudio
ソースのダウンロード
参考URL
まず、pa_stable_v19_20140130.tgzをダウンロードして解凍しておく。 今回使用したファイルは以下のファイル。
次に、ASIO SDKを以下URLからダウンロードする。
- http://www.steinberg.net/en/company/developers.html
- http://www.steinberg.net/sdk_downloads/asiosdk2.3.zip
ダウンロードしたasiosdk2.3.zipを解凍して、ディレクトリ名をASIOSDKにリネームしておく。 ASIOSDKディレクトリはportaudio\src\hostapi\asio\に移動しておく。
ASIOSDKの配置が終わったら、Visual Studio用のソリューションファイルを開く。 ソリューションファイルはportaudio\build\msvc\portaudio.slnに用意されている。
ソリューションを開いた後、まずASIOSDKのディレクトリが正しく設定されているかどうかを確認する。 確認は、ソリューションエクスプローラに表示されているツリー表示の中から、
- "Source Files"→"hostapi"→"ASIO"→"ASIOSDK"→asio.cpp
を選び、ファイルを正しく開くことができることを確認する。 もし、ASIOSDKディレクトリが正しく配置されていない場合は、 このファイルを開くことができない。
ASIOSDKが正しく配置されていることを確認した後、プロジェクトのビルドに関する設定を行う。 設定する項目は次の2点。
- (1) 追加のライブラリディレクトリの設定
- (2) プリプロセッサの定義の設定
- (2) 出力ファイル名、インポートファイル名の設定
(1)の設定については、プロジェクトのプロパティを開き、"リンカ"→"全般"の中にある「追加のライブラリディレクトリ」に次のディレクトリを追加する。
- プラットフォームがWin32の場合
- C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
- プラットフォームがx86の場合
- C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64
追加のライブラリディレクトリの設定はDebug, Releaseともに設定しておく。 この設定を行わない場合、リンク時に"ksguid.lib"が見つからないとエラーが出てビルドに失敗するので、必ず設定する必要がある。
(2)の設定については"C++"→"プリプロセッサ"→"プリプロセッサの定義"にある設定を変更する。 プラットフォーム、構成に応じて次の内容を設定する。
-
プラットフォームがWin32, 構成がDebugの場合 WIN32;_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_USE_ASIO=1;PA_USE_DS=0;PA_USE_WMME=0;PA_USE_WASAPI=1;PA_USE_WDMKS=1;%(PreprocessorDefinitions)
-
プラットフォームがWin32, 構成がReleaseの場合 WIN32;NDEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_USE_ASIO=1;PA_USE_DS=0;PA_USE_WMME=0;PA_USE_WASAPI=1;PA_USE_WDMKS=1;%(PreprocessorDefinitions)
-
プラットフォームがx64, 構成がDebugの場合 _WIN64;_DEBUG;_USRDLL;PA_ENABLE_DEBUG_OUTPUT;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_WDMKS_NO_KSGUID_LIB;PA_USE_ASIO=1;PA_USE_DS=0;PA_USE_WMME=0;PA_USE_WASAPI=1;PA_USE_WDMKS=1;%(PreprocessorDefinitions)
-
プラットフォームがx64, 構成がReleaseの場合 _WIN64;NDEBUG;_USRDLL;_CRT_SECURE_NO_DEPRECATE;PAWIN_USE_WDMKS_DEVICE_INFO;PA_WDMKS_NO_KSGUID_LIB;PA_USE_ASIO=1;PA_USE_DS=0;PA_USE_WMME=0;PA_USE_WASAPI=1;PA_USE_WDMKS=1;%(PreprocessorDefinitions)
(3)の設定についてはオプション。必要がなければ設定しなくても良い。 設定を行うのは次の2点。
- "リンカ"→"全般"→"出力ファイル"
- "リンカ"→"詳細設定"→"インポートライブラリ"
それぞれの設定内容については次の通り。
- プラットフォームがWin32, 構成がDebugの場合
- 出力ファイル :
$(Platform)$ (Configuration)\portaudio_x86D.dll - インポートライブラリ :
$(Platform)$ (Configuration)\portaudio_x86D.lib
- 出力ファイル :
- プラットフォームがWin32, 構成がReleaseの場合
- 出力ファイル :
$(Platform)$ (Configuration)\portaudio_x86.dll - インポートライブラリ :
$(Platform)$ (Configuration)\portaudio_x86.lib
- 出力ファイル :
- プラットフォームがx86, 構成がDebugの場合
- 出力ファイル :
$(Platform)$ (Configuration)\portaudio_x64D.dll - インポートライブラリ :
$(Platform)$ (Configuration)\portaudio_x64D.lib
- 出力ファイル :
- プラットフォームがx86, 構成がReleaseの場合
- 出力ファイル :
$(Platform)$ (Configuration)\portaudio_x64.dll - インポートライブラリ :
$(Platform)$ (Configuration)\portaudio_x64.lib
- 出力ファイル :
個人的には、Debug/Releaseビルドでファイル名を同じにしておくと、DLLが混ざって危険だと思うので、この設定を行っている。