Internal Routing - Tree manipulation

  • OK so I checked the documentation but I cant see how to do this(or if its even possible yet).

    In the Kontakt instruments I build I often use the busses to manage effects and their pairing to sounds, so I might have (say) 200 groups, each with a specific set of sounds in them. The user can activate(use) any of these up to some small limit (say 4). So they can choose any 4 sounds from all available sounds.

    When the user selects a sound its dynamically assigned to a bus, where a bunch of FX are laid out. This drastically reduces the number of FX i have to manage - sure I could put FX in EVERY one of the 200 groups, but it'd be very heavy.

    So clearly I can emulate busses with containers, I cant however see how I dynamically place say a Sampler(or a sub-container holding a sampler) inside one of these "bus containers" on the fly. I think what I'm asking for is the ability to re-parent a container. Is that even possible? If not is there some other way i can route a named Sampler(or better a sub-container) through a named container?

  • Hi Lindon,

    welcome to the forum. Basically HISE offers two different ways of achieving something like this:

    1. Use only 4 sampler modules and hot swap the sample maps (I don't know the specifics of your use case, but when you only need 4 sounds at once it could work like this). Then you can use a fixed FX routing and just replace the samples that are played (while everything else stays the same). I'd recommend this option if possible (mostly because it vastly reduces the complexity of the patch). Loading sample maps can be achieved with a scripting function.

    2. Use the multibus system to dynamically route the samplers through different FX chains. Currently you can use up to 16 channels, which makes 8 stereo FX busses. I'd need to add scripting control to this (but this is not too big of a deal and I wanted to do this at some point anyway).

    Although I would not recommend using 200 sampler modules at once - they all have a memory footprint, which is not too big but scales up with this amount.

  • Christoph,

    Actullly its "welcome back" I was on the old forum but it seems to have lost my user-id/password(channelrobot) so I had to re-register.

    So thanks for your (as usual) prompt reply.

    Great, yes option 1 should meet my needs in every situation I can think of right now, and I'm all i favour of simplifying the patch, plus I can add "bus level" scripting in only one place (well 4 places but you get the idea). But how quickly do the sample maps get loaded? It's not super-critical but it'd be nice if it was pretty quick (like sub-beat timing.

  • So welcome back 🙂

    Swapping samplemaps is about as fast as purging / unpurging. However I would not try to load them directly from a note on callback, because the loading is asynchronous.

    But if you select the sounds from the UI, you should get away without any noticable latency if you just swap a few samples.

Log in to reply