In Unity's audio mixer
the send and receive effects
give us a great deal of control
over how our signals are routed
through the mix and particularly to effects.
In this scene we have four game objects,
each with an audio source and an audio clip
loaded that's a loop of a music track.
In our mixer we've setup two effect return tracks.
These are normal groups which have respectively a reverb
on reverb return and an echo effect
on echo return.
Currently they are not receiving
signal from any other the other tracks in the mixer.
But if we want to get a signal to them
we can do that using the send and receive effects.
Let's start with our arpeggio sound,
which sounds like this.
What we're going to do is that we're going to use
a send effect to split the signal so that our
arpeggio will continue to be routed
through the master output but will
also have a duplicate of it's signal
with a controllable volume sent
in this case to the reverb return.
So first we're going to go to our reverb return track
and we're going to setup our destination, our receive.
We're going to choose Add - Receive.
Now it's important to note that the
sequence of these effects in the channel strip
is very important.
In this case the signal from the receive effect is
coming in to the chain after the reverb,
meaning that it's signal will not be processed
by the reverb effect.
What we're going to do is move the reverb down
so it's in the chain after the receive.
Now we're going to go to our arpeggio and we're going to
apply a send effect, we're going to choose
Add - Send.
Now we'll see over in the inspector
that we have a choice for what bus to route the send to.
The term bus comes from the world of
audio mixers in which a bus can be used
to route signal from one channel
to another or two multiple other channels.
In this case the choice is between
routing to a receive effect
or to a duck volume effect.
For more on duck volume effects
check out the information linked below.
We're going to choose our reverb return receive effect.
Now we'll notice that a send level becomes visible.
This is how much duplicated signal
is being routed to the receive effect.
We're going to start playing and turn that up
so we can hear the effect happen.
And you can hear when I stop it we get
that nice reverb tail
tailing off there because now the arpeggio sound
has been routed through the receive effect,
through the SFX reverb plugin
and that's creating that nice cycle acoustic impression
of our sound being played in a large space.
What reverb effects do is they simulate
the reflections of sound
bouncing off of surfaces and returning to the listener
in an acoustic space.
Our synthesiser sound never occurred in an acoustic
space so it has no natural reflection
and we're adding those using the reverb effect.
It's worth noting when we work with
reverb effects via sends and receives
that the dry level should be turned all the way down
so that we don't duplicate the unaffected signal.
It's also worth noting that the order
of the attenuation and the send in our group is important.
Currently the attenuation effect is before the send,
meaning if we turn down volume
using the attenuation effect the signal will stop
passing to the send, let's give that a try.
We can hear the trail trails off
and the sound ends.
If we reorder these effects we'll get a different effect.
We're going to place the attenuation after the end
and what you'll hear is that by
placing the send before the attenuation effect
the send is not going to have it's volume turned down,
it will still receive volume
before the attenuation turns the signal down.
The result is that the send is going to continue sending
signal out even though the main channel is turned off.
What we can hear in this case is that whether or not
the volume is turned down the send is still
getting it's volume out to the reverb return
and not what we're hearing is only
the wet signal of the reverb
coming back in to the main mix via the reverb return.
This can be interesting for some non-traditional effects
but typically you're going to prefer
attenuation followed by your send.
It's also worth noting as I mentioned earlier
that if the receive effect is after,
for example the reverb in this case,
we're going to receive no effect, so it's important for any effects
that you want to process your signal to be
placed in the chain after the receive effect.
Now one of the other major uses of sends
is that we can use it to process
multiple channels with the same effect.
So in this track we also have
a percussion element.
And what we can do, by adding a send
to that and routing that also to the reverb,
we can add reverb, the same reverb
to both of our tracks.
So we can hear this gives us a very
consistent psycho-acoustic impression,
which is especially important if we're aiming for realism.
To have things passing in to the same reverbs
so that they feel like they're emanating in the same environment.
It's also possible to use send and receive effects
to route one signal to multiple effects.
What we're going to do is we're going to send our
arpeggio additionally to our
echo effect on our echo return group.
We're going to add a receive effect
to the echo return and move it up in the
chain so that it's signal will pass through the echo.
Then on the arpeggio we're going to add a send
and assign it's output to
the echo return receive.
once that's assigned we can test.
And you can hear with that nice tail
that our arpeggio is now being passed to both
the reverb return and the echo return
groups that we've created here via the two receive effects.
What's great about this setup is that we can
control the levels individually using the send volumes
and we can really achieve a lot of flexibility
in our mix this way.
It's also worth noting that this is a common
audio industry best practice because
processing audio signals, especially with reverb can
be very processor intense.
Having a reverb on each of these tracks
could have a serious CPU resource cost at run time.
So minimising our use of effects
by sending multiple effects to the same
reverb on a return track
is going to save us some CPU
resources that we'll probably need elsewhere in our game.