We need “code-able” MIDI controllers!

All MIDI controllers for sale are rubbish!


OK, here comes a rant. I’ve been working on two Arduino-based MIDI controllers in order to try out a few ideas for real time control. I’m using homebrew microcontrollers because I need the flexibility offered by code in order to prototype these ideas.

None of the commercial available MIDI controllers from Novation, Korg, AKAI, Alesis and the rest of the usual suspects support user coding or true executable scripts. Nada. I would love it if one of these vendors made a MIDI controller with an Arduino-compatible development interface. Connect the MIDI controller to a Mac or PC running the Arduino IDE, write your code, download it, and use it in real time control heaven! Fatal coding mistakes are inevitable, so provide an “Oops” button that automatically resets program memory and returns the unit to its factory-fresh state.

Commercial MIDI controllers have a few substantial advantages over home-brew. Commercial controllers are nicely packaged, are physically robust and do a good job of integrating keyboard, knob, slider, LED, display, etc. hardware resources into a compact space. Do I need to mention that they look good? Your average punter (like me) stinks at hole drilling and chassis building.

Commercial controllers, on the other hand, stink at flexibility and extensibility. Sure, the current crop of controllers support easy assignment of standard MIDI messages — usually control change (CC), program change (PC), and note ON/OFF. Maybe (non-)registered parameter number messages (RPN or NRPN messages) are supported. System exclusive (SysEx) most certainly is not supported other than maybe a fixed string of HEX — if you’re incredibly fortunate to have it.

The old JL Cooper FaderMaster knew how to insert control values into simple SysEx messages. This is now lost art.

Here are a few use cases for a fully user-programmable MIDI controller.

The first use case is drawbar control. Most tone-wheel clones use MIDI CC messages for drawbar control, but not all. The Yamaha Tyros/PSR “Organ Flutes” are controlled by a single SysEx message. That SysEx message sets everything at once: all the drawbar levels, percussion parameters and vibrato. Drawbar control requires sensing and sending all of the controller’s knob and switch settings in one fell swoop. None of the commercially available MIDI controllers can handle this.

If you’re interested in this project, check out these links: Dangershield Drawbars, design and code.

The second use case is to fix what shouldn’t have been broken in the first place. The Korg Triton Taktile is a good MIDI controller. I like it and enjoy playing it. However, it’s brain-damaged in crazy ways. The function buttons cannot send program change messages! Even worse, the Taktile cannot send a full program change: bank select MSB followed by bank select LSB followed by program change. This makes the Taktile useless as a stage instrument in control of a modern, multi-bank synthesizer or tone module. If the Taktile allowed user scripting, I would have fixed this nonsense in a minute.

The third use case is sending a pre-determined sequence of pitch bend messages to a tone generator. Yes, for example, you can twiddle a controller’s pitch bender wheel (or whatever) to send pitch bend. However, you cannot hit a button and send a long sequence of pitch bend messages to automatically bend a virtual guitar string or to play a convincing guitar vibrato. Punters (like me) have trouble playing good guitar articulations, but we do know how to hit buttons at the right time. Why not store and send decent sounding pitch bend and controller values in real time as the result of a simple button press?

The fourth use case is an example of the “heavy lifting” potential of user code. Many sample players and libraries (like the Vienna Symphonic Library) assign a range of keys to articulations or other methods of dynamically altering the sound of a notes played elsewhere on the keyboard (i.e., the actual melody or chord). I claim that it’s a more natural gesture to control articulations through the keyboard than to reach for a special function button on the front panel. User coding would allow the redefinition of key presses to articulations — possibly playing a different sample or sending a sequence of controller messages.

Let me give you a more specific example, which is an experiment that I have in progress. Yamaha instruments have Megavoices. A Megavoice is selected as a single patch. However, different samples are mapped to different velocity ranges and different key ranges. As such, Megavoices are nearly impossible to play through the keyboard. Nobody can be that precise consistently in their playing.

I’m prototyping a MIDI controller that implements articulation keys to control the mapping of melody notes to the individual Megavoice samples. This involves mapping MIDI notes and velocities according to a somewhat complicated set of rules. Code and scripting is made for this kind of work!

Finally, the Yamaha Montage demonstrates how today’s MIDI controllers are functionally limited. Yamaha have created excitement promoting the “Superknob” macro control. Basically, the Superknob is a single knob that — among other things — spins the parameters which have been assigned to individual small knobs. Please note “parameters” is plural in that last sentence.

Today’s MIDI controllers and their limited configuration paradigm typically allow only one MIDI message to be assigned to a knob at a time. The target VST or whatever must route that incoming MIDI value to one or more parameters. (The controllers’ engineers have shifted the mapping problem to the software developers at the other end.) Wouldn’t it be cool if you could configure a controller knob to send multiple MIDI messages at once from the source? Then, wouldn’t it be cool if you could yoke two or more knobs together into a single macro knob?

If you had user coding, you would be there already.

