I experienced really slow load of sample bank data from memory in my project and modified the event parameter sample to include error logging and “timing” of loading sample data.
The modified version can be found here : https://gist.github.com/anonymous/4d62c4c4147f30be470d.
It takes >20 seconds to get a bank into loaded state in a debug build but “instant” in release build. The debug build is using the ‘L’ versions of FMOD so that version can not be used (if you are not trying to find a bug). I also experienced stalls of >2 seconds in Studio:update(…) with the ‘L’ version. Luckily I found out that the ‘L’ version was the culprit when doing this example
When hooking up a error callback (to the low level system) it reports errors like :
FMOD ERROR [34] - An invalid parameter was passed to this function… [FMOD_ERRORCALLBACK_INSTANCETYPE_DSP 0x030B4D80] DSP::getDataParameterIndex(-2, 030B4C40:-1)
FMOD ERROR [33] - An invalid object handle was used… [FMOD_ERRORCALLBACK_INSTANCETYPE_CHANNELCONTROL 0x003E0005] ChannelControl::isPlaying(0306F5F7:false)
FMOD ERROR [33] - An invalid object handle was used… [FMOD_ERRORCALLBACK_INSTANCETYPE_CHANNELCONTROL 0x003E0005] ChannelControl::stop()
FMOD ERROR [33] - An invalid object handle was used… [FMOD_ERRORCALLBACK_INSTANCETYPE_CHANNEL 0x003C0005] Channel::getPosition(0306F664:0, 2)
What does that mean (what have I forgot to do) ?