# MPE with Multi instrument in Kontakt



## cpaf (Mar 11, 2020)

Hi all! 

I'm making a simple kontakt instrument for a composer/performer that use a Roli Rise 49. I'm doing the multi-instrument thing with one instrument per channel for mpe-capabilities. 

I am making an interface with a few controllers like reverb, filtering and a modulation matrix by using menus. My question is: If I change any of these in the first of the instruments of the Multi can I then have it change for all of the remaining instruments too? I don't want one reverb setting for each channel and I don't want to have to adjust on all of the instruments in the Multi (im working with 10 voices of polyphony) 

Best Jonas


----------



## EvilDragon (Mar 11, 2020)

Best would be to use the effects directly on the outputs then, in Output section... This is also stored in the multi. It will save you the CPU and memory, since you can only load one reverb/delay, instead of 10x each.


----------



## polypx (Mar 11, 2020)

The only way to get all the instruments to "edit" together in a multi is to use some kind of MIDI CC assignment for each of the controls... and then to send that CC on all channels from a multi script.

Depending on the complexity of your instrument, an alternative would be to build it with groups for each MIDI channel , then you can have your editor work normally and one set of insert/send effects. Then you set your MIDI input to "Omni + Groups". This isn't always easy though, it depends how many groups you need and how they are being used for a single instance... doesn't always scale up easily.


----------



## EvilDragon (Mar 11, 2020)

polypx said:


> The only way to get all the instruments to "edit" together in a multi is to use some kind of MIDI CC assignment for each of the controls... and then to send that CC on all channels from a multi script.



You could also use NRPN for 14-bit precision, but this requires tweaking of the instrument's script so that it executes the relevant engine pars/functions and updates value of UI control for each of the parameters you want to globally affect.


----------



## cpaf (Mar 11, 2020)

EvilDragon said:


> Best would be to use the effects directly on the outputs then, in Output section... This is also stored in the multi. It will save you the CPU and memory, since you can only load one reverb/delay, instead of 10x each.


Hm thats a good idea! Though, I don't seem to be able to modulate any of the parameters of the effects on the output bus?

And I also can't find out how to access these and set their parameter - is it $NI_BUS_OFFSET? (p 188 in the manual)


----------



## EvilDragon (Mar 11, 2020)

Yeah you cannot unfortunately control FX in Output section via MIDI CC, KSP or host automation.


----------



## cpaf (Mar 11, 2020)

polypx said:


> The only way to get all the instruments to "edit" together in a multi is to use some kind of MIDI CC assignment for each of the controls... and then to send that CC on all channels from a multi script.
> 
> Depending on the complexity of your instrument, an alternative would be to build it with groups for each MIDI channel , then you can have your editor work normally and one set of insert/send effects. Then you set your MIDI input to "Omni + Groups". This isn't always easy though, it depends how many groups you need and how they are being used for a single instance... doesn't always scale up easily.



Some kind of MIDI CC - would that include the ability to have the velocity and pitch bend messages behave normally with the Rise 49?

The other suggestion: Well this certainly sounds enticing because then I wouldn't have to have a multi instrument but could have a regular nki. 
The instrument is fairly simple with only two articulations and only a few dynamic layers but with 10-voice polyphony. 

If I understand you correctly, it would mean copying the main group 9 times for 10 voices. That would mean having 10x times the normal sample amount too? I am a bit concerned about the ram footprint then


----------



## cpaf (Mar 11, 2020)

I can add that I also plan on having an AET Filter for velocity - though if the processor requirement is too large I will probably try some equal power volume modulation


----------



## EvilDragon (Mar 11, 2020)

If you load one sample 10x times it doesn't take up that much more RAM, it is referenced 10x but it only takes up RAM once. However, groups, zones and FX/filters loaded will take up additional resources.


----------



## cpaf (Mar 11, 2020)

EvilDragon said:


> If you load one sample 10x times it doesn't take up that much more RAM, it is referenced 10x but it only takes up RAM once. However, groups, zones and FX/filters loaded will take up additional resources.



Yeah so even if it is the same e.g. 40 samples repeatedly used in all the 10 groups (so 400 samples total) they will have to be loades as 400 (just to be wholly certain I understand you correctly - or is it the opposite that they only will be loades 40 times )

Edit: in short - are they loaded 40 times and referenced 400 times or loaded 400 times? Or did you mean that the simple presence of 10 groups and 400 zones instead of 1 group with 40 zones will take noticeable additional processing?


----------



## EvilDragon (Mar 11, 2020)

Each sample only gets loaded once within an instance of Kontakt. Even if multiple separate instruments use it.


----------



## polypx (Mar 11, 2020)

If your instrument is that simple, I'd definitely suggest get it working in a single NKI.

Build it how you want on one channel first... then copy those two groups 9 times for 10 poly. You'll need to be careful setting up the group MIDI channels, as well as referencing the groups in your GUI editor... but it's still better than using a Multi imo

EDIT It's true AET can get processor intensive. See how it behaves, you can always turn it off on all groups at once if it's too much.


----------



## cpaf (Mar 12, 2020)

polypx said:


> If your instrument is that simple, I'd definitely suggest get it working in a single NKI.
> 
> Build it how you want on one channel first... then copy those two groups 9 times for 10 poly. You'll need to be careful setting up the group MIDI channels, as well as referencing the groups in your GUI editor... but it's still better than using a Multi imo
> 
> EDIT It's true AET can get processor intensive. See how it behaves, you can always turn it off on all groups at once if it's too much.



Ok ill try that as it definitely seems the easiest way to do what we want for now! (does Kontakt ever get MPE support...) I will have to look into the group MIDI channels stuff and how to reference them in the GUI Editor (I use Creator Tools for the layout). But I might have to bug you a bit how it works if I run my head aginst the wall too many times! Hope its okay


----------



## polypx (Mar 12, 2020)

I don't think you can access the group MIDI channel from KSP, but what I do is have 16 copies of all groups (set the group MIDI channels in the normal Kontakt editor, Source module), so no matter what MIDI channel the user's device is sending, there is a group ready to respond.

Once those are set up though, you don't need to access the MIDI channels from your front panel... you just need to make sure all your other stuff (filters, or whatever) are editing the correct set of 16 groups.


----------

