Skip to content

Share an Effect with a Send

A send adds a copy of a track to another track, at a level of its own, while the track keeps playing to its output. Put the shared effect on a return track and send to it. The Audio Graph explains the model.

Put the effect on a track of its own, then send each source to it with set_send(dest, amount):

use "std/instruments" { Sampler, Kit };
use "std/effects" { Delay };
use "std/signals" { automation };
let delay_bus = AudioTrack("delay_bus");
delay_bus.set_effects(#[Delay("delay", 0.3, 0.5)]);
let perc = AudioTrack("perc");
perc.set_instrument(Sampler(Kit("CR-78")));
perc << [rs _ cl _];
perc.set_send(delay_bus, 0.3);
PLAY;

The amount runs from 0 to 1. Send the other tracks the same way; one track can send to several returns, each at its own level.

Address a send that already exists with send(dest):

perc.send(delay_bus).set(0.5);

Send a signal or a pattern to the send:

perc.send(delay_bus) << automation(#[0, 0.3], #[8, 0.8]);

set_send takes one as well, in place of the number: perc.set_send(delay_bus, [0.2 0.6]).