It was realised fairly early-on that a problem with the MIDI specification was that there was no definition of what type of sound should be heard when a particular patch number is selected - e.g. Bank 1 / Patch 1 might be Brass on one device and Oboe on another. So if a MIDI File (see below) was created using one instrument, the sounds used would be unlikely to match up when the MIDI data was played back by a different MIDI instrument. To solve this problem, a set of sounds called General MIDI or GM (not to be confused with genetically modified!) was conceived.
The GM specification also details that MIDI Channel 10 should be reserved for unpitched percussion sounds, and the rest for pitched sounds arranged into 16 families of instruments. To enable a number of unpitched percussion sounds to be played simultaneously, the specification also lays down specific individual notes that these are assigned to, rather than separate patches, so the kick drum is always on the same note, the snare on another and so on. The advantage of this is that a pre-programmed MIDI File containing the instructions for a piece of music will also be able to choose all the correct instruments in the arrangement. Note however that General MIDI only defines the names of the patches - how each one actually sounds is down to the manufacturers of each different instrument. Of course in practice, manufacturers want their products to sound good when playing back MIDI Files, and so this is rarely a problem.
Although the GM specification enabled industry-wide compatibility, some manufacturers felt that further features needed to be added in order to keep up with technological advances, such as the addition of onboard effects processing to provide reverb, delay and chorus. As a result, General MIDI 2 (GM2) was introduced which implemented these changes, but maintained backward compatibility with the original GM standard. In terms of sounds, other manufacturers created their own extensions to the specification - Rolands GS and Yamahas XG standards both expanding the range of sounds from 128 to over 600. The MIDI specification continues to develop as other industries make use of it - for instance the mobile phone market utilise a cut-down GM Lite MIDI File format to play the basic music synthesizers in phones, and some computer soundchips also support this. These days, you will see the logos for General MIDI, GS, XG or combinations thereof on most portable keyboards this is your sign that you will be able to purchase and download pre-made MIDI Files and play them on your instrument.