More and more musicians are using laptops in their rigs. Wouldn't it be great to
harness the power of those laptops to offer greater control capabilities than are
usually available in MIDI foot controllers?
Well, yeah, if you're already using a laptop - but you wouldn't want to lose the
flexibility that foot control offers either.
Enter a hybrid hardware/software MIDI foot controller. A hybrid system separates
the physical interface from the control logic so that the logic can run on a computer.
The logic, or engine, is more easily maintainable and updated when it runs as an
application on a computer than as firmware in dedicated hardware.
Using the monome, you build your own MIDI foot controller but run the 'brains' of
the foot controller on a computer. I'm currently running mTroll on an Asus eee PC
Model 900 (Windows 7, single-core Celeron processor, 1GB RAM).
Neither the hardware nor the software requires a MIDI channel.
The controller hardware is powered by the computer via USB, supports 64 physical
switches, 64 LEDs, and 4 expression pedals.
If you aren't happy with current MIDI foot control offerings or just want to build
one yourself, read on to learn more about my DIY MIDI controller.
Unlimited patch count
Patches can send multiple MIDI messages of any length
Patches support Normal, Toggle, Momentary, Sequence or patchListSequence modes
Normal mode sends one of set MIDI messages when switch pressed, and a different set when another Normal mode patch is selected
Toggle mode sends one set of MIDI messages when switch pressed, and a different set when pressed again
Momentary mode sends one set of MIDI messages when switch pressed, and a different set when released
Sequence mode increments through a list of messages to send when a switch is pressed repeatedly (a toggle with more than 2 sets/states) (Dr. Z )
patchListSequence mode increments through a list of other patches when a switch is pressed repeatedly
Patch state is retained across bank loads Meta-patch for resetting all patches loaded in a bank Meta-patch for loading another bank Native support for Axe-Fx processors (when used with MIDI In)
Unlimited bank count
Banks are simply mappings of patches to switches (physical or virtual)
Banks can address more switches than are physically present on input hardware
A single patch can be used in multiple banks or on multiple switches in the same bank
Multiple patches can be assigned to a single switch in any given bank (the first patch assigned to a switch in a bank owns the expression pedals, switch label and indicator)
Banks can be configured with load and unload patch states (optionally activate or deactivate particular patches at bank load or unload)
Support for default mappings (for instant access switch creation)
Support for defining exclusive switch groups per bank (for radio button functionality)
Support for four expression pedals
Each pedal can be configured globally and/or locally per patch
Supports minimum and maximum transmission values, value inversion and manual pedal calibration
Each pedal can be configured for one or two controllers (per pedal, up to 2 globals and 2 per patch locals)
Only one patch at a time has control of the pedals (in addition to the global control which can be disabled per patch)
Support for manual calibration
Support for virtual toggle footswitches at toe and/or heel positions
Support for multiple sweep response curves
Patch and bank settings are stored in plain text XML file (example)
UI is configured via an independent plain text XML file (example)
Same data file can be used with different UI files for display on different resolutions or form factors
Can be used without input hardware (using computer keyboard, and on-screen buttons and indicators)
Support for multiple MIDI out devices (one MIDI out assignment per patch)
Supports independent labels for each switch/button (Dr. Z )
Supports secondary functions per switch via long-press
User-definable LED brightness
LED state can be inverted (lit when off, unlit when on)