I’m moving from Fmod Ex. We used to specify 3D Spread of a sound by calling channel->set3DSpread.
It turns out that in Fmod Studio, if I call channelGroup->set3DSpread where that event has a stereo sound source, I’ll get an error “FMOD Error! (40) Tried to call a command on a 2d sound when the command was meant for 3d sound.”
What’s the proper way to set 3D spread for stereo sound source?
How does the low-level setMode work together with the high level Spatilizer DSP?
I tried to create a 3D event in Fmod Studio, and the Spatializer DSP is automatically added. Then I play that event and get its instance, and get the channel group by calling eventInstance->getChannelGroup(&channelGroup). Then I get mode by channelGroup->getMode(&mode). It turns out none of the flags is set in mode. However I do hear 3D spatialized sound.
Now if I call channelGroup->setMode(FMOD_3D), what will happen? Will the low-level 3D system overlap with the Spatializer DSP? Should I disable spatializer? Where should I set 3D attributes like min/max distance now?
3D spread is done a little bit differently in Studio.
Generally for most users, we would recommend using the Auto Envelopment mode on the Spatializer. If that doesn’t give you enough control you can set the Envelopment to user and adjust the Min Extent to give a very similar effect to 3D spread.
It seems the effect of envelopment in Studio is kind of different from the 3D spread in Designer. We tested it with a stereo sound where the sound in the two channels are quite different. In Fmod Designer, when we set 3D spread as 180, the two channels are quite spreaded almost the same as a 2D sound. However in Fmod Studio, even if I set Min Extent to 180 (and 360), and Sound Size to maximum, the two channels are still somehow mixed together and make the sound feel like emit from the center.
Why is there such behavior difference? Am I misunderstanding something?