One Mod Matrix to Control Multiple Zones' Mod Matrixes

I have an instrument I’ve been building and I’m running into some trouble.

This instrument has 4 layers that consist of another layer in each with switchable zones(some layers have multiple zones). Since all of these layers are sharing a macro page I want to use only one Mod Matrix on the macro page to control all of the zones’ Mod Matrixes. I know this must be done through scripting and I’ve really been struggling at putting together the script necessary to achieve this.

Does anyone have any suggestions on how to procceed or can you point me in the right direction to achieve the functionality I’m looking for?

I’ll be more than happy to elaborate or clarify what I’m trying to do, if necessary.


Hi rmjmusic,

A good place to start would be to look at the the instruments like Hot Brass or Studio Strings.

Whether you need scripting for this depends on several things. You could just connect relevant modulation matrix parameters directly and change the scope to @type:Zone/… so that it affects all zones. If you want to limit the modulation matrix options to those relevant to your zones than you need to use scripting.

Using a single Mod Matrix on macro page to control all zones in several layers is not a problem. Just adjust the function so that it loops through all zones.

You said some of your zones are switchable. Do you use a sample selector to load layer presets? This can complicate things a bit because you need a way to copy and restore the modulation matrix parameters when loading new preset. Do you handle this from a single script module or each layer has its own module?

Few more things to think about when dealing with modulation matrix. When you choose a source in the zone editor the polarity is set automatically depending on the source. This doesn’t happen automatically when using the script. You have to set the Polarity parameter yourself. Special attention require modulation destinations related to pitch. When using the zone editor you can set the modulation amount in semitones (-60/+60) but under the hood it’s set as percentage. And the range is not linear so it’s not that simple to calculate. Steinberg’s instruments have a UI script that for the most part deals with pitch destinations so that you can also set the range in semitones on the macro page.

Probably more questions than answers but I would start with looking at Hot Brass or Studio Strings instruments.

Hi Misohoza,

As always, thanks for your reply!

I’m checking out the Hot Brass and Studio strings right now.

I’ve used the @type:Zone before but in my case, it seemed to only affect the first zone in the program tree and all the other zones remained the same when changes were made.

However, to answer your questions,
Yes, I’m using a 4 different Sample Selectors to switch the the corresponding layers. Each layer has its own call back script that is very similar to Skylab’s call back script. I realize that that specific call back script deals a lot with the handling of the Mod Matrix, but I guess this is where I’m getting a little confused on how to move forward.

I also have a table that limits what can be selected for the mod destinations incorporated in the script.

I was trying to make a single script at the top layer of the instrument that deals with just the mod matrix but this is where I’m having trouble.

Let me know if I can help clarify anything!

Again, thanks, Misohoza!