...while Kendall Wrightson reflects on a Mac world...
For many musicians and recording engineers, the need to learn MIDI's ins and outs has sparked a desire to delve deeper into computers and software. In the past, this urge has been frustrated by the need to learn microprocessor assembler or a sophisticated high level language like C or PASCAL. However, in recent years, several Mac programs have emerged that protect the would-be MIDI manipulator from such complex programming languages.
The least sophisticated example of the genre — Benoit Widemann's MIDIControl — is also the least expensive; in fact it's totally free (from bulletin boards, Mac user groups etc). MIDIControl offers a menu of standard Mac controls (buttons, check-boxes and scroll bars) that can be placed, sized (and labelled) anywhere on the Mac screen. Once positioned, hexadecimal codes can be assigned to each control, so that you can create a row of MIDI volume sliders, for example, or build a custom editor for your favourite synth (see Figure 1). While no programming language is involved, it is necessary to know hexadecimal, and to understand what the various MIDI codes do.
EarLevel Engineering's HyperMIDI demands no knowledge of hexadecimal, but does require experience of HyperTalk — HyperCard's English-like scripting language. HyperTalk uses simple commands such as Go To (next card), On Mouseup (do something) etc. HyperCard's command list can be extended further through the addition of custom drivers, known as external commands and external functions (XCMDs and XFCNs). These contain software routines designed to provide a specific task, such as control a video recorder or play back a QuickTime movie.
HyperMIDI provides a collection of special MIDI XCMDs and XFCNs, such as TxMIDI (Transmit MIDI), FilterMIDI, ConvertMIDI, and so forth. Once installed into a HyperCard stack (using a special HyperMIDI installation stack) the MIDI XCMDs and XFCNs are available to HyperTalk.
With HyperCard's sophisticated graphic tools and HyperMIDI's XCMDs, it is possible to create a wide range of very respectable MIDI applications. EarLevel bundle several excellent MIDI stacks, including a MIDI delay effects processor, a Yamaha SPX90 editor/librarian, and a guitar strum simulator (Figure 2). For those without much HyperTalk programming experience, it's still possible to create MIDI applications by customising existing scripts or, less taxing still, copying and pasting buttons, sliders, and dialogue boxes. Like MIDIControl, HyperMIDI is shareware, though the author prefers users to pay a $30 registration fee, for which he provides further documentation and update news.
At £395, Opcode's MAX is definitely not shareware, but then you wouldn't expect to pay nowt for a complete object-orientated MIDI programming environment, would you? A development of a program created for IRCAM's unique 4X synthesizer, MAX creates applications (called 'Patches') by interconnecting individual graphic elements (called 'Objects'). There are currently well over 100 Objects, including user Interface Objects such as buttons, pop-up menus, and graphic keyboards. Others manipulate data or transmit/receive MIDI information from the Mac's serial ports, via MIDI Manager and OMS.
MAX Objects can also address NuBus cards, SCSI devices, or indeed anything that can be run, connected to, or fitted inside a Mac. A good example of this is the CD Object that can control an Apple CD-ROM player, allowing playback from any minute:second:block address.
MAX Patches are constructed by selecting Objects from a palette and placing them anywhere within the Patch Window (Figure 3). The Objects in Figure 3 are all represented by boxes, however, others (such as keyboards and sliders) have more elaborate icons. Whatever their shape, all Objects have little black rectangles which represent 'inlets' and 'outlets'.
Clicking an outlet produces a patch cord that can be connected to the desired inlet. Objects are free to be moved around or resized at any time, and as they move, all patch cords move too. When the screen begins to look cluttered, a complete Patch can be collapsed into sub-Patches as send send and receive Objects. Thus it's possible to create highly complex Patches from a library of sub-Patches.
With a little time and imagination, both HyperMIDI and MAX are capable of producing powerful MIDI applications. As a freebie, you can't beat HyperMIDI — every Mac-owning musician should acquire it, even if only for its bundled stacks. Until recently, MAX Patches could only be accessed after parting with £395. However, the privilege is now available for only £80 thanks to the release of MAXplay, a runtime only version of MAX that comes with over 15 useful Patches (MCMXCIX, (Contact Details)). MAXplay will be reviewed next month.
If you use a MIDI applications generator and have created a program you think we should know about, send it to SOS and, if suitable, we might feature it in a future MacNotes.
Feature by Kendall Wrightson
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!