General MIDI

General MIDI specs are available in several places. Perhaps the best reference is the Wikipedia entry on General MIDI.

The main point of General MIDI is to make standard assignments of program change numbers to specific sounds. E.g. in General MIDI, program 1 gives you an "Acoustic Grand Piano" sound on any General MIDI synthesizer. Here are lists of the General MIDI program number assignments and the General MIDI drum sound assignments (drum sounds are assigned to different key numbers on channel 10.)

Finally, this information can be found in this document on the Standard MIDI File format.