Game ports use DB-15 connectors, and usually double as connectors for MIDI instruments. To use a game port with MIDI instruments, one had to obtain an unusual cable with both DB-15 and 5-pin DIN connectors (similar to old-style pre-PS/2 keyboard connectors known as Baby AT or AT5 connectors).
About MIDI Signals
MIDI Signals are like ASM instructions : First a byte gives the instruction, if there is parameters, they follow the instruction byte using data bytes. For exemple, Note off event (Key, Velocity) for channel 0 will be send as Note off event byte, then Key data byte, then Velocity data byte: 1000 0000 - 0kkk kkkk - 0vvv vvvv where kkkkkkk is the Key value and vvvvvvv is the Velocity value. Data are always 7 bits, to allow the 0 beginning the data byte, when a parameter need more than 7 bits, it uses 2 data bytes, again like in ASM: LSB followed by MSB.
The 4 highest bits of a channel status byte is the instruction, the 4 lowest ones is the channel number. Note off event (key, velocity) Note on event (key, velocity) Polyphonic key pressure (key, after-touch) Control change (command address, command value) Program change (program number) Channel pressure (after-touch) Pitch wheel change (value lsb, value msb)
These two instructions are used to send special instructions to a MIDI device, the instruction is made of a 2 bytes header, followed by data block(s) (as many as needed) and then finish by an end of block byte. System Exclusive Header + Data (Identification code) + Data block(s) + System Exclusive End of block
Instructions for synchronisation and rythm boxes control, send for all channels. Timing Clock In Play This clock is send while the system is in play mode. There are 24 clock impulsions for 1 black note. Measure End Replace the Timing Clock In Play signal at the end of every measure. Start From 1st Measure This signal is send when the master play key is pressed. The first Timing Clock In Play must be send in the next 5ms following this signal. Continue Start This signal is send directly when the master continue key is pressed. The next Timing Clock In Play must be send in the next 5ms following this signal. Timing Clock In End This signal is send when the master is in wait-mode and is used to lock a PLL during a pause. Active Sensing no information available.
Measure Information (measure number lsb, measure number msb) Song Select (song number) Tune Request
System Reset Restart the whole system.
Channel Channel number from 0 to 15. Key Key number from 0 to 127, the central A is always number 60. Velocity Velocity from 0 to 127 (0=Note off). If the keyboard doesnt have velocity, 64 is send as default. After touch After-touch from 0 to 127. Command address Address from 0 to 127. Except for the Pitch bender, which is 0, there is no specification for these. Command value For controllers, from 0 to 127. For switches, 0=off, 127=on (other ore ignored). Program number Program number from 0 to 127. Identification code Society code from 0 to 127.
Measure number Measure number in 14 bits. The value is divided into 7 msb bits and 7 lsb bits to be able to send them as data blocks.
Note: Direction is Computer relative joystick. Note: Use 100 kohm resistor.