Author Topic: MIDI: The Next Generation by Vic Lennard (May 1992)  (Read 250 times)

Offline chrisNova777

  • Administrator
  • Hero Member
  • Posts: 8748
  • "Vintage MIDI Sequencing + Audio Production"
    • | vintage audio production software + hardware info
MIDI: The Next Generation by Vic Lennard (May 1992)
« on: July 12, 2020, 01:47:59 PM »
MIDI: The Next Generation
by Vic Lennard

When you look over the very first MIDI Specification, it's clear that the MIDI pioneers knew what they were talking about. Very little has been changed from that original spec, although there have been various developments. Sample Dump Standard and MIDI Time Code are obvious additions, although lesser functions such as the Reset All Controllers command have also been periodically added. Standard MIDI Files (SMF), instigated by the MIDI Manufacturers Association (MMA) in 1988, was not agreed to by the Japanese MIDI Standards Committee (JMSC) until 1991. This accounts for why it is only the present range of synths by Roland, Yamaha and Korg which have added the ability to read and write SMFs with the onboard sequencer.

Due to a re-organisation of the JMSC and a new-found understanding between the MMA and JMSC, there have been various additions to the MIDI specification as recently as the last 12 months. These fall into two categories; Approved Protocols (AP) and Recommended Practices (RP). An Approved Protocol is part of the Detailed MIDI 1.0 Specification and is used when previously undefined messages within the Specification are classified. A Recommended Practice is a new application within MIDI, the use of which is not necessarily binding to the manufacturer members of the MMA and JMSC. An example of this is SMFs; many manufacturers have their own proprietary methods for saving sequence information.

This article is intended to give an overview of the APs and RPs which have come into existence since the middle of 1991. It's fair to say that movements within MIDI prior to that point had been few and far between; the last addition was that of Bank Select and the defining of certain Effects Controllers (see MT, October '90).

The immediate problem with any MIDI developments is that of making them retrospective; if a MIDI device is hardware-based, there's little likelihood of it being updated to include new features. If it's software-based, then it comes down to whether new functions can be uploaded from disk or whether a new EPROM is needed. If the latter is the case, it's often an expensive exercise; fitting of replacement ROMs is often a job for a qualified engineer.


