Draw the two paths

Start with a short repeated sound and draw its route before connecting nodes. One branch goes through a dry gain to the master. Another goes through a send gain, an effect and a return gain to the same master. Label the three gains by their jobs. The send controls what enters the effect; the return controls how much processed sound reaches the mix.

Web Audio’s connect method supports branching from one node to several destinations and combining sources at a destination. That makes a parallel route straightforward to construct, but it does not decide the musical behaviour for you. Choose whether the effect branch should contain only processed sound or an additional dry component.

Begin with the return down and verify the dry path. Then mute the dry branch and listen to the effect alone. This isolates accidental doubling and makes the return’s character easier to judge. Restore the dry path only after both branches do what their labels suggest.

Play the send and the return differently

Feed one event into a delay or reverb, then reduce the send to zero while leaving the return audible. The existing tail may continue, depending on the effect. Now repeat the experiment by lowering the return instead. The audible result can be similar at first, but the internal state is different: in one case the effect stops receiving new material; in the other it may continue accumulating material you are temporarily hiding.

Make a short phrase around this distinction. Send only the final note into the effect, leave space for its tail, then reintroduce the dry source. In another version, keep feeding the effect while its return is low and reveal it later. Listen to whether the revealed material belongs to the current phrase or carries a useful memory of the previous one.

Control the combined level. Two correlated paths can reinforce or partially cancel depending on their timing and processing. Do not assume that equal knob positions mean equal perceived contribution. Compare at a comfortable output level, and make the wet branch easy to solo while developing the patch.

Smooth abrupt gain changes where necessary using the audio parameter’s scheduling facilities. MDN documents setTargetAtTime as an approach towards a target, governed by a time constant rather than a fixed completion duration. Choose a transition that suits the musical action and verify its feel; do not apply the same long smoothing to every control.

Make routing changes recoverable

Define bypass carefully. Should it remove the effect from the path, silence its return or crossfade towards the dry signal? Each choice handles tails differently. Use a name that describes the result, and test it while sound is already inside the effect. A bypass button that unexpectedly restores an old loud tail is difficult to trust.

Keep node creation and connection management separate from routine knob movement. Changing a gain usually does not require rebuilding the whole graph. Track the connections you create and remove them deliberately when replacing an effect. Repeatedly adding new branches without retiring old ones can produce confusing level and processing behaviour.

Test the route with a dry click, a sustained tone and a sparse phrase. These reveal different properties: timing, tonal interaction and musical space. Save a diagram with the implementation so that future changes preserve the meaning of send, return and master.

The finished route should support two questions with different controls: how much of this moment enters the space, and how much of that space is heard now? Once the distinction is playable, a modest effect can become a substantial part of the composition.

Take it into a session

Try this.

Build dry, send and return gains around one effect. Compare stopping the send with hiding the return, then compose a phrase that uses each action deliberately.

Listen back

  • Is dry audio being added twice?
  • Does bypass clear, hide or preserve the tail?
  • Which control decides what enters the effect?
Open the studio →