DIYstompboxes.com

DIY Stompboxes => Digital & DSP => Topic started by: nexekho on September 11, 2011, 06:46:15 PM

Title: Pocket POD MIDI control with GlovePIE
Post by: nexekho on September 11, 2011, 06:46:15 PM
I was experimenting with the POD's control software, Vyzex, and saw it used MIDI messages.  I also recalled that GlovePIE had MIDI support.  Here's how to get a Vyzex control working via GlovePIE so you can script it to work on keypress, joystick, anything.

NOTES FIRST: This method of controlling your POD probably isn't officially supported and you can cause problems by whacking in random numbers, for instance switching presets above 20/sec or setting the preset out of range will reset your POD and bombarding it with quick messages may cause it stop responding to MIDI until reboot (though the controls still work)

Only one program can access the MIDI port at a time, so close Vyzex before using GlovePIE and vice versa.

In GlovePIE, ensure you're using the right MIDI device by using:
debug = midi.outdevname
If it's not Line6 Pocket POD, try Midi1, Midi2, etc. and use that in place of midi from now on.

In Vyzex, hit Options->MIDI Monitor.  You'll see a load of lovely hexadecimal junk.  So what does this all mean?
http://hinton-instruments.co.uk/reference/midi/protocol/index.htm (http://hinton-instruments.co.uk/reference/midi/protocol/index.htm)
(under channel messages)
Any commands starting with B0 can be controlled using midi.  Convert the hexadecimal that follows.  For instance, the command to control the wah:
B0 04 32
Is actually
midi.control4 = 32

You may notice when changing presets that the MIDI command is C0 then a hex number.  To access this, use midi.program = (preset number).  You can use this to switch presets using external controls, or even switch between some at random for a mad sound.

There's probably a lot more to it, but that's what I've found so far.

NOTE: the control values use a 0...1 floating point value NOT the raw byte values Vyzex kicks out.

Example wah control with 3D mouse:
midi2.control43 = 64
midi2.control4 = ( ( Spaceball.yaw / 4600 ) + 1 ) * .5