Programming Hierarchy

mschnell

2014-02-03 20:07:16

Hi MT experts,

I do know that with MT, you set up a "Translator" for any action you want to do on your MIDI data, and you can combine multiple Translators in a "Preset". Now you can have multiple presets (that all are loaded in RAM at the same time) in a "Project" and multiple projects can reside on your disk.

Now the hierarchy I want to use (in a project that I can load from disk) is like this:

Level 0: "common"
Here, I want to have a basic functionality that always is active and not affecting or being affected by the other levels (e.g. managing freely "real-time" changeable key transposition). This functionality would need several translators and several global variables.


Level 2: "composition"
This level would mainly define which "scenes" are selected by which incoming "program change" (-> "patch change") MIDI message. Moreover a defined scene should be selected when a "level 2" definition is switched to, and some global variables (such as the one that manages the key transpose) is assigned a defined value.

There should be multiple Level 2 "compositions", that can be selected by program change messages (say 17..32) from the master keyboard. (Of course the composition number is held in a global variable.)


Level 1: "patch"
A change of a patch is done by a "program change" message from the master keyboard (say 1...16). According to the currently active "composition", the patch is mapped to a "scene" and the according MIDI program change (and/or multiple other "cc") MIDI messages are issued to the virtual instruments.

A "scene" is defined by the current setting of program change (and other cc) MIDI settable states of the virtual instruments plus a certain state of several global variables (e.g. defining the routing of MIDI data to virtual instruments by means of setting the appropriate midi channel the instrument will adhere to. (More stuff to come once I add a Midi-"remote-Control" board to my setup.)


While I do suppose this is doable with MT, I am not sure how to best "map" my hierarchy to the hierarchy MT provides.

Of course it (e.g.) would be not very appropriate to copy all the Translators needed for my "level 0" to all MT "Presets" that might be a representation of my "Level 2".

Amy hints on that issue ?

Thanks,
-Michael

mschnell

2014-02-07 13:40:58

No ideas regarding this mission-critical "conceptional" question ?

-Michael

CreepyPants

2016-08-10 18:07:17

I realize your post is 2+ years old, but did you ever resolve this?

I'm at a similar stage with designing a larger Preset that encompasses several smaller bits into a hierarchical/selectable-via-MIDI Pgm Chg Preset.

mschnell

2016-08-10 22:07:12

I decided to use Reaper as a VST player instead of another VST hosting product that would have needed to be enhanced by the Translator, as it lacks the necessary Midi functionality. Now with Reaper I can do scripts ("JSFX plugins") that provide any Midi functions I can think of. This is extremely versatile but of course a lot less "easy to use" than working with the Translator.

-Michael

CreepyPants

2016-08-11 01:38:58

Understandable.
Thanks for your response!

florian

2016-08-11 10:30:30

Hi, this post from Michael has completely escaped our (Bome's) attention! sorry for that.

The way I would organize such a project is:
1) a "global" preset with level 0 functionality
2) for each composition or scene, create one preset
3) in each composition preset, create the necessary translators for patches

Alternatively, it can make sense to not put patch translators in composition presets, but create individual presets per patch, and access the composition information by way of global variables.

Of course, all this depends how different the compositions are, and how different each patch in a composition is. If completely arbitrary, then a scheme like above is appropriate.

And of course, in some cases, it will make sense for people with programming experience resort to other solutions when projects surpass a level of complexity.

Thanks,
Florian