The Input Transformer can do all sorts of useful things to incoming MIDI signals.
Most Cubase users will know of the Logical Editor, which is an amazingly powerful tool for transforming MIDI parts you’ve already recorded, but the Pro edition of Cubase also includes the Input Transformer. This is a more streamlined tool that operates in real time on incoming MIDI data and it’s capable of performing some very useful tricks. In this article, I’ll walk you through some simple examples that demonstrate the possibilities.
DIY Switch Builder
Many sample libraries have the ability to keyswitch between different sounds (for example, string section performance articulations). But for those that don’t, you can turn to the Input Transformer. The main screenshot shows an example which switches between different sounds in the first three channels of an instance of HALion Sonic SE (HSSE). By default, these sounds respond to MIDI channels 1, 2 and 3, respectively. I’ve constrained the MIDI note range to C1‑G8 for each sound, so as to free up the MIDI notes below C1 for use as DIY keyswitches. Also note the instance of the MIDI Monitor plug‑in that I’ve placed in the track’s MIDI Insert panel; this lets you see, as you experiment, exactly what MIDI data is reaching HSSE.
To access the Input Transformer click on the ‘squiggly arrow’ button in the top‑most Inspector panel, and you’ll see three options: Off, Global and Local. Global means the Input Transformer actions you create will apply to the incoming data on all the project’s MIDI and Instrument tracks. With Local, selected here, only the current track’s MIDI input will be affected. The Input Transformer window looks similar to the Logical Editor: in an upper Filter Conditions panel you specify which MIDI events you want to trigger an action; and, beneath, an Action List panel specifies what actions will be performed when those MIDI events are detected. The four Module tabs, each activated by a small ‘power’ button, allow you to configure up to four independent Input Transformer setups, all of which operate on the same input signal.
Some virtual instruments offer velocity‑based sound switching... and your DIY keyswitch can achieve the same thing for instruments that lack this feature.
Assuming your external MIDI keyboard is set to transmit on MIDI channel 1, the instrument in the HSSE’s first slot will be the default sound. In the main screenshot, though, you can see how I’ve set up Module 1 so that when you press a keyswitch the incoming notes are assigned to MIDI channel 2 — so HSSE’s second instrument plays instead. In the upper Filter Conditions panel, the Input Transformer is instructed to look for the MIDI note D0 (the Last Event is Equal to note 26/D0) and to understand that the filter condition is still being satisfied while the ‘Note is playing’ (ie. until you release the note). The lower Action List panel is configured so that when the Filter Conditions are met (ie. you’re holding down note D0) the incoming data’s MIDI channel is changed to 2. Thus, any MIDI notes that arrive while D0 is being held down are assigned to MIDI channel 2. So in this example your keyboard’s D0 becomes a non‑latching keyswitch that accesses the Synth Pizzicatos (HSSE slots), but switches back to the default Ensemble Strings patch in the first slot upon release.
The Module 2 settings are identical, except that MIDI note E0 is the keyswitch, and it reassigns notes to channel 3. You could set up Modules 3 and 4 similarly so this approach offers you the ability to switch between up to five different instruments or articulations, including the default one.
Some virtual instruments also offer velocity‑based sound switching, whereby different MIDI note velocities trigger different sounds, and your DIY keyswitch can achieve the same thing for instruments that lack this feature — you just need to make some small tweaks to the Input Transformer’s Filter Conditions section, and the second screen shows what’s required. As before, the default sound is on channel 1. The second screenshot shows what’s required and, again, a single condition is specified within the Filter Conditions panel. This time, it looks to see if the incoming MIDI note velocity is larger than 64 (you can set this to whatever velocity value you prefer). If this condition is met, then the Action List commands are executed. So, when a MIDI note arrives with a velocity greater than 64, the MIDI channel is switched to channel 2 before the data is passed on to the virtual instrument.
As seen in the image, Module 2 is also active. The entries in this module are identical to Module 1, but the threshold velocity is set to 100 and the MIDI channel set to channel 3. The combined result of both modules is a three‑way, velocity‑based, switching between MIDI channels 1 (velocity 0‑64), 2 (velocity 65‑100) and 3 (velocity 101‑127). It’s very simple, but it’s effective.
Of course, the Input Transformer can be used with more than just MIDI notes, velocities, or channel numbers — it can also be used to convert any MIDI data into anything else. Another simple example that demonstrates this pretty well is identifying a specific MIDI CC number and changing it to a different CC number or, if you prefer, into a different sort of continuous MIDI data entirely.
One such transformation might be to turn the Mod Wheel data (MIDI CC1) into Aftertouch data (in this case, strictly speaking, it will be Channel Pressure; the same Aftertouch value will be sent to all notes). This could be useful if you’re trying to get the most from a virtual instrument sound that responds to Aftertouch, but don’t have a keyboard that offers Aftertouch, or if its Aftertouch capability is less than smooth (as, in my experience, is sometimes the case with compact MIDI keyboards of the sort you might use when travelling). Provided that the keyboard offers some sort of CC data control — a Mod Wheel is the most likely offering, even on small keyboards — then the Input Transformer can come to the rescue.
The final screenshot, above, shows the Input Transformer settings that are required to achieve this. Hopefully you can see that the Filter Conditions panel now contains two conditions, along with an ‘And’ entry in the final ‘bool’ column. The conditions are set so that incoming MIDI is identified for transformation if it is, first, a controller message and, second, its CC number is 1 (by default, the Mod Wheel transmits as MIDI CC1). Only if both of these conditions are met will the Action List transform the CC1 data into Aftertouch data before then transmitting the event to the virtual instrument. Obviously, with some slight tweaks to the Action List panel, you could target a different parameter (for example, another CC number) with your Mod Wheel CC1 data.
Input Transformer For Dummies?
A couple of points are worth making to bring this gentle introduction to the Input Transformer to a close. First, once you’ve designed an Input Transformer configuration, it’s worth saving it as a preset (to add to those already supplied by Steinberg), so you can recall it later.
Second, try not to be put off by the rather opaque nature of some of the Input Transformer’s settings. In particular, the meaning of Value 1, Value 2 and Value 3, seen in the column pop‑up menus, can leave you scratching your head. These refer to different parameters depending on whether you’re targeting MIDI notes, CC numbers or something else. For instance, in our final example, in the second line of the Filter Conditions panel, I had to select Value 1 in the first column’s pop‑up menu. There is no ‘MIDI Controller Number’ entry in that menu, but that’s what Value 1 represents when the ‘Type is’ is set to Controller in the first line.
This sort of thing can be difficult for some people to get their head around, and is perhaps the thing that new Input Transformer or Logical Editor users find most confusing. While the Cubase Pro Operational Manual PDF has some helpful information, I keep hoping that, one day, a Logical Editor guru at Steinberg will fully document the various options! This would undoubtedly enable more users to benefit from the vast potential of the Logical Editor and Input Transformer.