Abstraction of MIDI Control Inputs

I have been reading every thread in the forum about how the gurus abstract the inputs, and I absolutely understand the concept of why… I’m just not seeing the where. Can one of you give me a push… and not off of the cliff. Even if is just a pointer to one of the threads I may have missed.

Thanks!

Rick

Which “Where” are you meaning?

(Who, What, When, Where, Why, How and Which all need addressing in more depth…) (I threw in “Which”.)

Do you mean “Where are you applying these abstracted controllers?”

Terry

Yeah… I didn’t 'splain that very well, did I. I guess that shows the depth of my confusion.

Before I start, my objective is to move 4 hardware synths into a Cantabile setup with 2 keyboard controllers, a handful of expression pedals and foot switches, and a small control surface for mixing (I’ll hit on that later.)

So… I see that you (as in the people that are using abstraction) are using different racks to handle the abstraction. I found a lot of info in this thread :

From what I’m reading, it looks like I should be creating two racks for each keyboard… one for notes and one for aftertouch, modulation and pitchbend. And then another for the expression pedals and foot switches. I also have an Icon iControl that I plan to use to adjust my Organ sim and overall mix. I am guessing that would go in it’s own rack also.

That part I get… I’m just not grasping how to get there. Are you sending ALL MIDI signals to ALL Input Racks, and then filtering the signals to only output what you want? And if that is so, how are you doing it?

Thanks!

Rick

Hey Rick,

I’ll just walk through a pretty standard song in my setup for you; I haven’t gotten around to making that video yet.

Here’s the big picture:

I play two keyboards:

  • the lower one (my main 88 key masterkeyboard) plays a layer of my main piano (Addictive Keys in MainPianoRack) and a hammond organ sound (VB3 in HammondRack). For these, I have a reverb send set up (MainReverb) and run everything through a common volume fader (_MainVolume).

  • the upper one (a 66 key unweighted keyboard) plays my solo organ (Blue3 in Organ_Solo), with a separate reverb plus a delay, all running through _SoloVolume.

  • Finally, there is my MasterRack - it contains master compressors, EQs and persistent volume control across songs - plus a rack that selects presets on my VoiceLive

Now for the fun part - the abstraction: for each keyboard, I have set up an individual rack that has separate outputs for notes, aftertouch, pitch bend and modulation:

Aftertouch is not connected in this song, but I think this shows the principle nicely: having the individual events nicely separated allows very easy and transparent routing - which also makes things a lot easier to debug than a long list of input ports with all kinds of filters.

My input ports list is completely empty, since all the input routing takes place inside the racks:


The rack only routes notes through to the outputs, makes sure that only MIDI channel 1 is forwarded (making sure that drum pads don’t get sent to the “notes” output.

Then there are bindings to send other events to their specific output ports:

For drum pads, I have a similar rack (DrumPads) that currently listens only to channel 2 of my upper keyboard (I’ve configured the pads to send on channel 2) and forwards the input to its output, re-mapping to channel 1 (I want all my inputs to be channel 1 for simplicity). The nice stuff about this: should I buy a new upper keyboard without drum pads, I can simply re-configure this rack to listen to a separate drum controller, and all songs will keep working.

Then there is the _Pedals rack: I found it useful to keep pedals separate from upper and lower keyboard - this way, I have my three tiers nicely separated; and I assign my pedals to either the solo sound or the main sound (or sometimes even both), depending on the song, so I find tying them to just one layer un-intuitive:

In this song, only Sustain is used, but the rack also has Expression (CC11) and Sustenuto (CC66) assigned on individual ports. Again: very transparent to assign and debug, should something not quite work as designed.

Last is my _Faders rack, which abstracts the knobs and faders on my masterkeyboards (some are actually assigned on both keyboards!):
image

Here are the internal workings of the _Faders rack:

This way I can forget about what controller the individual faders on my keyboards are assigned to and simply create routes to send CC7 or CC11 commands to whatever destination necessary. And again, should I buy a keyboard without faders or knobs, it would be easy to modify this rack to a separate controller box.

To complete the tour of the song:

  • _PB to Leslie: these are utility racks that convert pitch-bend commands to modulation (PB down → modulation 0; PB up → modulation 127). This makes my pitch bend wheel a leslie switch - pretty useful; now I can use the modwheel to control the volume of my hammond layer!

  • Mod2Drawbars: another utility rack that converts CC1 to a series of drawbar commands; allows you to smoothly blend e.g. between a typical rock organ setting (888000000) to full-out 888888888 and back.

That’s it - this is pretty much how all my songs are set up. Some contain more instrument racks in layers or splits; some have multiple parallel “Notes” routes set up that get activated / de-activated per song state, but this basic configuration lives through all songs.

Here is a more complicated one (Shine On You Crazy Diamond) with more complicated layering and a lot of switching of routes per song state, but as you can see, the principle is still exactly the same:

Hope this helps a bit!

Cheers,

Torsten

3 Likes

Just to answer that specific question: the input racks access the logical input ports directly, so no need to send anything to them. To do this, you need to enable showing environment ports in racks:

Now your input racks can get their MIDI input directly from the environment ports:

Cheers,

Torsten

2 Likes

For me it is important to divide the midi signals already at the entrance (MIDI Port settings / Options) directly so that I avoid later double values ​​to send.
It also saves many filters in the further process.

Example: Expression filtered out of the main Hardware Synth Signal (runs in local off) and put it in Midi Port Expression… also Pitch …and the rest

…for better overview

in connection with it I also work with embedded racks where I then select on the rackstates where exactly the expression signal is routed …

1 Like

Torsten,

Thank you!

So where do we set up the “Go Fund Me” page so you can start classes?

I seem to remember you had stated that you had a template you used as a starting point with your input and output racks. Would it be possible to zip a copy of that up and post it here? I know my ins and outs would be different, but it would probably make for a more detailed visual.

Thanks again!

Rick

Torsten,

I’m still confused. I see what you have going on in the first picture, but the second is puzzling. _MainKeyboard is a rack… but what are the items below, aka : Notes, Pitch Bend, Modulation? I played around for a couple of hours last night and I’m just not seeing how you created these routings.

Thanks!

Rick

Hey Rick,

Notes, Modulation, Pitch Bend and Aftertouch are MIDI output ports of the _MainKeyboard rack.

Right-click the rack, then select “Rack MIDI Ports…”
image

Now you can add and remove input and output ports. For my main keyboard rack, I’ve removed all default ports and simply added the ones I wanted:

image

Now you can use these ports to create routes from your abstraction rack:

image

And you can use them inside the rack as route or binding targets:

Hope this helps!

Cheers,

Torsten

1 Like

Torsten,

Yep! That is what I was missing. Hopefully tomorrow I can begin “abstracting!”

Thank you again!

Rick

Of course, more exploration brings more questions.

Are you making the input and output racks linked racks?

Thanks

Rick

Not sure which output racks you mean - do you mean the actual instruments or all my volume control and master racks?

But to answer the question: ALL my racks are linked racks. Since I use pre-loaded setlists, I want to avoid multiple loading of plugins and racks, so I create all my racks as linked racks.

Cheers,

Torsten

1 Like

Yeah… once again, I don’t ask the best questions.

I actually meant your input racks. I have been using the linked racks for my audio outputs.

Thanks again for everyone’s help!

Rick