After a few performances live looping with Ableton and the GMS, I have found it cumbersome and frustrating to have to repeatedly swap between the two applications. To solve this, I have added he ability to control the GMS with an external MIDI device. I achieved this by creating an XML document with the parameters included as tags with a CC attribute to designate what control change value to use for each setting here’s a few lines out of the XML document.
<GMSMidiController> <MIDIControllerName>Korg MS2000</MIDIControllerName> <MidiChannel CC="31" type="knob" /> <TopOctaveIncrement CC="82" type="button" /> <BottomOctaveIncrement CC="78" type="button" /> <Preset useProgramChange="true" /> <ToggleFreeMode CC="77" type="button" /> <StartStop CC="89" type="button" /> <Sustain CC="64" invert="false" type="pedal" /> <SetDuration CC="30" type="knob" /> <ToggleDotted CC="92" type="button" /> <SetScale CC="29" type="knob" /> <ToggleMirroring CC="86" type="button" /> </GMSMidiController>
As you can see I’m using knobs to adjust some settings and buttons to adjust others. It’s really fun to turn a knob on my Korg MS2000 and see the sliders in my software start to move in response. Program change for presets and note on for transposition will work from any old controller, but the rest of the parameters need to be mapped to knobs, sliders or buttons. In total I have around thirty-six specific parameters that are now adjustable with a controller.
GMS Performance Excerpt #4
Pretty amazing–I never thought XML and MIDI could work together like that!
@miditerranean: Yeah. There’s actually DTD (document type declaration) standards for MIDI names, device types, and events in XML. Rather than using it, I created my own markup that matched what I’m doing in the GMS.