Hmm... I didn't realize BASS used a global, system-wide initialization. My guess would have been per-process. Sorry for the collision. It seemed like it should have been safe.
With any luck though, Synthesia's BASS
should be using the DLLs in the Synthesia directory, so anything used by other drivers shouldn't be locked. Although, upon closer inspection on that page, the "If a DLL with the same module name is already loaded in memory, the system checks only for redirection and a manifest before resolving to the loaded DLL..." is a little worrisome.

I wonder if throwing a LOAD_LIBRARY_SEARCH_APPLICATION_DIR in there also avoids that behavior, too.
EDIT: Ah ha! It's
because WASAPI is exclusive. I suppose that means everybody on the system has to play nice together or step on each other's toes.
For what it's worth, Synthesia
does call BASS_Free when you close the synth. The only thing it's not doing is releasing the DLL. (It does dynamic binding and I was hoping to avoid all the pointer lookups each time. But I suppose it's not that large a price to pay.)
EDIT 2: It
looks like just putting a "Synthesia.exe.local" file (contents doesn't matter; can be empty) in the same folder with Synthesia.exe will force it to use DLLs in that same folder. (The same is presumably true for your synth, too.)
