feat(data-only): global filter cutoff width drive

This commit is contained in:
L'électron rare
2026-06-26 10:05:00 +02:00
parent 088b233a48
commit 2a3fdb1d38
+15
View File
@@ -21,6 +21,7 @@
// -- Reset Synths d'une eventuelle relance -------------------------
~doRev !? { ~doRev.free };
~doFilter !? { ~doFilter.free };
~doMaster !? { ~doMaster.free };
~doMasterGroup !? { ~doMasterGroup.free };
@@ -37,6 +38,19 @@ s.waitForBoot {
Out.ar(out, dry + (wet * mix));
}).add;
SynthDef(\do_master_filter, { |out=0, cutoff=20000, width=1.0, drive=1.0|
var sig, mid, side; // all vars first (sclang rule)
sig = In.ar(out, 2);
sig = RLPF.ar(sig, cutoff.clip(80, 20000).lag(0.08), 0.7);
sig = (sig * drive.clip(1, 4).lag(0.05)).tanh;
// stereo width via mid/side
mid = (sig[0] + sig[1]) * 0.5;
side = (sig[0] - sig[1]) * 0.5 * width.clip(0, 1).lag(0.08);
sig = [mid + side, mid - side];
sig = LeakDC.ar(sig);
ReplaceOut.ar(out, sig);
}).add;
SynthDef(\do_master, { |out=0, gain=1.0, ceil=0.95|
var sig = In.ar(out, 2);
// Compression douce sur le bus master
@@ -55,6 +69,7 @@ s.waitForBoot {
// -- Lance le rack FX --
~doRev = Synth.tail(~doMasterGroup, \do_reverb,
[\in, ~doReverbBus, \out, 0, \mix, 0.4]);
~doFilter = Synth.tail(~doMasterGroup, \do_master_filter, [\out, 0]);
~doMaster = Synth.tail(~doMasterGroup, \do_master,
[\out, 0, \gain, 1.0]);