These only relate to Windows implementation using dsound BUG #1 When compiling as DLL, fluid_instance is initialized by calling fluid_set_hinstance() from DLLMain (fluid_dll.c) However when compiled ad a .LIB it is never initialized so the check in new_fluid_dsound_audio_driver() (fluid_dsound.c) if (FLUID_HINSTANCE == NULL) { FLUID_LOG(FLUID_ERR, "No hinstance needed for DirectSound"); return NULL; } will always fail. Similarly, when compiling as a DLL, fluid_wnd is not initialized, and the test if (fluid_wnd == NULL) { if (fluid_win32_create_window() != 0) { FLUID_LOG(FLUID_ERR, "Couldn't create window needed for DirectSound"); return NULL; } } will always fail. I'm sure there's a more elegant solution, but I just used ifdefs #ifdef FLUIDSYNTH_NOT_A_DLL if (fluid_wnd == NULL) { if (fluid_win32_create_window() != 0) { FLUID_LOG(FLUID_ERR, "Couldn't create window needed for DirectSound"); return NULL; } } #else if (FLUID_HINSTANCE == NULL) { FLUID_LOG(FLUID_ERR, "No hinstance needed for DirectSound"); return NULL; } #endif BUG #2 In fluid_dsound.c static HWND fluid_wnd = NULL; is missing so it won't compile. It was there in 1.0.6