Hi everyone, I was wondering if it was possible to obtain a single synthdef from these two, which affect different delay parameters. From the first I would be interested in maintaining the ping pong delay effect obtained with LocalOut, while from the second I am very interested in the decayT parameter, which is not present in the first. is there a way to have a single synthdef for both? THANK YOU SO MUCH!!!
(
// -----------------------------> Synth input
SynthDef.new(\mic, {arg inBus=0,outBus=0,amp=0;
var sig;
sig = SoundIn.ar(inBus) * amp.lag(0.02);
sig = LeakDC.ar(sig);
Out.ar(outBus,sig)
}).add;
// -------------------> Synth router
SynthDef(\router, {arg inBus=0, outBus=0, fadeT = 1;
var sig, init, gate;
sig = In.ar(inBus,1);
init = Impulse.kr(0);
outBus = K2A.ar(outBus);
gate = HPZ1.ar(outBus).abs > 0;
Out.ar(outBus,
sig * EnvGen.ar(Env([0,0,1], [0,fadeT],\cub),gate+init));
Out.ar(DelayN.ar(outBus, fadeT, fadeT),
sig * EnvGen.ar(Env([0,1,0], [0,fadeT],\cub),gate));
}).add;
)
// -----------------------------> Bus e Gruppi
(
~micBus.free;
~delBus.free;
~micBus = Bus.audio(s,1); // Bus Microfono
~delBus = Bus.audio(s,1); // Bus Delay
~micGrp = Group.new; // Gruppo sources
~fxGrp = Group.after(~micGrp); // Gruppo elaborazioni
a = Synth(\mic, [\inBus,0, \outBus,~micBus,\amp,1], ~micGrp); // Sig in
b = Synth(\router, [\inBus,~micBus, \outBus,~delBus, \fadeT, 0.5], ~micGrp, \addToTail);
)
// First Synthdef
(
SynthDef(\del_2, {arg inBus=0, outBus=0, maxdel=2, del=0.5, fbk=0.0,
amp=0, gate=0, fade=0.2, done=2;
var in, local, sig, dly, env;
in = In.ar(inBus);
local = LocalIn.ar(2) + [in, 0]; // Ingresso interno dual mono (per feedback)
dly = DelayL.ar(local, maxdel, del,1 );
dly = LeakDC.ar(dly);
env = Linen.kr(gate,fade,1,fade,done);
LocalOut.ar(dly.reverse * fbk); // reverse = ping pong effect
Out.ar(outBus, local * env * amp);
}).add;
)
c = Synth(\del_2,[\inBus,~delBus,\outBus,0, \amp,1,\fade,0.5, \del, 0.8, \fbk,0.2, \gate,1],~fxGrp); // Delay
c.set(\del,0.3);
c.set(\fbk,0.6);
c.set(\fbk,0.9);
c.set(\fbk,0.1);
c.set(\fbk,0);
c.set(\gate,0);
// Second Synthdef
(
SynthDef(\del_3, {arg inBus=0, outBus=0, maxdel=10, del=0.5, decayT=1, mix=0,
amp=0, gate=0, fade=0.2, pan=0, done=2;
var in, sig, dly, pann, env;
in = In.ar(inBus);
dly = CombL.ar(in, maxdel, del, decayT);
env = Linen.kr(gate,fade,1,fade,done);
sig = LeakDC.ar(dly); // Per fbk lunghi
sig = XFade2.ar(dly, in, mix) * env * amp;
pann = Pan2.ar(sig, pan);
Out.ar(outBus, pann);
}).add;
)
c = Synth(\del_3,[\inBus,~delBus,\outBus,0,\amp,1,\fade,0.5, \decayT,2, \gate,1],~fxGrp); // Delay
c.set(\decayT,7.6);
c.set(\del,0.5,\mix, -1); // solo dly
c.set(\del,0.5,\mix, 0.5);
c.set(\decayT,10);
c.set(\decayT,0);
c.set(\gate,0);