I searched the forum and the documentation for info about using fmod ex on vista, but I couldn’t find anything.
The problem is that I don’t have vista installed myself yet, but that some users of my software notified me that directsound under vista was not working properly.
The error message was "Error creating hardware sound buffer." at the FMOD_System_Init call.
Here’s how my initialization looks like:
[code:184m4rnu]FMOD_System_SetOutput fmod1Handle, FMOD_OUTPUTTYPE_DSOUND
result = FMOD_System_SetDriver(fmod1Handle, fmod_OutputDriver)
result = FMOD_System_SetDSPBufferSize(fmod1Handle, fmod_BufferSize * (fmod_SamplingRate / 1000), 6)
FMOD_System_SetSoftwareFormat fmod1Handle, fmod_SamplingRate, FMOD_SOUND_FORMAT_PCM16, 4, 0, mixerQuality
FMOD_System_SetSpeakerMode fmod1Handle, FMOD_SPEAKERMODE_5POINT1
result = FMOD_System_Init(fmod1Handle, 16, FMOD_INIT_NORMAL, 0)
The only thing I need after that is to add a dsp to fmod’s main dsp, so I don’t think I even need or currently use any hardware channels.
Is there anything else I have to do to make this work in vista?
- Adion asked 11 years ago
Correct me if i am wrong Brett but Vista only allow software mixing because of it’s new audio stack except when using OpenAL or Asio driver output.
There is also another way to get hardware acceleration by setting the sound card in exclusive mode.
This [url=http://msdn2.microsoft.com/en-us/library/aa363225.aspx:1k03xwpm]link[/url:1k03xwpm] could be a workaround
We’re not supporting hardware acceleration in vista, and definitely not through directsound. Directsound is emulated, so thats all we’re relying on. All a ‘hardware’ buffer means is that it is creating a directsound buffer and not an fmod buffer.
I’ll just double check but we can probably remove any references to lochardware in the dsound api if the windows version is vista but our WASAPI interface is coming soon for proper vista support.
Dsound in vista is supposed to just ‘work’ so its not really our problem it’s vista’s problem.
Ok, I’ve just had a chance to do some testing myself on a vista 64-bit rc1 with AC97 onboard (nvidia nforce 3 drivers)
The problem seems only to occur when SetSoftwareFormat and SetSpeakermode are being called.
If both are not called, my program runs fine but with only stereo dsp apparently.
I’ve tried changing windows settings to 5.1, and the soundmax control panel also shows 6 channels, so it appears the driver should support this.
Is there a command so I can find out in advance how many channels are available, and is there anything else I can try to just get multi-channel sound working?
The issue that we can see is that you have the control panel set to a different speaker setting than was specified with fmod’s speakermode function. (we managed a repro because of this)
You said you did set them the same, but did you call setSpeakerMode before or after setSoftwareFormat? If you call it before, it will be overwritten by any non 0 value you specify in numchannels and it will go to FMOD_SPEAKERMODE_RAW which is wrong.
Ok thanks, I’ve asked the user to try the playsound fmod example first.
He says he has a Sweex 5.1 soundcard (SC002 I think) soundcard, and he is using the XP drivers, which appear to work in other programs.
By the way, the 3 sounds in the playsound example are all loaded with FMOD_HARDWARE, but the text says ‘press 2 to play … software mixing’, maybe a small mistake?
Please login first to submit.