Please feel free to challenge any info in this thread and if found true I will change it accordingly.
Pro Guitar MIDI Standard
Spoiler:Note Positions
Fret Note Markers
Fret numbers are noted by their Velocity minus 100.
As such a Note with Velocity 113 would be Fret 13.
Special Note Markers
Note are marked by their MIDI Channel Number.
CH0: Normal Note
CH1: Ghost Note
CH3: Muted Note
Note Phrases
Star Power
Note 116 ( no change from RB1 or 2 )
Solo
Note 115
Arpeggio Section
Note 104
Slides
(the velocity values are quite odd, I can't seem to make out what it is referencing)
Easy Note 31
Medium Note 55
Hard Note 79
Expert Note 103
Forced HOPO's
Easy Note 30
Medium Note 54
Hard Note 78
Expert Note 102
Possible Strum Direction Markers - Not yet proven
This seems to affect the white bar at the bottom of a chord.
Note 105 (velocity and channel number are at work here)
---
XBOX 360 Mustang Pro Guitar Technical Information
Spoiler:Summery
The Fret and String signals are compressed into 6 Axis represented by the standard XBOX controller layout below.
The Trigger buttons are problematic as windows drivers merge them into a single axis which destroys the data when both are active.
As such X Input seems to be the only way without special drivers to get the correct data from this guitar.
The Data is arranged as follows:
Frets:Code: Select all
e = ( ( HIBYTE( Left Thumb X ) & 124 ) >> 2 );
B = ( LOBYTE( Left Thumb X ) >> 5 ) + ( ( HIBYTE( Left Thumb X ) & 3 ) << 3 );
G = ( LOBYTE( Left Thumb X ) & 31 );
D = ( ( Right Trigger & 252 ) >> 2 );
A = ( Left Trigger >> 5 ) + ( ( Right Trigger & 3 ) << 3 );
E = ( Left Trigger & 31 );
Strings:Code: Select all
e = ( HIBYTE( Right Thumb Y ) & 127 );
B = ( LOBYTE( Right Thumb Y ) & 127 );
G = ( HIBYTE( Right Thumb X ) & 127 );
D = ( LOBYTE( Right Thumb X ) & 127 );
A = ( HIBYTE( Left Thumb Y ) & 127 );
E = ( LOBYTE( Left Thumb Y ) & 127 );
Coloured Buttons:Code: Select all
Green = ( LOBYTE( Left Thumb Y ) & 128 );
Red = ( HIBYTE( Left Thumb Y ) & 128 );
Yellow = ( LOBYTE( Right Thumb X ) & 128 );
Blue = ( HIBYTE( Right Thumb X ) & 128 );
Orange = ( LOBYTE( Right Thumb Y ) & 128 );
Guitar Tilt Signals
Currently it is not known how to get Tilt signals from this guitar correctly.
XInput does report a packet change when the guitar is tilted but no change in the controler state is detected.
More Information To Follow . . .