mTroll Home

mTroll software MIDI controller developer notes

The core of the app is written in cross-platform C++ with liberal STL use. 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.0. 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.

An mTroll project has been setup at SourceForge. The sourcecode is hosted in a Mercurial repository. Use the following mercurial command to clone a copy of the repository:
	hg clone http://hg.code.sf.net/p/mtroll/mTroll mtroll-mTroll
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
./mTrollQt
Qt application and interface implementations
./Monome40h
FTDI and monome interfaces, and monome serial protocol helpers

./qt
monome interface implementation in Qt
./tinyxml
TinyXML source
last update: 2014.07.18