sean-e / mTroll

mTroll is the software MIDI control engine part of a hybrid hardware/software MIDI foot controller, but can be used standalone on Windows.
http://www.creepingfog.com/mTroll/
GNU General Public License v3.0
4 stars 0 forks source link
axe-fx axefx midi midi-controller qt

mTroll Hybrid MIDI Controller

mTroll is the software portion of a hybrid hardware/software MIDI foot controller. mTroll is the MIDI control engine that I use with my monome-based foot controller. mTroll outputs MIDI in response to input from the monome or the gui. mTroll can be used standalone without hardware as a virtual foot controller. mTroll has native support for Axe-Fx processors with round tripping of effect block bypass and channel states, scene control, and looper block control. mTroll has native support for displaying global and local parameter state of Echoplex Digital Pro and Echoplex Digital Pro Plus devices. mTroll supports listening for MIDI CC state changes.

Original Project Homepage

Software Feature Overview

screenshot
(click to enlarge)

Patches

Banks (Pages)

Expression Pedals

Configuration

Other

Download

application software

Latest mTroll Win32 application installer is available on the releases page.

Usage notes here.

To use with a monome board, you must install the FTDI D2XXX drivers (not necessary for operation without a controller).

Developer Notes

The core of the app is written in cross-platform C++. The GUI and hardware device support (MIDI out and monome) were originally implemented for Win32 (using WTL for the GUI). It has since been ported to Qt 5.15. The MIDI In/Out device support is only implemented for Win32 at this time.

The GUI and hardware are accessed from the core through core-defined interfaces, so a Mac or Linux developer will be able to "fill in the blanks" using whatever native OS APIs are available without having to modify the core.

The application uses TinyXML for parsing of the XML data files (licensed under the zlib/libpng License). (TinyXML was being used in the WTL version of the app, before the Qt port.)

The monome uses a simple serial protocol over USB (by way of an FTDI serial to USB module). The application communicates with the monome using the FTDI D2XXX API.

The repository includes the modified monome firmware and TinyXML source.

Source directory hierarchy:

./Engine
Cross-platform interfaces, engine control logic, data file loaders, and patch and bank implementations
./midi
MIDI implementation (Win32 only at this time)
./mTrollQt
Qt application and interface implementations
./Monome40h
FTDI and monome interfaces, and monome serial protocol helpers
./Monome40h/qt
monome interface implementation in Qt
./setup
project for building Win32 installer using Inno Setup (https://jrsoftware.org/isinfo.php)
./tinyxml
TinyXML source (http://tinyxml.sourceforge.net/)