Control change messages are used for altering voices by the use of MIDI Controllers. The most common of these are Modulation (#1), MIDI Volume (#7) and Sustain Pedal (#64). All MIDI Controllers can take up to 128 values, which is fine for controllers which require a smooth change of values such as modulation, but is less than perfect for switch-type controls such as sustain pedal. In this case, values of 63 and lower signify "off" while values greater than 64 signify "on".

All Sound Off was introduced at the end of May. This is MIDI Controller #120, which effectively includes it in the area reserved for special mode messages such as All Notes Off and Reset All Controllers. This controller is intended to silence all notes currently sounding on the received MIDI channel, but is not to substitute for the correct manner of using MIDI Notes On and Off. The point of this controller is to support a "panic" button; many keyboards allow you to program MIDI Controllers to buttons or faders.

Legato Footswitch (MIDI Controller #68) was added to the spec at the end of December and switches the receiving synth into Mono mode. Any note received before the Note Off of the currently-sounding note gives a change of pitch without a new attack. On de-activation of the parameter, the receiver returns to its previous operation mode. Legato footswitch is intended to be purely a performance control; MIDI Mono mode 4 is supposed to be used when true monophonic status is sought.

There is a finite number of MIDI Controllers; excluding the mode messages there are 119 in total. Of these, #0-31 are partnered up with #32-63 to provide 14-bit resolution when needed. The fact that very few devices have ever used this second set should be a cause for concern - very few sequencers chase controller values when you start in the middle of a song. Consequently it was decided that before MIDI Controllers followed the Dodo, ten should be put aside to be used specifically as Sound Controllers - a December addition to the spec. Controllers #70-79 are to be used to control sound qualities such as Harmonic Content (#71), Attack Time (#73) and Brightness (#74) in a synth, but all names are simply defaults; manufacturers can assign them as they wish as long as they detail the specifics in their manuals. For multi-fx units, these ten controllers default to being used to switch on or off the various effects. These include Reverb (#75), Compressor (#71) and Pitch Transposer (#77). However, they could be used for effects depths, intensity or type; again, manufacturers are expected to clearly outline their uses. This shows one area in which MIDI has moved with the times; MIDI Controllers #64-95 were originally defined to be for switch-type controllers, but this was too severe a limitation of their use. Consequently, Sound Controllers allows the ten reserved controllers to be used either as switches or continuous controllers.


System Exclusive (SYSEX) messages are usually both manufacturer- and device-specific; for instance, bulk dumps or parameter changes for a Korg M1 will not work with a Roland JD800. However, there are times when messages need to be sent to all MIDI devices in a system, each of which either recognise and act on a message or ignore it. Such messages are known as Universal SysEx, and have the first three bytes of:

$F0- SysEx start.
$7E/$7F - Non-Real Time/Real Time
- Device number

Non-Real Time messages are used when information doesn't need to be instantly acted upon; MIDI Sample Dump is one example. Real Time messages are intended for immediate digestion; MIDI Time Code Full Messages (which transfer the current SMPTE time in one message) are a good example of this.

To differentiate between the different messages within one group or the other, two sub-IDs are used. The first of these gives the application type while the second gives the type of message within the application. Up until May '91, the only members of these groups were Sample Dump and MIDI Time Code messages for the Non-Real Time group and MIDI Time Code Full Message and User Bits for the Real Time group. However, there were many changes in '91.

Standard MIDI Files have a message to handle changes to Time Signature (meta-event $FF $58) and a message of this type was duplicated in the Universal SysEx Real Time group. Notation Information took a sub-ID #1 of 03 in June which introduced three variations: Time Signature Immediate (which works in the same way as the SMF variety), Time Signature Delayed and Bar Marker. Bar Marker is intended to provide a new high level of synchronisation, and all messages within the Notation Information section will depend on the application of this. In use, there are slight differences dependent upon whether MIDI Clock or MIDI Time Code is being used as the sync source. Time Signature Immediate is effective instantly and so doesn't require the sequencer or drum machine to wait until the beginning of the next bar (indicated by the next Bar Marker). Time Signature Delayed is effective on the next received Bar Marker.

The User Bits message for MIDI Time Code is intended to be used for eventualities like time-stamping or numbering a reel of tape - the kind of thing done only once per session. However, it was decided that the existing message was out of step with SMPTE and so it was re-defined to align it and added in May.

MIDI Time Code cueing messages have been available in the Non-Real Time section since the inception of MTC, and allow cue lists to be programmed remotely. Punch in/out points, Event start/stop points and Event Names are three examples of messages catered for here. In October, most of these messages were duplicated in the Real Time part with the addition of Real Time MTC Cueing. Some messages, such as Delete Event Start/Stop points, have been excluded as such messages wouldn't need to be sent in real time.

Manufacturers working towards General MIDI realised special messages were required to fully realise the possibilities of GM, among other future MIDI applications. Device Control Messages took a sub-ID #1 of 04 in June and commenced with two members to its clan; Master Volume and Master Balance. These effectively play the same part as the hardware controls on the front of a stereo amplifier and allow 14-bit resolution.

December was a busy month with another two additions to the Universal SysEx section. The first of these, File Dump, is one of the most interesting. Anyone who has tried to transfer MIDI Files between different computers will be aware of how fraught with difficulties this is. Disk format incompatibility is the principal problem; for instance, Atari were supposed to have adhered quite closely to the IBM PC format (MS.DOS) and yet few PCs would read ST disks prior to the introduction of the Atari STE, when the writing of the boot sector on the disk was changed. Apple Macs with the "superdrive" use a utility called the Apple File Exchange to read MS.DOS disks, and yet still won't recognise disks formatted on the Atari STE. And what of other computers such as the Commodore Amiga? Again, a conversion program is required; all in all, it's not ideal.

File Dump is intended to allow you to transmit MIDI Files (or any other files) down a MIDI cable - after all, computers working with music need a MIDI interface. This immediately removes the conversion problems between computers. File Dump is within the Universal SysEx Non-Real Time group (sub-ID #1 = 07) and has three message types; Header, Data Packet and Request.

In operation, File Dump is quite similar to Sample Dump except that various different file formats are accommodated. Handshaking is available for closed-loop operation, which generally gives more accurate transfer, and an extra message has been added to the handshaking messages of Wait, Cancel, ACK (acknowledge) and NAK (not acknowledge) - End of File. Filenames are sent with a file so that - multiple files can be transmitted one after the other. Of interest to those involved in file transfer protocols is that eight-bit messages can be used within a file; data is encoded by using eight bytes (each with seven data bits) to send seven bytes of actual data (in eight-bit format).

The final additions to the Universal SysEx squad are MIDI Tuning Standard and Single Note Retuning. Many cultures use tuning other than Western 12-tone equal temperament, and alternative tunings are also finding favour with "serious" composers. Until now, most microtonal tunings were carried out in a proprietary manner under a manu-facturer's own SysEx ID, but MIDI Tuning Standard will make tuning more generic in nature. It consists of two primary messages; Bulk Tuning Dump Request and Bulk Tuning Dump. Both are in the domain of Universal SysEx Non-Real Time, with the sub-ID #1 of 08 being assigned to MIDI Tuning Standard, and incorporate the tuning name in up to 16 ASCII characters.

The frequency data format has three bytes assigned to it; the lowest note is $00 $00 $00 which represents 8.1758Hz (MIDI Key #0) while the highest note is $7F $7F $7E, representing 13,289.73Hz, above MIDI Key #127 which has a frequency of 12,543.88Hz. The format uses an exponential tuning resolution and allows for a fraction of a semitone to be encoded into 14 bits. Consequently, the effective resolution is 0.0061 cents (100 cents is a semitone).

As this is likely to cause multiple tunings to be stored within a MIDI device, messages are also required to provide access to different tuning programs and banks. Change Tuning Program Is Registered Parameter Number 00 03 while Change Tuning Bank is Registered Parameter Number 00 04. Each of these are used with data increment, decrement or entry to allow movement between different tunings and to select which tuning program is required in a bulk dump request.

Single Note Retuning is a Universal SysEx Real Time message intended for real-time performance. One (or a number of) note(s) can have their frequency altered in real time. However, 12 bytes are necessary to change the frequency of a single note, and an additional four bytes are needed for each extra note within a single message, so care must be taken to avoid audible timing glitches.


I wrote an article for MT (Raising the Standard, June '91) detailing the ideas behind General MIDI. This sets out a minimum configuration for any MIDI synth conforming to GM and includes a Sound Set of 128 sounds mapped to specific MIDI patch change numbers so that a song which plays back on a GM sound module from one manufacturer will play back on a GM module from any other. Roland, Korg and Yamaha all have synths purporting to conform to GM. There is also a GM Percussion Map for MIDI channel 10 which details the specific drum sounds for each MIDI note number, certain MIDI Controllers included within the Specification and 24 fully dynamically-allocated voices available.

The main question asked about GM is whether the different sound modules actually sound the same. This is a reasonable concern; I recently heard four synths playing the same tracks; three of these were GM devices while the fourth was a standard synth set up with a GM Sound Set and Percussion mapping. Without going into too much detail, they were certainly different, but appeared to be different productions of the same song. This would tend to justify the existence of multi-manufacturer General MIDI sound modules, although it must be accepted that you get what you pay for. If a GM module retails at £1000, the sound quality is likely to be better than one retailing for £400.

The main problem with GM has been in the misunderstanding of the term "voice", where GM is intended to require 24 voices. If it's taken to be synonymous with oscillator, it's possible to require more than one oscillator (or digital equivalent) to create certain sounds and thus reduce playing polyphony. However, most people understand voice to represent "note" and so expect 24 notes to be available. Roland devices based upon the Sound Canvas (and carrying the proprietary Roland GS logo), have 24 partials - which are analogous to oscillators. Consequently, if any of the 31 sounds requiring two partials are used within a song, the polyphony falls below 24 notes. However, there is a disparity of opinion between GM song authors. Some claim that it's difficult to hear voice-stealing occurring within Sound Canvas while others are particularly aware of it. With at least six new Sound Canvas-derived synths due in 1992, all of which displayed the GM logo at their Winter NAMM Show launch in January, this stone is likely to continue to roll before finishing its moss-gathering.


July saw the introduction of MIDI Show Control to the MIDI spec. This was created for use in multi-media, audio-visual and live performance work and is a Universal SysEx Real-Time Recommended Practice - so it's an optional protocol. Manufacturers can continue to work with their proprietary systems if they wish; however, it seems that many lighting companies are willing to incorporate MSC.

Much of MIDI Show Control is based around the fact that most devices in this field use a cue-list system. A computer running MSC slaves can deal with the most simple cases of controlling events within the individual slave cue lists by using Stop, Go and Resume commands. In this situation, a slave effectively retains control of its internal timing characteristics. The alternative is to have the MSC master provide timing information by outputting MIDI Time Code to the slaves. Many major shows world-wide are already using MSC to control live performance.


The latest application gives a clear way forward for MIDI. MIDI Machine Control (MMC);has been under development for over two years and was finally ratified in January. Anyone who has seen the Fostex system in action cannot fail to have been impressed by the manner in which an Atari ST has been able to control their 8-, 16-and 24-track recorders. By using a software driver (which each software manufacturer has to create), Steinberg's Cubase has been able to transmit the relevant commands to Fostex' MTC1 interface for the R8 recorder (or the 8330 card for the G16/G24) such that the recorder fast-forwards or rewinds to the required position and enters its play mode. The recorder's MIDI interface then transmits MIDI Time Code to synchronise Cubase. Fostex have had a great deal of success with their system, but failed to persuade many other software manufacturers to implement a driver.

MIDI Machine Control, a Universal SysEx Real Time application, will make such a system available to all manufacturers involved in software or transport-based machines. As it is a Recommended Practice, it's likely to receive almost universal support from software writers and hardware manufacturers alike. Fostex have already implemented it with a chip update to their MIDI interfaces, while Tascam have released the MMC100 stand-alone unit. This accepts MMC messages from a computer and translates them into the necessary commands for all Tascam tape recorders which have a serial port.


As Director of the United Kingdom MIDI Association (UKMA), it's been my privilege to watch many of these additions evolve through 1991. With MSC, MMC and General MIDI, there is a basis for the movement of MIDI into areas which would have appeared inconceivable a year ago - the pro-audio and consumer markets. MIDI came into being through the necessity to standardise equipment built by different manufacturers; File Dump and MIDI Tuning Standard continue to take this ideal further.

The first CD+MIDI disk was released at the Winter NAMM Show of '92 by Warner New Media. This provides standard CD audio playback on any conventional CD player, but will also output MIDI data from CD+MIDI players such as Commodore's CDTV. Given a year or so, CD players with a MIDI Out socket could well be selling for around the £200 mark. Used with Interactive CD (CDI) to provide graphics as well, the potential is endless.