Dr T's X-Or
Universal Patch Editor/Librarian
Dr. T's universal patch editor/librarian makes the journey from Atari to Mac picking up a host of new features en route, as Kendall Wrightson discovers.
Most MIDI software houses tend to write programs for either the Macintosh or the Atari, and a few specialise in the far smaller PC and Amiga markets. One exception to this rule is Passport Designs, their mid-priced MIDI sequencer Master Tracks Pro being available on all four platforms. Massachusetts-based Dr. T are equally happy to cross party lines, though unlike Master Tracks, X-oR began life on the Atari, migrating to the Mac via the PC and Amiga. However, far from being a cut down version of the Atari original, the Mac variant of X-oR has amassed a whole host of new features during its two year odyssey, reaching version 2.0 in the process.
Dr. T call X-oR a "Universal System Exclusive Orchestrator", the word "universal" referring to X-oR's ability to store, edit and organise data from over 90 different MIDI devices including synths, ROM players, mother keyboards, effects units and MIDI patchbays (see list). New device 'profiles' are being written and released all the time, and they're available free of charge to registered users. If your idea of fun is deciphering system exclusive data sheets, you'll be glad to know that Dr.T also publish E-oR, an application for programming new profiles from scratch.
X-oR runs on any Mac with one megabyte of RAM and a hard drive, though dual floppy owners can just about get away with it. For hard disk users, installation is as simple as dragging the X-oR application plus relevant profiles into a folder on your hard disk - yes, X-oR is not copy protected! The next stage is to tell X-oR what kind of MIDI interface and/or MIDI patchbay is connected to your Mac's printer and/or modem ports. X-oR is fully compatible with Mark of the Unicorn's excellent MIDI TimePiece - a networkable interface/patchbay that provides eight fully independent ports - while Opcode's Studio 5 (a similar device to the MTP) and Lone Wolf's optical fibre encoding MIDITap will be supported in subsequent releases (The MIDI TimePiece was reviewed SOS September 1990).
System Exclusive data transfer generally involves 2-way communication, device A requesting data from device B, and B transmitting the relevant data. This bidirectional dialogue demands that both MIDI In and Out sockets of device B (a synth, for example) need to be connected to device A (a Mac running X-oR) for the successful transfer of information. Therefore, if you don't own a MIDI patchbay - ie. all your devices are connected in a MIDI Thru daisychain - you'll need to re-patch MIDI cables each time you work on a different device.
If you're lucky enough to own a MIDI patchbay (Dr. T call them MIDI switchers), X-oR prompts you to recall a new configuration. However, most MIDI patchbays can change their routing on receipt of a MIDI program change, and X-oR can be configured to perform this task automatically. The latest multimerging MIDI patchbays, such as MIDITemp's PMM88 (SOS May 1990) and the aforementioned MIDI TimePiece, are both capable of routing all MIDI inputs to any one MIDI output, and therefore do not need to be reconfigured for each device.
Having successfully worked out the capabilities of your MIDI patchbay and defined the relevant configurations, stage three involves adding profiles for all your MIDI devices into X-oR's Instrument List Editor, a dialogue box that automatically appears the first time you run X-oR. Once configured, your particular collection of profiles can be saved as a default, though any number of Instrument Lists can be defined - ideal for the roving programmer.
The final stage in configuring X-oR is to define the Mac ports (and cables, if you are using an MTP) to which each MIDI device is connected, plus the MIDI channel (1 to 16 or all) and/or System Exclusive Channel (1 to 128) on which each device is currently listening. These parameters are entered in the Instrument Setup window, which lists all the MIDI devices defined in X-oR's current Instrument List (see Figure 1).
Several other parameters are defined in the Instrument Setup window, including Switcher program Number (Swch Prg) which determines the program number X-oR will transmit to your MIDI patchbay (none, 0 through 127, or Ask). The Bank Update on/off parameter aids in editing single patches from multi-timbral banks. For example, when storing a single Korg M1 patch (Korg call them Programs), any multi-patches (Combis) that contain relocated patches are automatically updated to point to the new location.
Most MIDI devices contain several types of data; for example the Roland D110 has eight separately addressable timbres (Part Tones), a multi-timbral setup (a Patch), a Drum Setup and a Timbre Table. X-oR refers to each group of data as a 'module'. The Performance window - X-oR's nerve centre - lists all the modules belonging to the MIDI devices in the current Instrument List. In the screen shot in Figure 1, the Performance window lists the modules for two Korg M1s, an Emu Proteus 2, and a Roland MT32.
Perhaps X-oR's most powerful single command is Get All Banks (available from the MIDI menu). When selected, X-oR loads all the data for every module listed in the Performance window, and where necessary automatically configures your MIDI patchbay — a sort of total recall for a MIDI setup, Get All Banks is a godsend for busy studios and programming suites, saving vast amounts of setup time between sessions. For the keyboard roadie too, the ability to take a 'snapshot' of a show's entire MIDI setup is a dream come true.
For sessions or gigs where MIDI instruments do not receive patch changes (either manually or from a sequencer), X-oR provides a Get Performance Patches command, retrieving only the currently selected Patch for each module in the Performance window. A corresponding Send Performance Patches facility is provided, but I searched in vain for a Send All Banks command, a curious omission making it necessary to send Bank by Bank all the data for a Performance, using the Send Bank command.
Any single device can be inhibited from sending its Banks by setting the 'Get' performance enable switch (in the Instrument Setup window) to off. Alternatively, you can Instruct a device to send only its current patch when initiating a Get All Banks command by turning off the 'Bank' enable switch. The Instrument Setup window also provides switches to inhibit sending, loading and saving Performance files, all in the name of saving time when using large MIDI setups. For example, if you are not using a certain device during a particular session, there's no point in continually sending, loading or saving its banks.
Having received a Performance via SysEx (or loaded one from disk), clicking a module in the Performance window displays a bank of patches (or data if the module contains Global settings etc.) belonging to that particular module. For example, in Figure 1, the highlighted module contains Korg M1 programs, therefore a Bank of M1 programs is displayed. To make the Mac screen less cluttered, only Banks from the currently highlighted module are displayed, thus if the M1 Combi module in Figure 1 was selected, the M1 program window would be replaced by a window full of M1 Combis. If at this stage another Bank of Combis was loaded from disk, a second Combi window would appear, since the data it contains is of the same type.
With two Bank windows open, you can drag patches between Banks (in copy, move or swap mode). Clicking on a patch name transmits it to an instrument's edit buffer, while double clicking opens a Rename Patch dialogue box. Banks can be independently loaded, saved, sent and received (using Load, Save, Send, and Get Bank commands respectively), and accessing New Bank from the File menu creates a bank of initialised patches.
As X-oR is available on four different types of computer, Dr. T have managed to build in a certain amount of file compatibility. For example, a bank of synth patches saved on the Atari can be read by the Mac version of X-oR (via the Apple File Exchange utility). Conversely, Mac X-oR can save a Bank of Patches in MS-DOS format. As an added bonus, X-oR is also capable of reading some banks generated by Opcode's Galaxy, X-oR's main rival (see review SOS October '91).
To ensure thatX-oR recalls a MIDI patchbay configuration when sending data, the Switch While Sending (Sw. on Send) parameter should also be set (none, 0 through 127, or Ask).
Another type of file generated by X-oR is the Library, into which individual patches can be copied to build up a database of patches. Each Library file holds patches for a specific type of module (such as Korg M1 programs, Kawai K1 singles etc.) and patches can be listed alphabetically or by date - an excellent idea (see Figure 1).
As each patch is dragged into the Library window, X-oR presents a dialogue box offering room for a small amount of descriptive text, plus the ability to assign (up to) eight key words from a list of eight headings: Categories; Instruments; Percussion; Qualities; Materials; Technique; Audio & MIDI; Sound FX. Each heading provides a preset pop-up list containing a large number of keywords such as Keyboard, Brass (Categories), Flute, Cello (Instruments), Rubber, Nylon (Materials) (!) and so forth.
The assignment of keywords makes patch hunting a frustration-free experience, since the same keywords are available to X-oR's Find Patch dialogue box, along with logical operators such as And, Or, and Not. Thus, searching for bright brass or wind patches that aren't assigned to aftertouch or breath control is no problem.
X-oR is intelligent enough to display a warning when a patch being dragged into a Library file bears an identical name to an existing Patch. Due to my previous (non-X-oR) efforts to file synth patches, I have discovered on several occasions that two patches might bear the same name but sound completely different. Fortunately X-oR provides a handy Compare Patches feature that displays a percentage 'difference' between the Patches, and provides a list of the parameters that differ - excellent idea.
In addition to the standard Cut, Copy and Paste facilities, X-oR's Edit menu also contains a Clear (initialise) facility, and the very wonderful Paste Sections, a command that allows predefined sections of a patch to be copied from one to another, to a group of patches, or to a different section within the same patch. It's a great feature, making everyday tasks like copying effects parameters much faster.
Choosing Paste Sections (after a Copy command) displays a dialogue box containing three popup boxes: From Section; Sub Section; To Section (see Figure 3). A 'section' comprises a specific group of parameters, typical examples being Oscillator, MIDI Controllers and Effects settings. A sub-section is a smaller part of a section, such as Volume or Filter envelopes.
Editing single parameters is accomplished by clicking on a patch in a Bank window and pressing command-E (or selecting Patch Edit from the 'Window' menu). X-oR is supplied with editing profiles for around 90 devices, and all use the same controls: sliders, scrollable text boxes, and envelope graphs (see Figure 4).
Unlike the Edit screen in Opcode's Galaxy, X-oR makes no attempt to squeeze all the available parameters into a 9-inch window (the screen size of the Mac Plus, SE and Classics), so if you have smaller Mac it's necessary to scroll the edit window, or use the Jump To pop-up in the lower left hand corner. The problem is exacerbated on the less powerful Macs, as screen re-drawing takes a second or so each time the Edit window is scrolled. The edit screen in Figure 4 (Korg M1 programs), displays around 30% of the available controls.
Another major difference between Galaxy and X-oR is that the latter's edit screens do not contain any graphics, so they all look identical and rather plain.
A less exact approach to patch editing is provided by X-oR's Blend and Mingle Patch Generator (see Figure 5). The two Blend algorithms create a new Bank of patches by 'averaging' the corresponding parameter values of two source patches either gradually or randomly. So, you could apply gradual blending of a piano with a string patch to produce a bank with a piano in the first patch location and a string patch in the last. In between X-oR generates 97 (or 30, or 62 or whatever, depending on the instrument) variations, the middle numbered patch being a 50/50 blend.
Whereas a gradual blend will always produce the same result, a random blend will produce different results each time, even with the same source patches. Random blend is therefore the algorithm to try when inspiration fails. The two Mingle algorithms randomly swap parameters between two source patches, but like Blend, their results can be moderated by 'masking' parameters, ie. keeping certain parameters fixed.
Another tool for those inspiration-free evenings is the Random Patch generator which produces a bank of random variations based on a single source patch (see Figure 6). Once again a parameter mask can prevent a ridiculously high LFO pitch mod depth parameter from making all the new patches sound like a police siren, while the chaos percentage buttons control the subtlety of the randomisation process.
X-oR provides two ways to audition patches: ScreenKeys and Mouse Play. The former is an on-screen MIDI keyboard that automatically configures itself so that it plays over the correct MIDI channel to trigger the sound you are editing. The latter is activated by pressing the option key on the Mac alphanumeric keyboard, whereupon the cursor arrow icon turns into a loudspeaker and a MIDI note is triggered. The pitch of the triggered note is determined by the horizontal position of the mouse while vertical movement controls the velocity - sounds convoluted, but it works very well.
If that's too simple for you, you can customise Mouse Play via a preferences box to trigger a glissando (playing any one of 13 types of scale in any key) rather than an individual note. Further variations can be introduced by pressing the command key, upon which horizontal mouse movement is translated into pitch bend, and the control key, which allows vertical mouse movements to generate MIDI continuous controllers.
It's a tribute to Dr. T that X-oR is so easy to use despite the complexity of this type of program and the number facilities on offer, in case of real difficulty, most X-oR profiles include a help file, while a MIDI Monitor window displays raw MIDI data for more advanced troubleshooting. Owners of Opcode's Vision or Studio Vision will naturally gravitate towards Galaxy, X-oR's main rival, since there are several advantages to be gained from running Galaxy and Vision/Studio Vision together, such as automatic patch subscription, and Opcode MIDI System compatibility (For more on OMS and Galaxy, see review in SOS October '91).
Galaxy also scores in the aesthetics department, its graphic edit screens making X-oR's seem dowdy by comparison. I also missed Galaxy's ability to record a little riff and import a MIDI file to test sounds. It's a shame about the lack of a Send All Banks command too, but on the other hand, X-oR is £69 cheaper than Galaxy and is supplied without copy protection. In summary then, X-oR is not pretty, but it provides an unrivalled set of tools to store, edit and organise patches on a computer.
Dr. T's X-oR v2.0 £279.63 inc VAT
(Macintosh version reviewed; ST, PC and Amiga versions also available).
Zone Distribution, (Contact Details).
Review by Kendall Wrightson
Previous article in this issue:
Next article in this issue:
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!