This article is about the MIDI standard in general. For the (MSGS) MIDI format on BotB, refer to midi (format).
MIDI (Musical Instrument Digital Interface) is a protocol originating in the early 80's, which allows musical data to be sent between all kinds of electronic instruments, and later computers (operating systems, soundcards or embedded into code).
Technically, MIDI is not music, that is, MIDI music cannot be recorded or heard as sound. MIDI is a small amount of data that contains event messages. Event messages can include timecode (bpm), notes, volume, aftertouch, pitchbends, vibrato, panning, program changes, event changes and system based messages.
MIDI is an open system for music production and recording, because it allows any instrument or sound to be assigned to any MIDI channel, allowing numerous sonic experiences. However, this does not mean everyone will hear the same sounds, because the sounds rendered may differ from one instrument or operating system to the next. Two Korg synthesizers may sound similar, but a Korg (or any synthesizer) and a soundcard will likely be very different.
To mitigate this issue, the General MIDI specification was introduced in 1991, using a standardized list of commands and parameters, as well as defining a basic list of instrument names (found here) that any supporting device must adhere to. While manufacturers were free to use their own sounds for each instrument, this at least meant that MIDI files could be played with (mostly) correct instrumentation across many different devices.
In that same year, Roland introduced their own GS standard through their popular Sound Canvas modules, which builds upon General MIDI by introducing alternative "banks" of sounds for each instrument (see here), adding additional parameters, and adding effects such as chorus and reverb. The first Sound Canvas module, the SC-55, is featured on BotB with its own format.
A few years later, in 1994, Yamaha introduced their competing XG standard through their own MU-series of sound modules, also building upon General MIDI. This too introduces additional sounds (but way more than GS; see here), parameters and effects, notably specifying additional "variation" and "insertion" effects on top of chorus and reverb. The first MU module, the MU50, is the focus of BotB's XG format (alongside its younger software sibling, S-YXG50).
However, the Sound Canvas modules remained the most popular option for MIDI sound modules; in fact, they were popular enough that Microsoft licensed its sounds in 1996 to be included with Windows, starting with Windows 98. This allowed users to play back MIDI files without needing to purchase external sound modules or specialized sound cards.
This specific implementation, the Microsoft GS Wavetable Synth (also known as MSGS MIDI, which has its own format), while based on the GS standard, makes a couple of notable compromises, such as lower quality samples and a lack of reverb & chorus effects. Still, this inclusion made MIDI a lot more accessible for many Windows users; there's a good chance that your first experience with MIDI music is through this very implementation...
"The term "MIDI sound" has often been used as a synonym for "bad sounding computer music", but this reflects a misunderstanding: MIDI does not define the sound, only the control protocol. This is probably a result of the poor quality sound synthesis provided by many early sound cards, which relied on FM synthesis instead of wavetables to produce audio." -Wikipedia (circa 2008)
See also