The design of a dedicated hardware controller for Turnado depends on the following main set of factors:
- Which of Turnado’s parameters/controls are controllable via MIDI, as well as Turnado's MIDI output functionality
- Which of the MIDI controllable parameters/controls would I like to be able to access via hardware
- How I would like to physically interact with the parameters, and the available off-the-shelf components/controls that would allow this type of physical interactivity
- The needed configuration settings of the device
- The features, I/O, performance and compatibility of my chosen microcontroller
Considering all of these criteria at this early stage of development should help me design the optimum device without having to go through too many design or prototype revisions.
For this device I'm going to use a Teensy microcontroller, as they're my go-to microcontrollers for any USB-MIDI projects (or almost any microcontroller projects, in fact) due to their strong USB-MIDI support. In particular, I'm most likely going to use a Teensy 3.6 - due to it's large amount of I/O and high performance - so that I'm not likely to run into any pin shortage issues when trying to connect all the needed controls, and so I'm less likely to run into any performance issues when attempting to run an LCD and process high amounts of MIDI data at the same time. The rest of the design of the device will be based off of this, e.g. the LCD I use will need to have proven Teensy compatibility.
Turnado's MIDI Compatibility
Turnado can be controlled by MIDI messages in the following ways:
- The 8 knobs and the bypass switch for each, the Dictator Mode fader, the wet/dry mix fader, the 'random' button, and a large amount of the effects 'expert' controls can be assigned to any MIDI CC controller number
- MIDI program change messages can be used to change presents
In addition to that, Turnado can also send MIDI CC messages for any changes made to the 8 knob values, which will allow both the software and the hardware controller to always be in sync with each other if needed.
Desired Hardware Access
These are the software parameters I would like to be able to have access to from the hardware controller:
- The 8 knobs
- The Dictator Mode fader
- The wet/dry mix fader
- The random button
- Presets changing
From looking at the Turnado MIDI compatibility info above, this should all be possible.
Control Types and Physical Interaction
The main thing I require from a dedicated Turnado hardware controller - which existing MIDI controllers don't provide - is the specific types of controls and physical interaction that the device offers.
The type of control I want to use for controlling Turnado's 8 knobs and the Dictator Mode fader - and what I think is the most novel element of this controller - is a self-centering continuous control (such as a joystick or the classic MIDI pitch-bend wheel) that allows 'momentary' two-way control of the software parameters. This is an essential element of the device, as I find when performing live audio manipulation it is usually done only in short bursts rather than constantly, where a control that 'springs back' is very useful. Also you are able to operate these types of controls with just one finger (compared to dials that usually need to two fingers), meaning you can operate multiple controls (and control multiple parameters) simultaneously with greater ease. While these types of controls aren't uncommon on MIDI controllers, having multiples instances (9 especially) on a single device is quite unique.
Beyond that, all other controls will be very standard (e.g. dials for continuous parameters, buttons for on/off and 'trigger' parameters), but laid out in an intuitive manner that makes sense to a Turnado user.
Device Configuration Settings
Beyond having controls for controlling the Turnado software parameters, there will also need to be a way of configuring settings such as the MIDI messages that each of the controls sends. For example, I'm considering allowing the hardware controller to control multiple instances of Turnado, where each instance listens for messages on a unique MIDI channel - in this case you'll need to be able to easily configure the MIDI channel so that the device can quickly switch to control another instance of Turnado.
Probably the easiest way to provide these types of options on the hardware controller is through and LCD for displaying a menu of options, coupled with some encoders and buttons for controlling the LCD. A second advantage of using an LCD is that it could also be used for displaying the realtime values of Turnado's software parameters.