Hybrid Arts GenPatch
Software for the Atari ST
A generic patch librarian from a familiar American company. Vic Leonard looks at a convenient way of solving the problems of patch storage and organisation - provided you've got an ST.
If you're fed up of losing track of the precious synth patches on countless RAMs, ROMs and data cards - or tired of paying for them all - a patch librarian could be the solution.
IN DAYS OF old, with sample and hold, when memories weren't invented... Remember pre-MIDI analogue synths such as the Juno 6? No MIDI, no memories and loads of knobs and sliders. Then along came MIDI, digital synthesis and the like, but still with limited memory space - take a TX7 - one bank of voices and a tape interface is hardly hi-tech. Today the problem persists with the MT32 among others, because any edits are lost once power is turned off.
Any sequencer can store MIDI voice or parameter data so long as it has access to System Exclusive information or a data dump, but the advent of the Atari 520/1040 with its large memory has meant that libraries of sounds can now be quickly stored and retrieved - Hybrid Arts' GenPatch is one such piece of software.
GENPATCH IS A GENeric PATCH librarian - it receives and sends data through MIDI, usually with SysEx codes. This is achieved by using a two-part configuration; a request set for obtaining data from a device and a transmit set for sending data to it. Each set is made up of instructions (which essentially form a computer program with a limited number of commands) and each pair of sets constitute a block, which can be appended to each other forming a multi-block file, which has the ability to send data concurrently to a number of different synths using one file. The transmit set can be sent through the GenPatch desktop accessory which can be installed onto most Gem-based software, although some programs do not allow this due to desk accessory space being over-written by it - C-Lab's Creator will not permit it and Steinberg's Pro24 becomes unstable if it is installed.
A large number of preset configurations are included as part of the standard package (see Figure 1), and these are being updated as new MIDI equipment appears.
GENPATCH USES THE key disk method of copy protection, and on boot-up, the user is confronted with a picture of a computer and a MIDI keyboard connected by a lead which appears to have a rather large rodent running along inside it. Fortunately this animation can be turned off as it gets highly annoying after a while. Oh, have a look at GenPatch information under Desk accessory - there's a digitised face which winks at you.
Back to the serious stuff. The menu bar has five headings. First off is Desktop/Accessories which has the usual Gem function of allowing utilities to run while the program is resident in memory. Along with the supplied accessories - Control panel, GenPatch and Install printer - a utility to read the amount of disk space left would be useful. Next is the File menu which controls the interface with the disk drive - loading and saving of files, configuration and Macros (which are sentences of up to 11 bytes in length and can be executed by a single key push under certain circumstances).
Next comes MIDI, which controls the MIDI ports. MIDI-Disk and MIDI-Computer use the GenPatch presets to receive data either straight to disk or into computer memory, while Config-Computer allows user configurations. Computer-MIDI and Disk-MIDI transmit data via the MIDI Out port, either from memory or direct from disk. Show MIDI On Screen allows MIDI data to be viewed as it flows through the MIDI in port, utilising a 10K buffer to store data if the flow is too fast for the screen to handle - particularly true with sample data. Clear MIDI Buffer is self-explanatory.
The Option menu follows: Configuration Editor allows any of the 16 configs currently resident in memory to be altered and Copy Current Configuration then permits any Config to be copied to any of the other 15 locations - useful if, for instance, the same Config is required for use on different preset MIDI channels. This saves the hassle of having to write the whole set of commands again. Macro Editor allows editing of up to 36 Macros, each of which correspond to the computer keys 1-0 and A-Z, and Print Config/Macro sends the relevant data to a printer. View/Print Memory contents allows the file in memory to be seen/printed, while Memory Information will tell you how many blocks are being held in memory in the case of a multi-block file, and how much memory space is being used up. A memo page is also provided so that text can be saved onto disk with a specific file.
Finally, there's a Switches menu which permits turning on and off of functions such as MIDI Thru, animation and even custom mice.
AS PREVIOUSLY MENTIONED, the possible commands are fairly few in number - 11 in fact. Most are written in Hexadecimal - base 16 to you. For anyone in need of a quick maths lesson: each "tens" column value is worth 16, and 10-15 in the "units" column are represented by the characters A-F respectively. For example, 21 hex = 2X16 + 1 = 33 in decimal. Back to GenPatch.
- Send Sentence will send a group of up to 16 bytes, usually a dump request or header information. Specific parameter commands can also be sent
- Send Data can only be used in the transmit set and is followed by the number of data bytes to be followed.
- Receive Sentence is the complementary command to Send Sentence and will expect up to 16 bytes to be received from the MIDI device.
- Receive Data corresponds to the Send Data command and can only be used in the receive set.
- Receive Any will receive a user-determined number of bytes and ignore them. This is primarily used to ignore the MIDI channel received in the Receive Set, and so allows the user to specify the MIDI channel for transmitting on. It is also useful for ignoring checksum (error-checking) data which GenPatch doesn't use.
- Loop n Times will make part of the Receive/Transmit Set loop a set number of times. This is used for sending data to different memory locations within a bank and is particularly useful in sample dumps, where Loop n Times = 0 is used. The program will continue to loop until the space bar is pressed, and there is a visual meter showing incoming or outgoing data which will tell you when the MIDI flow is complete.
- End of Loop links up with the previous, and boundaries the commands being looped.
The final three instructions all require a response from the user at the point of transmission.
- Byte w/Input asks for a patch number to send the data to. This is often used with program numbers and the user places a default value after this command.
- Byte w/Increment+ is used within a loop so that a particular byte (usually specifying program location) can be increased by one each time the loop is traversed. The user has the option of asking for a prompt at the start of transmission to set the lowest program number, or of simply setting a default value.
- Send Channel asks for a MIDI channel with a set default value. The actual bytes can be On (bulk dump, for example), 1n or 2n, where n corresponds to MIDI channels 1-16.
Figure 2 represents a particular custom configuration which will store 1 bank of DX/TX voices without the TX performance functions. Note the 11 commands on the left-hand side. Clicking on an instruction number and then on a command will place that command into the relevant set. Insert/Delete are self-explanatory, while Done will save an edited Config and Cancel will leave it unchanged.
What do the numbers actually mean? Look at the request set: F0 is the System Exclusive Status code, 43 is the Yamaha Identification code, 20 corresponds to MIDI channel 1 in Dump Request mode, 09 is the type of dump request (32-voice bulk data) and F7 is the end of System Exclusive, effectively a full stop. The computer has sent a dump request and so receives F0 43 and then 1 byte for the MIDI channel which it ignores. In instruction 4, 09 has the same meaning as before and 20 00 is the number of data bytes in hex - 4096 in all. We actually receive 4097 bytes in all because the final byte is the checksum which GenPatch can't check - it assumes that the correct data has been received. A final F7 finishes the conversation.
The Transmit Set is similar except for lines 1, 2 and 6. The first instruction means as follows; F0 43 (as before), 10 corresponds to MIDI channel 1 in Parameter Change mode, 11 is a TX function parameter change, 07 is for the memory protect switch and 00 turns it off. The 0-25 second pause in instruction 2 is to ensure that the ensuing data doesn't run into a brick wall, as the TX7 requires time to react to the memory protect off. Line 6 then switches the memory protect back on.
USE OF THE presets is really quite straightforward, with the notable exception of the four items under the GenPatch heading. User input permits the retrieval of data from any synth with a MIDI dump command - the user shuts off the Config by hitting the space bar, thus exiting a loop n times = 0 command. Sample Dump is for Sample Dump standard adhered to by certain samplers such as the Emax and Prophet (or should I say Yamaha) 2002. This does not apply to the Akai S900 - this has its own Config. The SP12 allows data transference five times faster than the disk drive on the SP12 itself.
I've used GenPatch to transfer data to TX7's, CZ101, S900, S700 (look, no quick disks), DDD1 and FB01 to name but a few. Unfortunately, some presets don't work, although it is questionable how much Hybrid Arts are to blame as they are reliant on the MIDI parameters supplied by the manufacturers, and these are often incorrect in some way or other. For instance, the TX81Z Config doesn't work due to one incorrect digit and in the manual there are three different sets of MIDI parameters depending on which language you read them in - nice one Yamaha. I also have certain custom Configs for the D50, SPX90, S900 programs only, SBX80 and so on - in fact any device utilising System Exclusive can be written for. Any updates from Hybrid Arts are gratis, and there are some software companies who could learn from this approach.
BEARING IN MIND the cost of most ROMs/RAMs and the unreliability of tape storage, a generic librarian is essential if you own lots of MIDI equipment, and GenPatch does its job well. A second chance is always given before sending data and hence over-writing memory, and there are also configuration notes supplied on the disk with specific advice for each synth.
The only problem is that of writing instruction sets for new synths, especially if MIDI parameter data is not included in the manual. You either wait for Hybrid Arts to supply it at a later date or latch on to a friendly software designer.
Price £129.95 including VAT
Gear in this article:
Review by Vic Lennard
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!