Support for extra MIDI devices can be added to Mixxx by created a new “MIDI mapping” file. This mapping file tells Mixxx how to translate MIDI commands from a controller into commands that Mixxx will understand.
The MIDI mapping files are located in the following paths:
The easiest way to create a new MIDI mapping is by modifying an existing one. When you've finished creating your MIDI mapping, please send it to us and we'll include it in Mixxx.
The midi mapping format is xml based. It looks something like this:
<!DOCTYPE controller> <controller>
<controls>
<control>
<group>[[Master]]</group>
<key>crossfader</key>
<miditype>Ctrl</miditype>
<midino>0x31</midino>
<options>
<hercjog/>
</options>
</control>
...
</controls>
<lights>
<light>
<group>[[Channel1]]</group>
<key>VuMeter</key>
<status>0xB0</status>
<midino>0x16</midino>
<threshold>0.5</threshold>
</light>
...
</lights>
</controller>
Definitions of the elements:
Expanding the options tag should be done by changing the configobjectmidi structure to hold the QDomNode related to the options element. This can then be parsed when a value is received and used to modify the incoming value. If this is too slow it can be compiled in some way but i'd be surprised.