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.