Portaudio Windows ASIO with MSVC

This document is still being reviewed

ASIO is a low latency audio API from Steinberg. To compile an ASIO application, you must first download the ASIO SDK from Steinberg. You also need to obtain ASIO drivers for your audio device.

First, #include the portaudio header file ("portaudio.h") in the project.

Next, add the following ASIO-related .cpp files to the project:

pa_asio.cpp                     (Portaudio\src\hostapi\asio)
asio.cpp                        (asio2sdk\common)
asiodrivers.cpp                 (asio2sdk\host)
asiolist.cpp                    (asio2sdk\host\pc)

Then, add the following Portaudio-related .c files to the project:

pa_allocation.c                 (Portaudio\src\common)
pa_converters.c                 (Portaudio\src\common)
pa_cpuload.c                    (Portaudio\src\common)
pa_dither.c                     (Portaudio\src\common)
pa_front.c                      (Portaudio\src\common)
pa_process.c                    (Portaudio\src\common)
pa_skeleton.c                   (Portaudio\src\common)
pa_stream.c                     (Portaudio\src\common)
pa_trace.c                      (Portaudio\src\common)
pa_win_hostapis.c               (Portaudio\src\os\win)
pa_win_util.c                   (Portaudio\src\os\win)
pa_x86_plain_converters.c       (Portaudio\src\os\win)
pa_win_wmme.c                   (Portaudio\src\hostapi\wmme)

Then, add the following include paths to the project:

portaudio\include
portaudio\src\common
asio2sdk\common
asio2sdk\host
asio2sdk\host\pc

Finally, open the "pa_win_hostapis.c" file. Add the following:

#define PA_NO_WMME
#define PA_NO_DS

This prevents the initialisation of the Windows MME and DirectSound versions of Portaudio.

You should now try compiling the "Portaudio\test\patest_saw.c" file because it is the simplest of the test files.

To update your copy or check out a fresh copy of the source

SVN instructions

Back to the Tutorial

--- Chris Share