Home -> Magazines -> Issues -> Articles in this issue -> View
General MIDI | |
A True MIDI Standard?Article from Sound On Sound, April 1991 |
The non-standard nature of MIDI instruments has become an impediment to MIDI's Use in the home and educational markets, so the instrument manufacturers have come together to create a new standard: General MIDI. Chris Jordan explains what it is and why it is needed.
Basically, General MIDI is a complete specification of both a set of sound parameters needed to produce music, and a method of controlling them on different electronic sound sources (such as synthesizer modules). What makes it different from MIDI V1.0 is that these sound parameters are defined in detail, to ensure that a pre-recorded piece of music will sound the same or similar on different models and brands of sound source.
On the hardware side, General MIDI is identical to MIDI V1.0. The only physical difference you might see is that In and Out ports can be labelled 'General MIDI' to declare software compatibility. As we'll see, Thru sockets are largely redundant under General MIDI and therefore will be absent from many receivers. On the software side, General MIDI is based on a sub-set of existing MIDI V1.0 messages, but defines them as unequivocal commands that have precise effects at the receiver. So, whereas MIDI V1.0 simply describes what messages exist and roughly what they mean, General MIDI lays down precisely what facilities must be available and exactly what each message must do.
For example, under MIDI V1.0 the 'note-on' message simply declares that a key has been pressed on the controller. It should really be called 'key-on', since that is all it says for sure — it gives no guarantee that a note will actually sound. In fact, there are plenty of variables that can prevent the note from sounding, such as the sound source not being set to receive on that MIDI channel, all the sound source's voices being in use by other notes or, in the case of a reception channel with pitch-to-instrument mapping (as found on drum machines), there being no instrument mapped to that particular pitch. Even if the note does sound, it may do so on a completely inappropriate 'patch' (instrument sound) for the piece of music. Under General MIDI, things are different. The bits and bytes of the 'note-on' message are unchanged, but the message is now a command that says 'play a note of stated pitch and dynamic level on a stated channel'. And play that note it shall, because all of the troublesome variables that might prevent it doing so are kept in line by the General MIDI specification itself.
The first of these variables is the channel. General MIDI solves the problem of the receiver not listening on the correct channel by laying down preset channel assignments. Channels 1 upwards are allocated to specific musical parts, defined with the standard names 'melody', 'harmony', 'chords', 'percussion' etc, all present on a single sound module. Though the channel numbers are retained internally for programming, the new user-friendly identifications are intended to make sure that when you replay a prerecorded piece of music, you can easily access a particular part, such as the main tune ('melody'), for editing. In particular, one channel is designated as a drum kit, with a standard layout — or mapping — of pitches on to a range of drum instruments.
Standardisation of reception channels not only does away with the need for manually programmable receive channel numbers, but also with the various MIDI V1.0 reception modes: Omni On/Off, Mono/Poly. It also means that there is no point connecting more than one General MIDI receiver on the same MIDI line, so it seems also to eliminate the need for Thru sockets, splitter boxes, and (unless your controller has multiple MIDI Outs) second and subsequent sound modules in your MIDI setup.
Next up is the question of whether there are enough voices on the sound module to play all the notes requested at any one time. General MIDI simplifies the matter by dictating that sound modules have a minimum of 16 voices. These are dynamically assigned to channels — that is, they automatically play notes received on any channel, using that channel's voice parameters. Provided the controller keeps track of how many voices it uses on each channel, it can be sure that each note it asks for does indeed play. The downside of this is that, in the absence of any kind of Mono mode, it leaves no way of playing pitches directly on a single voice, as is required for wind and string instrument gestures such as slur, trill and portamento, for example.
"By its very nature, General MIDI could threaten to erode the distinctions between competing products and so encourage fiercer competition, lower prices, and lower profits."
Now we come to the issue of 'patches' or 'programs'. Clearly, for General MIDI to enable a pre-recorded music file to play back with its own choice of sound for each part, the specification must include a method of defining the sound in detail. This needs to include not only the timbre, envelopes, modulations etc, but also the specific response to the performance parameters such as pitch and dynamic level (key velocity), since these are likely to be 'scored' in the music file and an integral part of the performance. General MIDI's provision for this is described as follows by the International MIDI Association:
"The current version of General MIDI will define 128 sets of program locations with descriptive names such as Bright Acoustic Piano, Ocarina, Synth Lead 1, etc. Obviously names such as 'Synth Lead 1' don't really say much about a sound, for this reason a specific voice definition table is being discussed by the MMA for laying down parameters with respect to timbre and envelope for all sounds named in the General MIDI specification."
So, General MIDI defines 128 standard sound programs that are to be included on all compatible instruments, across all methods of synthesis and all manufacturers. These sounds are selected by the existing 'program change' message acting just as it did under MIDI V1.0, except that a given 'program change' number will call up the same sound on any sound module. This makes absolutely sure that if you compose a piece of music on your own setup, making selections from the 128 available sounds and storing the program change numbers in the music file accordingly, when you come to replay the piece on another General MIDI sound module, it will use equivalent sound programs and so sound as similar as possible to the original. Quite how similar will depend on how closely the manufacturer of the sound module has followed the specifications of the standard sounds when programming them in terms of its particular architecture and low-level sound parameters.
Of course, the General MIDI specification does not try to prevent a compatible sound source from also having non-standard sound programs (fixed in ROM or programmable) outside the specification, provided always that the General MIDI implementation includes the standard ones in the defined manner. A more advanced sound source would be able to offer the choice of General MIDI mode in which the 128 program change numbers called up the standard sound programs, and (for want of a better term) a more general MIDI mode in which the General MIDI sounds were just one of a set of alternative sound banks, perhaps selected by the recently introduced 'program bank select' controller message. [Roland's new Sound Canvas module, which supports the company's GS Standard, does just this. GS Standard is a new Roland MIDI specification which is compatible with General MIDI - Ed.] The non-standard sounds could even be arranged in parallel as 'shadows' of the standard definitions, providing alternatives or variations which retain the overall character and musical applicability of the originals. However, the important point is that every compatible receiver will deliver the 128 standard General MIDI sounds by default; so that a controller can rely on them without the user having to programme or operate the sound source in any way.
The task of formulating a language in which the standard sounds can be defined is an extremely daunting one, probably even more so than deciding what kind of sounds should be included in the relatively small set of 128, and what their detailed definitions should be. Perhaps the MIDI Manufacturers Association will be tempted to issue the definitions as audio recordings of actual sounds, giving the manufacturers a reference model for each one. This would certainly make implementation much easier — manufacturers will then be able to sample the model sounds directly into ROM, ensuring that they precisely meet the specification and saving considerable development costs.
In addition to channel voice messages (note-on/off, pitch bend, controllers, etc) based upon the existing MIDI V1.0 messages, General MIDI has two new messages. The first is a mode message that selects between General MIDI and MIDI V1.0 on those instruments that offer both. The second is an 'all sounds off' message, which will act as a 'panic' button to silence notes left droning due to 'note-on' and 'note-off' messages having become muddled. In MIDI V1.0, the 'all notes off' message was included for just this purpose but, unfortunately, due to ambiguities in the written specification, some instruments implement it as an 'all notes off' command, others as an 'all keys off' announcement, and others as nothing at all — so it cannot be relied upon by controllers. Because there are no spare values in the MIDI status byte region reserved for mode messages, the two new mode messages in fact take the form of previously unused controller messages.
So when might we see the first General MIDI instruments? Hopefully not before the specification is agreed by the major electronic instrument manufacturers. Some will welcome it as essential to the continued existence of MIDI, at a time when development of and support for MIDI is in decline along with the electronic musical instrument market as a whole. We can look forward to an initial spurt of 'new' instruments that are simply existing models with General MIDI tacked on and the price adjusted accordingly, followed possibly by better value sound modules specifically designed for a lower budget. Maybe new manufacturers will be attracted to the music arena from existing consumer areas, and produce minimal low-cost sound modules at a fraction of current prices. There are even proposals for new applications, such as the 'CD+MIDI' described by the International MIDI Association, wherein you could "purchase a compact disc, put it in your CD player and have a solo played on your MIDI system — with the correct sound — as well as through your stereo speakers". If successful, this will certainly attract a new kind of purchaser.
In the music software field, General MIDI could offer an escape from the rut of sequencer programs, which have largely saturated their existing market and failed to expand the market into new areas, to more advanced applications and easier-to-use programs that are practical only on consistent and integrated hardware platforms.
Don't be surprised to find that some manufacturers choose not to support General MIDI, and more do so only as an option on semi-professional and professional instruments, rather than move into consumer products. By its very nature, General MIDI could threaten to erode the distinctions between competing products and so encourage fiercer competition, lower prices, and lower profits. One can draw a parallel with the effect of the adoption of the IBM PC as a 'standard' in the personal computer world, giving us a far wider choice of low-cost, but compatible, alternatives than could have been expected if manufacturers had continued to follow independent development paths. Add to this the fear that if improvements are seen to supercede the original MIDI, it could be seen to be becoming obsolete, taking along the instruments that use it. Now you can probably understand why MIDI has remained on Version 1.0 through dozens of revisions and additions, why General MIDI has taken years to get this far from the first such proposals, and why General MIDI has not been called MIDI Version 2.0.
Finally, there's one future development of General MIDI to watch out for in particular. You may once have gone through the process of building up a MIDI studio, and experienced the excitement of choosing from a wide range of keyboards, expanders, etc that could be linked together via MIDI. While the electronic music instrument world was expanding, this was considered a Good Thing for manufacturers and users alike. However, as soon as sales of instruments began to decline, MIDI gave you choices that some manufacturers would rather you didn't have — such as that of buying another company's expander to add on to his controller. Interbrand MIDI incompatibilities began to creep in, making it harder to mix units from different manufacturers than to stick with just one. Well, you ain't seen nothing yet! Particularly because General MIDI reduces, rather than increases, the number of separate units that can be sold for use as a single system, General MIDI will need to be very tightly managed as a standard to avoid each manufacturer breaking faith and announcing its own, special, improved, better-than-everyone-else's 'standard' version of General MIDI. If this happens, users will, like Sir Thomas Beecham, once again be spoilt for choice. As they say, standards are great — that's why we have so many of them!
Effective Automation - Creative mixing with MIDI controlled effects (Part 1) |
Atari Notes |
![]() Technical Introduction |
MIDI-UM - does it work? |
MIDI Automation Systems - How Good Are They? (Part 1) |
![]() Virtual or Reality |
![]() General MIDI - Who? What? Why? When? |
Wot, No Keyboards? - The Alternative MIDI Controllers Session (Part 1) |
Technically Speaking |
MIDI Theory and Practice |
Technically Speaking |
![]() Get Organised! - Keeping Track Of MIDI Connections |
Browse by Topic:
Feature by Chris Jordan
mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.
If you value this resource, you can support this project - it really helps!
New issues that have been donated or scanned for us this month.
All donations and support are gratefully appreciated - thank you.
Do you have any of these magazine issues?
If so, and you can donate, lend or scan them to help complete our archive, please get in touch via the Contribute page - thanks!