[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fluid-dev] Building Fluidsynth for Windows with Jack and PortAudio driv

From: Graham Goode
Subject: [fluid-dev] Building Fluidsynth for Windows with Jack and PortAudio drivers
Date: Mon, 11 Feb 2013 10:10:22 +0200

Hi Jim,

Yes, you will need to install packages and configure the path and
package-config for each of the additional driver levels.

I assume that you're following the directions from here:

and have pkg-config
and the gtk+ packages already installed and configured (for the GTK+ I
use the all-in-one package

PulseAudio is currently 99.9% linux based (there is a Win32 build
available but I don't know of anyone using it) so I would recommend
that we don't bother building support for PulseAudio.

On my system I have put all the required extra packages into c:/libs32
and added c:/libs32/bin to the PATH statement.


For Jack support - Download the 32-bit Jack for Windows installer from

Install Jack

I then copy the jack headers folder from C:\Program Files
(x86)\Jack\includes into my C:\libs32\include and the libs from
C:\Program Files (x86)\Jack\lib into C:\libs32\lib
(hmm, I also have jack.h located in C:\libs32\include, not sure why....)

I then create a package-config configuration for jack in C:\libs32\lib\pkgconfig
Name the file jack.pc and use the following example configuration text
to create your own

server_libs=-L${exec_prefix}/lib -llibjackserver

Name: jack
Description: the Jack Audio Connection Kit
Libs: -L${libdir} -llibjack
Cflags: -I${includedir}/libjack

One small extra change is needed. There are basically two ways to link
to a DLL : by "function index", or by "function names". If "function
index" is used, then each time the DLL evolves (with a new function in
the API or whatever) this function index will possibly change and the
application will break (even crash). This is quite fragile. The
correct way is to link "function names", so that the same function
will always be found... BUT the current build system for Jack for
Windows uses MinGW to build the .lib and .dll, and that build system
produces a .lib with only "function index" linkages. So John from the
Mixbus Dev crew has created a libjack.lib using MSVS that provieds the
linking by by "function names". I will upload this to the dropbox site
for you to get it.

You should now be able to tick the Jack driver box in CMake and get a
MSVC project that builds Fluidsynth with Jack support.


For PortAudio support you will either need to get hold of a PortAudio
build (for Win32) - I can offer you mine, or you can build it yourself
(they also use CMake, etc, so it is relatively easy once you have
configured all the sub-driver requirements - ASIOSDK, WASAPI/WDM-KS
dependencies, etc).

You will then need to copy the portaudio.h header into the
C:\libs32\include and the portaudio_x86 .lib and .dll into
C:\libs32\lib and create a package config .pc configuration file.

In C:\libs32\lib\pkgconfig create a file named portaudio-2.0.pc and
use the following example to create your own configuration


Name: portaudio-2.0
Description: Cross Platform AUDIO
Version: 19
Libs: -L${libdir} -lportaudio_x86
Cflags: -I${includedir}

The .lib file contains all the linkages required, regardless of what
drivers are included in the portaudio dll, so you can build portaudio
with just the dsound driver, include that .lib in your build system,
build Fluidsynth with PortAudio support, and then swap in a
portaudio_x86.dll that has other drivers included (ASIO, WASAPI,

You should now be able to tick the PortAudio driver box in CMake and
get a MSVC project that builds Fluidsynth with PortAudio support.

@ Fluid-devs - would it be beneficial to add information like this to
the wiki page? Is there anything that I'm doing that I could be doing
better in regard to setting up a build environment?

Kind regards,

On 2/9/13, Jim Henry <address@hidden> wrote:
> Hi Graham,
> I attempted to build FS 1.1.6 with dsound, jack, pulse, and port but all
> I got was dsound. I used the *Download fluidsynth-1.1.6.zip (1.2 MB)
> <http://sourceforge.net/projects/fluidsynth/files/latest/download?source=files>
> (*http://sourceforge.net/projects/fluidsynth/files/latest/download?source=files)
> for source, Cmake with all 4 of those audio drivers checked, and Visual
> Studio 10 as the generator. The Cmake report is below. Any thoughts on
> what rookie mistake I am making in trying to get the additional audio
> drivers? Do I need to pick up something from each of the various project
> sites for these optional audio drivers per
> http://sourceforge.net/apps/trac/fluidsynth/wiki/Download?
> Thanks,
> Jim Henry

reply via email to

[Prev in Thread] Current Thread [Next in Thread]