In this case don’t watch the video, I don’t show any internal code, the goal is to show how to create a complex GUI sequencer with FX with only a few lines of high level code
I used the renaming of controlNames, that’s the most easiest, quickest, cleanest solution =) Then I use Ndef(xx)[n] = \cloned_synthname
where the synthdef have a In.ar and XOut.ar using the \out argument like you instructed
cloneSynthDefWithIndexedArguments: { arg self;
var sdc;
var synthDef;
var suffix = self.index;
var synthDesc;
synthDesc = SynthDesc(self.synthName);
if(synthDesc.notNil) {
synthDef = synthDesc.def;
sdc = synthDef.deepCopy;
sdc.name = synthDef.name.asString ++ suffix; // no eff without asString!
sdc.allControlNames.do { arg cno;
if(not(self.excludedArgs.includes(cno.name))) {
cno.name = (cno.name.asString ++ suffix);
} {
// ("Skipped renaming" + cno.name + "in" + sdc).postln
}
};
sdc // return whole sd clone to be collect-ed
} {
Log(\Param).debug("InsertFx.cloneSynthDefWithIndexedArguments: no synthDef: %", self.synthName);
nil
}
},