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 4.4. The
MIDI 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.
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