Another problem with supporting special-purpose computer-music hardware is that it can be obsolete by the time its controlling software is considered usable. Hardware is changing so quickly and software environments are becoming so elaborate that we are almost forced to write software that will port easily from one hardware platform to the next. A major reason for the success of the Unix operating system--``the ultimate computer virus''--is that it ports readily to new processors. We don't have time to recreate our software universe for new, special-purpose machines. A compromise that works well today is not far from the original Music V design: write all software in a high-level language, but take the time to write hand-coded unit generators for each new processor that comes along. It is possible to implement all known synthesis and processing techniques on top of a relatively small number of unit generators comprising roughly 90% of the computational load. Most existing,widely available, computer-music software systems are built upon the unit generator concept, e.g., Csound (MIT), cmusic (UCSD), MAX (IRCAM), and the Music Kit (NeXT).
Over the past several years, MIDI-compatible digital synthesizers have been ``taking over the world'' as the synthesis engines used by composers and musicians everywhere. MIDI-compatible digital synthesizers provide far more synthesis power per dollar than we ever saw before. Unfortunately,the development of new techniques is now primarily in the hands of industry. We do not always hear about new synthesis advances in the Computer Music Journal. Instead, we are likely to first hear opaque marketing terms such as ``LA Synthesis'' with no paper in the literature that explains the technique.
The ease of using MIDI synthesizers has sapped momentum from synthesis algorithm research by composers. Many composers who once tried out their own ideas by writing their own unit generators and instruments are now settling for a MIDI note list instead. In times such as these, John Chowning would not likely have discovered FM synthesis: a novel timbral effect obtained when an oscillator's vibrato is increased to audio frequencies.
Unlike software synthesis or the Samson Box, MIDI synthesizers require little effort to control. The MIDI specification simplifies the performance-instrument interface down to that of a piano-roll plus some continuous controllers. In other words, MIDI was designed to mechanize performance on a keyboard-controlled synthesizer. It was not designed to serve as an interchange format for computer music. MIDI instrument control is limited to selecting a patch, triggering it with one of 128 key numbers, and optionally wiggling one or more controllers to which the patch may or may not respond in a useful way. Rarely is it possible to know precisely what the patch is actually doing or what effect the controllers will have on the sound, if any. The advantage of MIDI is easy control of preset synthesis techniques. The disadvantage is greatly reduced generality of control, and greatly limited synthesis specification. As Andy Moorer is fond of saying, ``no adjustment necessary--in fact, no adjustment possible!''
As Max Mathews said, ``Direct digital synthesis makes it possible to compose directly with sound, rather than by having to assemble notes'' [10]. Thus, part of the promise of computer music was to free composers of the note concept. In Music V, the note concept became a more abstract event that could denote any infusion of information into the sound-computing machinery. The sound generated by an event could be blended seamlessly with sound generated by surrounding events, obscuring any traditional concept of discrete notes. Commercial synthesizers and MIDI have sent us back to the ``Note Age'' by placing a wall between the instrument and the note that is played on it.
MIDI synthesizers offer only a tiny subset of the synthesis techniques possible in software. It seems unlikely that future MIDI extensions will recapture the generality of software synthesis until instrument definitions are provided for in some way, such as in the original Music V.
The recently introduced Kurzweil K2000 synthesizer has a built-in graphical patching language. One sees ``preset'' patches on the LCD, but each position in the patch can be occupied by one of 20 different unit generators. This can be seen as a step in the direction of MIDI-based instrument definition. By supporting patch definition in terms of unit generators in the catch-all system exclusive message of MIDI, it becomes possible to create instruments on the fly in a musical performance on the synthesizer. A reasonable next step would be to move this function out of the system exclusive message and into the standard MIDI protocol.
A straightforward way to add instrument definitions to MIDI would be to define a set of standard unit generators and a syntax for patching them together and binding message-parameters and controllers to the unit-generator parameters. That way, in addition to the loosely described, standard timbre names, such as ``honky-tonk piano,'' in the General MIDI specification recently introduced by synthesizer manufacturers, there could also be a handful of simple yet powerful unit generators capable of the General MIDI timbres and much more. Adding instrument definitions to MIDI would not significantly increase the size of the typical MIDI file, and the reproducibility of a MIDI performance--the whole point of General MIDI--would actually be correct. Of course, inexpensive synthesizers not capable of enough voices specified as unit-generator patches could continue to implement named timbres in their own way, as provided by General MIDI. It would also be helpful if General MIDI would define a few controller parameter names for each timbre, such as ``brightness'', ``legato'', and so on, so that greater expressiveness of performance is possible at least in terms of a generally understood vocabulary. In the more distant future, it would be ideal to have a means of supplying the ``source code'' for new unit generators in the MIDI stream. At that point, MIDI instrument definitions would finally be as general as those of the Mus10 program.