# How to replace the built in reverb with another effect

**URL:** <https://qa.fmod.com/t/how-to-replace-the-built-in-reverb-with-another-effect/11800>\
**Category:** FMOD Engine\
**Created:** [January 18, 2015, 11:09pm UTC](https://qa.fmod.com/t/how-to-replace-the-built-in-reverb-with-another-effect/11800 "2015-01-18T23:09:15Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![brett](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/brett/32/261_2.png) [@brett](https://qa.fmod.com/u/brett)\
**Post date:** [January 18, 2015, 11:09pm UTC](https://qa.fmod.com/t/how-to-replace-the-built-in-reverb-with-another-effect/11800/1 "2015-01-18T23:09:15Z")

</div>

System::setReverbProperties has the advantage that it connects all channels automatically and disconnects automatically when the channel stops.

If I want to change the internal reverb with another effect how do I do it?

---

<div class="post-metadata">

**Author:** ![brett](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/brett/32/261_2.png) [@brett](https://qa.fmod.com/u/brett)\
**Post date:** [January 18, 2015, 11:10pm UTC](https://qa.fmod.com/t/how-to-replace-the-built-in-reverb-with-another-effect/11800/2 "2015-01-18T23:10:44Z")

</div>

If you wish to use a different effect with this functionality, say FMOD’s convolution reverb, or echo, or even a lowpass filter, use the following code

```
    {
        FMOD::ChannelGroup *mcg;
        int numinputs, count;
        FMOD::DSP *dsphead, *dspreverb;
        
        result = gSystem->getMasterChannelGroup(&mcg);
        ERRCHECK(result);

        result = mcg->getDSP(FMOD_CHANNELCONTROL_DSP_HEAD, &dsphead);
        ERRCHECK(result);

        result = dsphead->getNumInputs(&numinputs);
        ERRCHECK(result);

        for (count=0; count < numinputs; count++)
        {
            FMOD_DSP_TYPE type;

            result = dsphead->getInput(count, &dspreverb, 0);
            ERRCHECK(result);

            result = dspreverb->getType(&type);
            ERRCHECK(result);

            if (type == FMOD_DSP_TYPE_SFXREVERB)
            {
                result = dsphead->disconnectFrom(dspreverb);
                ERRCHECK(result);

                result = dsphead->addInput(myeffect)
                ERRCHECK(result);

                result = myeffect->addInput(dspreverb);
                ERRCHECK(result);

                result = dspreverb->setBypass(true);
                ERRCHECK(result);

                result = myeffect->setActive(true);
                ERRCHECK(result);
            }
        }
    }

```

This code will insert your effect after it in the signal path, and disable the reverb.

If you want to post-process the reverb, you could use this code as well, just don’t bypass it.