All site content Copyright © Paul J. Drongowski unless otherwise indicated

Korg Triton Taktile: Snap Review

The Korg Triton Taktile has a double personality. On one hand, the Triton Taktile (TT) is a MIDI controller with eight knobs, eight sliders, eight buttons, sixteen pads and a set of DAW function buttons. (These are the specs for the 49-key model, the model that I’m using.) On the other hand, it is a synthesizer with the Korg Triton classic sound engine. Right now, I’m playing the TT as a synth and I will be concentrating on the synth features.

The Sound On Sound review of the Korg Taktile controller (the model without the sound engine) is very well-written and I recommend reading the SoS article for more information about the TT’s control capabilities. I will say that Korg hit my major checkmarks for a controller: a 49-key keyboard with a good action, expression pedal input, sustain pedal input, and TA-DA, a 5-pin MIDI output in addition to the USB-B connector for power and computer/tablet communications. The TT will operate on a portable, rechargeable USB power pack (minimum 5V 1A output) and that is in fact how I’m using it in the studio. The picture below shows the Triton Taktile under battery power. The TT weighs just a little bit over 8 pounds (3.8kg) and is easy on the eyes as well as the back.


The TT connects to either headphones or external amp through a 3.5mm stereo jack. All of the connections are made through a panel on the right side of the TT. The output level is sufficient for comfortable listening on Roland RH-A7 headphones, my current choice for head gear.

As you might be aware already, you don’t get a full Triton classic. The TT is not multi-timbral and it does not have combinations (“combis” or layers) and insert effects. However, you can bring up one of 512 classic programs (voices) and play your heart out! There are two system-level master effects (MFX1 and MFX2) that are appropriate for the preset voice, e.g., chorus and reverb on electric piano. The TT is strictly a preset machine as program edits cannot be stored. This hasn’t cramped my act so far, but like any of the TT’s limitations, it could be a deal-breaker. You can save your favorite preset programs into two sets of favorites (set A and set B, each set with eight slots) for quick patch selection.

Hit the dedicated SOUND button to leave controller mode and go to synth mode. The current patch number and name are shown on the nice bright OLED display. Even though the OLED display is small, it is very readable. There are three ways to select a program:

  1. Press one of the program category buttons (assignable buttons F1 to F8). The TT selects the first program in the category or the last selected program in the category. It remembers the last selected program until power-off.
  2. Use the value slider (ribbon) to scroll through the programs. Tap the “+” or “-” at either end of the slider to increment/decrement, or slide your finger along the ribbon to move quickly to a new patch.
  3. Select one of your favorite programs from either set A or set B.

It takes a little practice to get the hang of the slider. Do not take this ax to a gig and expect to select patches on the fly! I recommend setting up favorites and getting the general layout of the patches before hand. Otherwise, an embarrassing epic fail will ensue.

The keyboard feels very good for a controller in this price range. It has a little more resistance than the Yamaha MOX series, for example. I find it quite comfortable to play — it does not feel like a toy. Korg claim that it is the same action as the Krome and I have no reason to doubt them. The pitch bend and modulation wheel also have a satisfying feel. The knobs and sliders are a little bit “light” to me. I don’t have an opinion on the pads as yet.

I enjoy playing this instrument! The knobs and sliders control eight parameters: volume, cutoff, resonance, attack, delay, release, MFX1 and MFX2. Cranking the cutoff and resonance is a real visceral thrill. The two master effects, unfortunately, are very subtle and understated. The TT cries out for a multi-effects unit with distortion and other sonic manglers.

My favorite sounds are the electric pianos, drawbar organs, church organs (!), strings, and acoustic guitar. Korg strings have always had a wonderfully expressive depth and these patches do not disappoint. The electric pianos are very clean. I threw a cheap Danelectro overdrive on the output in order to realize the EP’s full funked-up potential. Oh, for a multi-effects unit, Korg!

The brass isn’t too bad, especially the horns, cornet and flugelhorn. The TT’s woodwinds are pretty naff — yuck. My musical personality is split between liturgical church music and jazz/funk/60s rock. On the church side, I’m disappointed with the oboe, clarinet and other reeds. On the pop side, I don’t often venture into synth territory. However, the HipHopLead patch is great when you feel the urge for Herbie. There are a lot of lead and pad sounds to explore and I’m sure that I’ll find a few other useful patches.

The handbook in the box is helpful, but not sufficient. Be sure to download the parameter guide and the Triton Taktile-specific MIDI implementation chart. Korg could be a little more forthcoming about the MIDI implementation considering that the Taktile series are MIDI controllers for heaven’s sake. The full list of programs is at the absolute end of the parameter guide. I always look through the list of patches for a synth/workstation when considering a purchase and this list is somewhat hidden away at the end of the parameter guide.

Bottom line, I’m happy with the Triton Taktile even when its limitations are taken into consideration. It could be the heart of a light-weight, portable, battery-powered rig and I’m exploring that potential right now.