0
0

Hi, I’m trying to get FMOD to initialise to play 3d sounds.]

I can run the 3d sample, and it works, so I copied the code for the driver selection system from there into my own program as a starter. This works fine and reports 3D hardwareuntil FSOUND_Init is called, when checking the driver caps, and outputting the reults again, only software support is listed, and no 3d support.

Anyone seen this before, or know why it will be happening.

Another thing is that the channel FMOD reports to be playing on starts at 4096.

Running a soundblaster live value on WinXp under DX9 if that helps anyone.]

Cheers.

  • You must to post comments
0
0

Hmm, doesn’t seem to be a problem with my code.

I was trying to apply 3d listener and source positions to a tereo mp3, that didn’t seem to work, using a mono .wav file works fine.

The problem with FMOD reporting only software support after Init is called still stands though. I moved the code from the sample which reports the hardware driver caps support to later in the code, and it gives the same response.

The program I was writing was simply a tester program to make sure my object was working, so it’s running in a console app too, not likely to lose itself in one of those.

  • You must to post comments
0
0

{
unsigned int caps = 0;

    FSOUND_GetDriverCaps(FSOUND_GetDriver(), &caps);

    printf("---------------------------------------------------------\n");    
    printf("Driver capabilities\n");
    printf("---------------------------------------------------------\n");    
    if (!caps)
        printf("- This driver will support software mode only.\n  It does not properly support 3D sound hardware.\n");
    if (caps & FSOUND_CAPS_HARDWARE)
        printf("- Driver supports hardware 3D sound!\n");
    if (caps & FSOUND_CAPS_EAX2)
        printf("- Driver supports EAX 2 reverb!\n");
    if (caps & FSOUND_CAPS_EAX3)
        printf("- Driver supports EAX 3 reverb!\n");
    printf("---------------------------------------------------------\n");    
}

FSOUND_SetMixer(FSOUND_MIXER_AUTODETECT);

// ==========================================================================================
// INITIALIZE
// ==========================================================================================
if (!FSOUND_Init(44100, 32, 0))
{
    printf("Init: %s\n", FMOD_ErrorString(FSOUND_GetError()));
    return 1;
}

{
    unsigned int caps = 0;

    FSOUND_GetDriverCaps(FSOUND_GetDriver(), &caps);

    printf("---------------------------------------------------------\n");    
    printf("Driver capabilities\n");
    printf("---------------------------------------------------------\n");    
    if (!caps)
        printf("- This driver will support software mode only.\n  It does not properly support 3D sound hardware.\n");
    if (caps & FSOUND_CAPS_HARDWARE)
        printf("- Driver supports hardware 3D sound!\n");
    if (caps & FSOUND_CAPS_EAX2)
        printf("- Driver supports EAX 2 reverb!\n");
    if (caps & FSOUND_CAPS_EAX3)
        printf("- Driver supports EAX 3 reverb!\n");
    printf("---------------------------------------------------------\n");    
}

That’s the exact code in the console app, before the call to init, hardware and EAX2 support is registered, after the call to FSOUND_Init, only software support is picked up. The driver is set just before the first calls to find the caps, and it definately isn’t being changed between the calls to find the caps.

Don’t know what’s up with it, and it seems to be working 3D hardware, so it’s not a big deal for me, might explain things to other beginners who are expecting to have 3D sound supported, but FMOD is telling them they don’t after calling Init.

  • You must to post comments
Showing 2 results
Your Answer

Please first to submit.