DSP Network Setup for Selective Reverb

We’d like to have some advice regarding setting up a DSP Network for a specific scenario in our game.

The scenario is that we have multiple music tracks (each mapped to a channel) that play simultaneously and that can be faded in/out depending on the game action. Now we want to stop one (or multiple) of these music channels when something happens in the game. More precisely, instead of simply stopping a music channel we want to have a reverb tail that provides an interesting echo for that channel as opposed to, say, simply ramping down its volume.

After reading the documentation about DSP networks and effects, our impression is that we should utilize Send/Return nodes for this purpose. Similar to this example graph, we would create an SFX reverb node, connect that to a return node, and then feed the return node with, let’s say, a second of music from a send node once one of the music channels “dies”. Our assumption is that we would still get the reverb tail for this second of music even when nothing is sent to the return node anymore.

Would you say that this is the correct approach for our scenario? And should we really set up the SFX reverb node ourself or would there be a convenient way to harness the automatic node setup of System::setReverbProperties instead as advised in the DSP white paper?

Any comment is greatly appreciated. Thanks!


It sounds good to me! A reverb effect that’s playing out its tail will keep a return alive while it plays out a tail, even after the return has stopped receiving signals, so there shouldn’t be any problems with using this method.

Both methods could work, but personally I reccomend creating the return and reverb DSP yourself. System::setReverbProperties is designed for situations where reverb is applied globally, i.e.: when all or nearly all of your game’s audio is subject to the same reverb. In your case, however, you only want to apply reverb to your music and nothing else in your project, so creating a reverb just for the music makes more sense.

Great. Thanks for the feedback. Gonna try this out asap.