# PortAudio Tutorial

## Compiling for Windows (WMME or DirectSound)

> To compile PortAudio for Windows, you can choose between three options:
> - DirectSound API.
> - Windows MultiMedia Extensions API (aka WMME or WAVE).
> - Steinberg's ASIO API
> Some advantages of using DirectSound are that DirectSound may have lower latency than WMME, and supports effects processing plugins. But one disadvantage is that DirectSound is not installed on all PCs, and is not well supported under Windows NT. So WMME is the best choice for most projects.

> Note: If you are compiling one of the PortAudio test programs with Visual C++, then create a new Project of type "Win32 Console Application".

> ### All

> For any Windows implementation, add the following source files to your project:

> >     pa_common\pa_lib.c
> >     pa_common\portaudio.h
> >     pa_common\pa_host.h

> Link with the system library "winmm.lib". For Visual C++:
> 1. select "Settings..." from the "Project" menu,
> 2. select the project name in the tree on the left,
> 3. choose "All Configurations" in the popup menu above the tree,
> 4. select the "Link" tab,
> 5. enter "winmm.lib", without quotes, as the first item in the "Object/library modules:" field.

> ### WMME

> To use the WMME implementation, add the following source files to your project:

> > `pa_win_wmme/pa_win_wmme.c`

> ### DirectSound

> If you want to use the DirectSound implementation of PortAudio then you must have a recent copy of the free DirectX SDK for Developers from Microsoft installed on your computer. To compile an application add the following source files to your project:

> >     pa_win_ds\dsound_wrapper.c
> >     pa_win_ds\pa_dsound.c

> Link with both system libraries "dsound.lib" and "winmm.lib" using the procedure described above for "winmm.lib".

> Borland users cannot link with the "dsound.lib" from Microsoft directly. Emmanuel offered this advice:

> One can use implib from Borland to generate a new .lib file which is compatible with Borland C++.

> Use: "implib dsound.dll dsound.lib" and include dsound.lib into your project.

> I still had a problem executing the patest_record example. The thread ended with an error like 'Floating point overflow at...'. This problem was caused due to a fault in the compiler. Now I'm using Borland 5.02 (instead of 5.01). Everything seems to be working fine at the moment.

> You might try compiling the "pa_tests\patest_saw.c" file first because it is the simplest.

home | contents | previous | next