I’m having the following DSP net (wet and dry path):
channelhead ——– mastergrouphead
…and code like this:
FMOD::DSPConnection* pDry = 0;
FMOD::DSPConnection* pWet = 0;
FMOD::DSP* pDSPHead = 0;
FMOD::DSP* pTemp = 0;
channel->getDSPHead( &pDSPHead );
pDSPHead->getOutput( 0, &pTemp, &pDry );
dspreverb->addInput( pDSPHead, &pWet );
pDry->setMix( 0.0f );
pWet->setMix( 0.0f );
channel->setVolume( 1.0f );
The problem is that after this the audible volume is 1, not 0 as I would expect. As the documentation of setMix() says: "…input is [b:2hu52323]scaled[/b:2hu52323] by this value before being passed to the output." Now it seems that setVolume() somehow overwrites the mix values.
If I’m creating a separate channelgroup and adding wet/dry paths to its dsp head instead of channel’s dsp head, the volume is silent. But, do I really have to use the channelgroup to achieve that? Or am I misunderstanding something?
And one more note: if the sound is a 3D sound, it seems that setMix() affects only the wet mix, to dry mix it doesn’t have any effect.
- outi asked 10 years ago
- You must login to post comments