I can’t get multiple soundcard output working in linux.
Even the demo in samples/multiple doesn’t work: both samples are played through the device I selected as soundcard #2. (so I hear nothing through the soundcard that I selected as soundcard #1).
I tried to mess a bit with the Main.cpp and throw out anything that wasn’t needed, but no luck. Whatever I tried, the samples are always played through the device that is selected as second device.
results in all samples played through /dev/dsp1, and
fmod2->FSOUND_SetDriver(0); [/code:mu9d7rxg]
results in all samples played through /dev/dsp.

I initialise fmod1 and fmod2 as follows:
fmod1 = FMOD_CreateInstance(“/usr/lib/libfmod-3.63.so”);
fmod2 = FMOD_CreateInstance(“/usr/lib/libfmod-3.63_2.so”);

where both .so files are identical, and compile with
“g++ -g -O3 -o multiple Main.cpp -ldl” (as in the MakeFile).

I suspect the .so files to be cached by the linker, because they are identical. (So I guess that only the symbols of libfmod-3.63.so are used), but I don’t know what I can do about it.
I tried to replace the -ldl by “-lfmod-3.63 -lfmod-3.63_2”, but no luck.

Furthermore, I use OSS output, and the drivers for my sound devices are compiled into the kernel. My first sound device is an onboard AC97 codec (intel ICH), which can be accessed through /dev/dsp, and the second is a soundblaster live, which can be accessed through /dev/dsp1 (front channel) and /dev/dsp2 (rear channel).

I am running gentoo linux 1.4, with kernel 2.4.20-gentoo-r5, gcc 3.2.3, GNU ld version, and glibc 2.3.2.

Is there anyone who could help me out?



  • You must to post comments

I’ve got it working now! For those who have the same problem: just remove the RTLD_GLOBAL flag from the dlopen() line in fmoddyn.h, that worked for me.

  • You must to post comments
Showing 1 result
Your Answer

Please first to submit.