Just a quick textual overview in advance of the video: Essentially, it’s just a controller keyboard with a customized set of controls.
- a number of buttons (normal push-buttons and bigger “arcade-style” buttons) that simply send individual CC messages (value of 127 when pushed).
- 9 pots (7 o’clock to 5 o’clock with a little “stop” in the middle) - they also send individual CCs
- 10 faders that can each send four different CCs, depending on the “bank switches” on their left. So fader 1 will send CC10 or CC20 or C30… depending on the state of the bank switches. The bank switches can also be remote-controlled via MIDI - nice
- A display that can show content you send to it via sysex
- Pedal jacks for two switches and two continuous (expression) pedals
- The usual set of modwheel and pitch-bend
Nothing unusual, with the exception of the keyboard that can be switched (via MIDI CC) to two different modes
- Velocity mode: normal keyboard that outputs MIDI notes at different velocities. This requires keys to be pressed through two contacts (to measure the time in between and determine velocity)
- Organ mode: in this mode, MIDI notes are triggered with the first contact, and velocity 127 is always sent. With the triggering at the first contact, the “depth” you need to press the key to trigger the note is very shallow, allowing for great glissandos and percussive “dabs” like on a real Hammond
This ability to switch keyboard modes was one of my key motivations to start this project with Christian.
So how do I use it with Cantabile?
- Faders control levels (volume, reverb, delay, string layer) for upper and lower keyboard (two banks), plus act as drawbars (upper and lower - another two banks). Do the fader colors make sense now?
- 10th fader (red) acts as monitor volume control in all 4 banks - I always need that directly at hand
- Pots currently only act as master volume for keyboards and guitar - I’ll find uses for the rest of them
- the three pushbuttons above MW and PB act as octave switches (octave switching happens within Cantabile, not on the keyboard): octave down, up, reset
- the big red button on the top left is my panic button - it restarts the audio engine
- the eight buttons to the right of the faders are used to move between song states (previous, next, first) and to remote-control LivePrompter (previous, next song, go to the top of the song). Then I use one to toggle my VoiceLive effects remotely (better to talk between songs without delay-ay-ay) and the final one to toggle Organ Mode
- I use the display to show current song, current state and next state from Cantabile via SysEx. It also automatically displays the state of OrganMode and the CC value of the control I am moving
- The arcade buttons are used for the things I need to hit easily in the heat of the battle: next song state (red button), play/pause for LivePrompter, scroll up/down in LivePrompter, plus the upper four that I use to trigger samples or effects
I remote-control the Organ Mode from Cantabile on a song-specific (or even state-specific) base by sending CC messages to the keyboard via Song-OnLoad or SongState-OnLoad bindings.
That’s essentially it!
Now something I’d also like to share with you, since getting a new controller also made me re-think my Background Rack to fully abstract my setup from the controllers I use with it.
Beware: nerdiness and wizardry lie ahead - enter at your own risk…
To de-couple the output of my controllers from the setup of my songs, I have set up “routing racks” within my background rack that receive the “naked” MIDI stream from my various input sources (keyboards, controllers). Then I distribute this input stream to various “virtual” input ports via the Loopback feature. This way, I can freely assign any incoming CC value to whatever I need it to be within my setup, e.g. CC6 coming from my Kurzweil can be mapped to the same “internal controller” as CC11 coming from the Motif, CC26 coming from my LaunchControl or CC31 coming from my new toy. Or I can trigger samples with a drumpad (note) from one controller, and with a button (CC) from another.
I have set up multiple such routing racks for all my different input controllers, so I can change my physical setup and simply switch on the rack for the controller I currently use:
In this case, the Motif is currently not used, so the rack is off, but my Kurzweil (main piano keys) and the new “MagicKeys” are active and being routed, as well as my studio keyboard (MPK 249)
The routing rack then outputs into various loopback ports that then get used by my songs as inputs
Main Keyboard, Second Keyboard, Pedals, Drawbars are pretty obvious. BG Rack is a special port to deliver CC messages to racks in my songs used to control levels (main level, solo level, main reverb, solo reverb, …).
Here is a typical Cantabile song for me:
The Main Keyboard, Second Keyboard, Drumpads, Pedals, Faders get fed by the routing racks in the Background Rack. Also, the _MainVolume _SoloVolume, and MasterRack racks receive level control from the BG rack. Levels within the MainReverb and Solo DelVerb and the StringLayerRack (level, filter cut-off) can be controlled via BG Rack commands.
So much for the typical use of controllers (fader, pots) - but the BG Rack also provides standardized CC messages that get used in “trigger” bindings:
This allows me to map all kinds of buttons, pads, pedals or whatever on any of my input controllers to trigger my “standard” events like “next state”, “restart engine” or remote-controlling LivePrompter via MIDI
This makes integrating new controllers into my setup a breeze: I create a new routing rack and a new “physical” midi port for any new device, route the input from the controller to the routing rack, which then does all the conversion to send it to my standard internal plumbing. So no need to change my songs just because I bought a new controller.
Here’s a glimpse behind the scenes: this is the Bindings page of the routing rack for my new toy:
Enough wizardry for today - if I find the time, I’ll put some of this in a video, and it will all start to make sense - hopefully!
Cheers,
Torsten