@Christoph-Hart This is sick! Building redundant processes is a breeze now.
// This class is a helper tool to programmatically build up the module tree const var b = Synth.createBuilder(); inline function createDrumSampler(samplerName, samplerNumber) { local sampler = b.create("StreamingSampler", samplerName + "_" + samplerNumber, 0, b.ChainIndexes.Direct); local directGain = b.create("SimpleGain", samplerName + "_" + samplerNumber + "_Direct", sampler, b.ChainIndexes.FX); local monoGain = b.create("SimpleGain", samplerName + "_" + samplerNumber + "_Mono", sampler, b.ChainIndexes.FX); local ohGain = b.create("SimpleGain", samplerName + "_" + samplerNumber + "_OH", sampler, b.ChainIndexes.FX); local roomGain = b.create("SimpleGain", samplerName + "_" + samplerNumber + "_Room", sampler, b.ChainIndexes.FX); return { sampler: sampler, directGain: directGain, monoGain: monoGain, ohGain: ohGain, roomGain: roomGain }; } // Usage example: const var kick1 = createDrumSampler("Kick", 1); const var kick2 = createDrumSampler("Kick", 2); const var snare = createDrumSampler("Snare", 1); const var tom1 = createDrumSampler("Tom", 1); const var tom2 = createDrumSampler("Tom", 2); const var tom3 = createDrumSampler("Tom", 3); const var floor1 = createDrumSampler("Floor", 1); const var floor2 = createDrumSampler("Floor", 2); // This needs to be called at the end so it sends a rebuild message to the UI b.flush();