I recently found that using FMOD_INIT_SYNCMIXERWITHUPDATE would nicely help me with my application. But as said in the documentation it is only supported by the following platforms: Win32/Wii/PS3/Xbox/Xbox 360
Is that the horrible truth ? Won’t it support Mac or Linux ?
If that is, why is there such a limitation ?
- ronan.fmod asked 10 years ago
Certain output modes work by polling our mixer thread regularily to keep their buffer of cached audio full, this adds latency. Other output modes like on Linux, Mac and Vista, have the hardware tell us when and how much data it needs, so we mix it on demand, resulting in lower latency.
Due to this difference FMOD_INIT_SYNCMIXERWITHUPDATE doesn’t work on all platforms (since we don’t control when the mix happens, the hardware does). It may be possible for us to expose this feature to more output modes in the future (which would result in higher latencies), but I don’t want to set a date on something like that at present.
this leads to another question:
When I apply a parameter on a DSP, when is it applied ? I mean taken into account in the audio process callback
does it also means that the mixer may process buffer length different than mixer buffer size on these platforms ?
- ronan.fmod answered 10 years ago
If you apply a parameter to a DSP it will take effect in the system right away, but you won’t actually hear the change until that mix is played.
For systems like that on Linux, Mac the hardware requests a certain number of samples and we deliver through a callback, this will mean you get the lowest latency between change and hearing it.
Other platforms buffer up a certain amount of data to account for the fact they are polled manually. You can tweak the amount of buffering done for all platforms with setDSPBufferSize.
Please login first to submit.