Hi Mixxxers!
I have attached the new MIDI preset XML spec I will start to implement
as of next week. Any feedback would be great :) There are some small
changes that I will do, but this is generally what it should look like.
Also, I will be away from today (4th) until the 12th of June. I am
heading to Germany for the next 5 days to a festival (and hence
without my laptop). What I didn't expect was to be heading back home
to Australia on the 10th. A flight came up on the waiting list and I
decided to take it.
I will be back on the net for a day on the 9th-10th, but if anyone
needs to contact me they can on +46737772148 or +61400130488 :)
Tom
GSoC MIDI Student
Mixxx MIDI Mappings XML Format
Mixxx uses a well defined XML format to store its MIDI mappings. The format is
used for storing and distributing MIDI mappings from multiple scopes.
<?xml version="1.0" encoding="utf-8"?>
<MixxxMIDIPreset version="1.6.0"> <!-- Version number to help compatibility,
should the MIDI format change -->
<info><!-- Optional - information about the preset file -->
<name>Example MIDI Preset for Mixxx</name>
<author>Tom Care</author>
<description>This is an example XML MIDI preset for Mixxx. The
scope of the preset could be from a small functionality addition, to a complete
mapping for a controller, to a complex personal setup with multiple
controllers. This description is intended for distribution and could include
comments about the extent of the functionality.</description>
</info>
The first part of the file defines the version of the mapping (for future
compatibility, as the Mixxx MIDI abilities become more complex) and an optional
info tag which contains information about the preset (primarily used for
distribution of presets).
<controller id="Device name of the controller" port="Port"> <!-- Many
controllers in one file supported. A controller should only appear once -->
The core part of the file contains a definition for a single controller. There
may be multiple controllers in one file (for more complex setups). Each
controller definition contains two sections: input bindings (controls) and
output bindings (only lights are supported at the moment).
<controls> <!-- One control group -->
<control> <!-- Several controls -->
<group>[Master]</group>
<key>crossfader</key>
Group and key define the part of Mixxx that is being controlled. For a list of
what these values can be, see
http://mixxx.org/wiki/doku.php/ui_midi_controls_and_names.
<miditype>Ctrl</miditype>
<midino>7</midino>
<midichan>3</midichan>
<controltype>fader</controltype>
These tags define the MIDI event that Mixxx will listen for. Controltype hints
to Mixxx what kind of control this is: for most controls this will define the
behaviour of the control (eg jog wheel, analog knob). There is also a generic
control enabling someone to define the behaviour using options.
<options>
<!-- all control specific options
should go here - sensitivity etc. Specifics to be decided by spec -->
</options>
The options further refine be behaviour of the control. The list of options
will expand as Mixxx development continues. Eg - translations, sensitivity,
acceleration. Necessary options (defined by controltype) will have default
values, eg a jogwheel might have no acceleration by default.
</control>
</controls>
<outputs>
The next section defines the outputs (lights only at the moment).
<light>
<group>[Channel1]</group>
<key>play</key>
<status>0x7F</status>
<midino>0x08</midino>
<threshold>0.1</threshold>
Status is the value sent to the MIDI controller. Threshold is the value at
which the light turns on.
</light>
</outputs>
</controller>
</MixxxMIDIPreset>
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel