Prevent propagation of switch groups from default bank if any buttons in target banks are
already assigned to another group (banks should define entire switch groups rather than rely on partial propagation).
Renamed the "Time Display" page to "Time + utils."
Elapsed time is now calculated from application start up rather than from file load (so reload does not reset timer).
Added command to reset the timer manually.
Added support for pause/resume of elapsed time.
Added multiple application exit commands to the "Time + utils" page; 1) exit application, 2) exit and sleep, 3) exit and hibernate
Automatically sync Axe-Fx effects/state at startup.
persistentPedalOverride failure when a
PatchListSequence is activated.
Added new patch type
persistentPedalOverride that is a toggle patch used to reassign
expression pedals such that the reassignment sticks until the patch is toggled off or until another
persistentPedalOverride patch is activated.
It overrides pedal assignments made in subsequently activated patches that are not of type
Secondary switch functions no longer inadvertently deactivate expression pedal settings of primary switch functions.
Updated for Axe-Fx II firmware version 18 (Rotary X/Y).
Fixed LED mapping after loading a bank via the Bank Direct Access command/mode.
Fixed another case where secondary function was not properly displayed in the main display in certain circumstances.
Added sysex ID support for Axe-Fx II XL and XL+ (untested).
Added 1280x800 ui config for use on Dell Venue 8 Pro.
Updated Main display window text formatting of bank patchmaps for more consistent columns when using fixed-width font.
Fix for font names with spaces not being read from ui config files (see tinyxml QueryValueAttribute() vs Attribute()).
Fixed case where loadbank in a secondary function caused update to switch label text after new bank was loaded.
Made secondary functions update main display (if bank is still loaded) even if no action is taken, to note that the new function state was registered.
Support for width and height overrides in ui config inside of switchAssembly on the individual sub-elements.
Support for putting vOffset and hOffset in the switchAssemblyConfig elements rather than duplicating for every switchAssembly element.
Changed "Mode select" to "Menu" and Mode button to Menu button.
Deprecate EngineMetaPatch patch type in favor of PatchMap "command" attribute.
Deprecate PatchMap "name" attribute in favor of "label" attribute.
MIDI port in
localExpr blocks now use the midi port of the specified device if port is not explicitly set.
Support for optional name on PatchMap entries to eliminate need for separate name placeholder patches.
All LEDs turned off before releasing monome device.
MidiDevice port binding routine supports multiple attempts with different names (create multiple entries for the same port each with a different device name).
MidiDevice port binding doesn't bind same port once bound successfully.
GlobalExpr now supports port binding (port is still required on parent expression tag for default binding of GlobalExprs that don't explicitly override port).
Axe-FX support: the entire main display is updated by Axe-FX preset name and scene number instead of appended to text already present.
Axe-FX support: 'LED' UI of present but inactive effect is dimmed (in software UI, not hardware).
Axe-FX II support: inverted X/Y LED handling such that X is LED off (dimmed in software UI) and Y is LED on.
Added support for specifying computer MIDI device by name rather than OS index for portability of config file to different systems.
Added menu command to Suspend/Resume MIDI device connections.
Added elapsed time to the time display engine mode.
Improved support for Axe-Fx II scenes.
Added support for Axe-Fx II looper modes.
Displays Axe-Fx II preset number when name is displayed.
Created installer which includes all dependencies and sample files.
Moved samples files to .\config sub-directory.
Created config file for Axe-Fx II.
Added support for a new meta-patch: ResetExclusiveGroup
Buttons support long-press and momentary press when invoked via touch (previously touch caused immediate press and release events).
Menus displayed in alternate style more suitable for fingers if touch input is detected.
Moved to Qt 5.0.2 (unfortunately causing significant increase in size of dependencies).
Fixed situation where some LEDs in an exclusive switch group did not turn off when they should have.
Fixed propagation of exclusive switch groups defined in the default bank to other banks where applicable
(when switches are not otherwise redefined in the target banks).
Added support for Axe-Fx II scenes (introduced in firmware version 9).
Normal-type patches are deactivated, when stepping through a PatchListSequencePatch.
Fix for crash when loading/reloading configuration in some circumstances.
Fix for incorrect initial size of window after refresh/reload when maximized.
Fix for bug where switch release was routed to a different bank than switch
press if the press caused the load of a different bank (bank loads now occur
on switch release instead of press).
Display and switch LEDs update when changing presets via Axe-Fx II front panel if using recent versions
of firmware that send notification of preset loads.
Added Axe-Fx II support.
patch type that steps
through a list of patches.
Added secondary function
switch support accessed via long-press
of switches (defined in a
Mode switch invokes
metapatch on long-press.
Updated LED illumination of mode, next and back switches.
Fixed inadvertent change of LED state of first LED.
Fixed handling of loadState/unloadState/override/sync attributes (loadState was also inadvertently being set for unloadState).
Improved timing of sync after AxeFxProgramChange.
Added interactive control change engine mode.
Added support for Axe-Fx
Feedback Return block bypass synchronization (via external ctrl modifier).
Fixed off by one channel error when defining local expression pedal using implicit device default channel (as opposed to explicit channel).
Fixed occassional expression pedal status text corruption.
Created project and uploaded source to SourceForge
Added support for Axe-Fx processors
(via special device name, new patch types, patch commands and metapatch).
Allow expression pedals to be active while in some engine modes other than the default bank mode.
DeviceChannelMap supports device to MIDI port binding.
Status updates to main display by expression pedals are prepended to existing text rather than overwriting it.
Expression pedals are bound only to the first patch if there are multiple patches assigned to the same switch.
Patches can optionally define a default channel for all commands (that can be overridden on individual commands).
accepts empty patch number in order to defeat a default mapping without actually overriding it.
Mappings in PatchMaps have new optional
Added time display engine mode.
Added interactive program change engine mode.
Switch mappings during Mode Select are customizable.
Added support for direct access to any mTroll bank during mode select (reducing need for the
metapatches available during mode select.
Reorganized default switches used in mode select.
metapatches that load the next/previous bank (without confirmation, in contrast to the
commands of Bank Navigation mode).
Added support for spaces in button labels.
Made UI background and element frame colors customizable.
Updated default colors.
Fixed problem opening MIDI device during reload.
Added support for expression pedal response curves
Added support for expression pedal virtual toggle footswitches
at toe and/or heel positions.
Added interactive engine commands that are accessible from the hardware via engine mode
- toggle display of trace window (previously only available in the GUI)
- set ADC overrides (previously only available in the GUI)
- invert LEDs (previously only available via the config data file)
- test LEDs (previously only occurred during hardware handshake)
Fixed failure to load some elements that followed comments in XML files
Minor update to expression pedal jitter control.
Many changes to XML data files:
- Added support for multiple commands per patch group (instead of a single, long hex string per patch).
- Added support for simpler non-binary commands for
(which can be used instead of
- Added support for new patch command:
- Added config data file validation messages.
- Fixed crash loading malformed data files.
Improved expression pedal jitter control.
Fixed handling of interrupted USB reads which would cause occassional unknown command
Added menu items to disable ADC ports/expression pedals independently of the config
files. These items either let the file-defined state pass untouched, or override them
to force the ADCs off. Useful if, for example, you load a config file that has
defined ADC behavior but you don't actually have any pedals hooked up. The overrides
are retained across file loads and sessions.
Added support for double byte expression pedal control changes (though the monome
hardware only supports 1024 steps - at least it's an improvement over the 128 steps
possible using a single byte control change) (use
Fixed crash that occured when opening a config file with a bank that maps
to a non-existent patch.
Created XSL file for nicer display of config files in web browsers (compare without XSL
to with XSL
Added "Toggle trace window visibility" command (Ctrl+T) that hides/shows the trace
window and resizes the main display window appropriately.
A handful of changes resulting from experience on the Asus eee PC Model 900.
Added 1024x600 ui profile for 8.9" display.
Added auto-scrollbars to main display.
Previous builds apparently didn't work if Visual Studio 2008 wasn't installed due to
the damn SxS manifest crap. It's addressed now but requires an update of the Qt libraries.
Qt build released.
Released source code.
User-defined banks can make patch mappings to the switches reserved for Next Bank and
Previous Bank. The switches are still reserved in the alternate operating modes. You
can now override and use the Next and Previous switches in none/some/all banks. If no
mapping is specified, the switches default to Next and Previous functionality (to switch
from standard Bank mode to Bank Navigation mode).
Finished port to Qt 4.4
including Qt-based monome client implementation. Now, a Mac or Linux developer will only
need to write their own MIDI out implementation (and create their own makefile).
Started port from Windows-only WTL to cross-platform
Added support for new meta-patches: Backward
Automatically disable screensaver and system sleep/shutdown timers while
application is running if monome is found at startup (previous settings restored at exit)
Added support for exclusive switch groups
(for radio button functionality)
Added support for a new meta-patch: Load Bank
Added support for inverse LED display (specified in the
node of the .ui.xml file)
Added support for instant access switches
After biting the bullet and ordering a firmware programmer, it arrived this week;
tweaked the adc filtering/smoothing. Happy now.
Automatically loads last opened files at startup
Fixed flicker in the GUI
Made LED intensity user definable
Cleaned up GUI (removed unused default elements)
Added Raw ADC Value engine mode
Added first meta-patch: Reset patches in active bank
Started on this page
Worked out expression pedal calibration and load of pedal settings from file
Wired up the switches
Initial pass at expression pedal support
Wired up the LEDs
Finally got around to assembling the logic board
Fixed some bugs in the monome software framework, app now works with the board
My neighbor, Brian Barron
, drilled extra holes in the Ground Control Pro case
Met Josh Fiden at Voodoo Lab
in Santa Rosa and scored a
Ground Control Pro chassis - this was huge! Not being too handy with metal, without this the
alternatives would have been:
- plywood box
- find and gut a used board
- one of those plastic project enclosures
- give up
- who knows...
Many thanks to Josh and Harmony at Voodoo Lab
Initial pass at FTDI and monome software support
Read about and ordered the monome logic kit after having looked at other USB
bridge boards (like Phidgets
CREATE USB Interface
Initial pass at midi out device, UI and file loader implementation
Completed initial UI and got it all to compile
Completed first pass at engine control logic
Exhibits at Maker Faire
provide inspiration and get the gears turning