tags:

views:

442

answers:

4

I have a Yamaha MIDI guitar, that, when I play a MIDI file encoded using the XG MIDI standard, causes certain lights on the guitar to turn on and off. I am trying to determine the MIDI event that causes this so that I can programmatically send the same event without the use of a MIDI file (the same way I can send a Note On (144) or Note Off (128) command).

However, while I have been able to locate a copy of the MIDI protocol, I have not been able to locate the XG MIDI protocol. Is there a way, beyond trying to send all possible commands to the device until I locate the appropriate command, to determine what the MIDI event is that is causing the lights to change state? Or is there somewhere that I can get a copy of the XG MIDI protocol?

+1  A: 

Wikipedia: "In 1999, the official GM [General MIDI] standard was updated to include more controllers, patches, RPNs and SysEx messages, in an attempt to reconcile the conflicting and proprietary Roland GS and Yamaha XG additions." This was called General MIDI 2.

I recommend looking into what Java (javax.sound.midi) has to offer (C# seems to be lacking a solid MIDI library). Read up on MetaMessage, ShortMessage, SysexMessage, and Patch. From what I understand, special system messages are sent through SysexMessage (the lighting data might be here).

If you need some sample code look at Java Sound Resources.

Other links I found:

srand
+1  A: 

The Yamaha manuals for their products detail the information you are looking for. The XG commands are device specific. Some XG commands give direct access to the device memory and my manual for the MU2000 tone generator warns that "you can damage the unit by sending incorrect data"

A: 

For a managed .NET Midi Library look for the C# Midi Toolkit on codeproject.com.

obiwanjacobi
A: 

I'm using the codeproject midi toolkit by Leslie Sanford to communicate with the guitar. http://www.codeproject.com/KB/audio-video/MIDIToolkit.aspx

Everything you need to know about the guitars communications is in the manual on a single page near the back.

Here is a video of an editor I built - it features full communications with the guitar.

YouTube Video of Guitar Program

DTig