@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();