Sidechain Compression in Tidal?

This may be redundant but I couldn't figure out if this is built into a compression effect, its own effect, or not implemented yet.

Anyone know how to sidechain compress in Tidal?


Not built into Tidal I don't think, but you can do by hacking SuperDirt a bit. See filtering-dirt-output.scd in the SuperDirt/hacks directory, there is a sidechaining example there.


Also maybe @eris can help, I just found this:

1 Like

Yes here's the file:

Note that these days d1 defaults to going to the first orbit, d2 to the second, and so on up to d12.


How about just regular compression controlled via tidal? Is it possible to write a synthdef that is a compressor on a channel?

oh yeah for sure, i've made one for FoxDot, i could change the SynthDef to be Tidal-compatible later today if you want to. In the meantime, this is how you would do it for FoxDot:\comp,
{|bus, comp, thresh, atk_time, rel_time, upcomp, makeup|
var osc;
osc =, 2);
osc =, osc, thresh: thresh, slopeAbove: (1/comp), clampTime: atk_time, relaxTime: rel_time, mul: makeup, slopeBelow: (1/upcomp));, osc)}).add;

That would be awesome! How do you specify which track the compression is on? Or is it a compressor on the master?

There's info about adding a 'global' compressor here:

'global' in superdirt means per-orbit, so it would compress each channel separately.


Is it possible to do sidechain without using d1/d2 (in orbits) but using patterns,like p "bd", p "bass"?

you can specify the pattern's orbit doing # orbit 2 for example

I can't use orbits, because I'm using orbits for multichannel out.

You could just add more orbits for side chaining?

I tried to use something like d17 or d18 but getting error "
Variable not in scope: d17 :: Pattern ValueMap -> t"

They're defined in your BootTidal.hs, you can see there that only up to d12 are assigned orbits. You can edit that file to add more