You are here

Linking Synth Sounds To Music Sequences

Tips & Tricks By Martin Walker
Published November 1997

Associating sounds with MIDI datafiles is not difficult, but does require some initial setting up. If your sequences never seem to sound the same as they did last time, Martin Walker may have the answers.

The amount a particular synth gets used often depends on how easy it is to choose a particular sound — when you're sequencing, the last thing you want to do is get up, walk across to your synth rack and squint into a tiny LCD window. Apart from the inconvenience, you want your ears firmly between the monitor speakers, and unless you have arranged your studio around your sound sources, rather than the mixer, then you can never be at the optimum position when changing sounds. Of course, the easiest way round this is to get someone else to change the sounds, while you listen from your comfy seat in front of the mixing desk.

Thankfully, MIDI makes this process a lot easier, since Program Change messages can be sent from virtually all modern sequencers, so that auditioning 128 different sounds per synth is easy, and with Bank Select the possibilities are far greater. Some enterprising individuals even catalogue into their sequencer the names of each sound on their synths, so that they can select from a drop‑down list, rather than an unmeaningful 'Sound 43'. What puts many people off is the amount of time it can take to enter the names in the first place, and the potential problems after editing some of the sounds. 'Sound 43' may well end up completely different a month later, which rather defeats the object. The answer is to use the dreaded SysEx commands, and actually get the appropriate sound data out of the synth (a SysEx dump), so that it can be stored elsewhere (preferably with the sequence data, so that the two never get separated). Then, whenever you load up a particular piece of music, the SysEx data can be sent back to the synth in question, ensuring that every sound is exactly as you left it. The word 'SysEx' puts many musicians off, but it needn't be a complex procedure — once you work out how to do it the first time, subsequent operations are only a button press away. Time for action!

Program Changes

The simplest way to ensure that the correct sounds are in place before you play a particular sequence is to use Program Changes. Yes, I know that I've just pointed out the pitfalls of this approach, but not all your MIDI sources get edited. Some synths may only be filled with presets, and even though I do create and edit some of the patches on my effects units, I don't load and save banks of effects — there's nearly always the same bank of 128 sounds sitting there. For this type of MIDI device, I put an extra track in each sequence, with the appropriate MIDI channel Program Change number entered using the List Editor. This way, every time a sequence starts, the appropriate effect is selected. As long as you allow a short pause afterwards before any notes are played, to ensure that the effect has 'settled down' and will not cause an audible glitch, this certainly beats having to remember which reverb or flange setting you used last time. You can even change effects (or their settings) mid‑song, and most effect units still won't produce audible glitches during the changeover, as long as there's no audio passing through at the time.

The advantage of sending a Program Change message is that only the MIDI In of the device in question needs to be connected to the MIDI Out from your sequencer, unlike a SysEx command, which normally needs two‑way communication.

The Golden Handshake

There are two possible methods of sending and receiving patch data — open loop and closed loop (handshaking). The simplest method is open loop, which is one‑way communication, and totally blind. The patch data is squirted down the MIDI cable towards the appropriate synth, but there's no way of knowing whether the cables are currently connected to the correct synth, or whether any bytes of data got corrupted en route. If there are any mishaps, the sounds may not be updated at all, or if there are stray or corrupted bytes, in some cases the synth may even crash, and require switching off and on again before any of the front‑panel controls respond at all. Corruption of this sort can occur because of intermittent MIDI leads, insufficient buffering on the MIDI interface (which basically falls over when asked to accept a large bank of data in one swallow), or sending the SysEx data faster than the receiving synth can cope with (which is more likely with older synths).

The problem with the open‑loop approach is that the sender gets no information from the other end to tell it whether any problems occurred. For this reason, two‑way communication is needed for many synths, to ensure reliability. Since each end can communicate with the other, this is known as 'closed loop', and if any errors occur, the far end can send a request for the appropriate data to be re‑sent. The larger the amount of data to be sent, the more important it is to be able to use closed‑loop dumps, and this is why, even if an option for both methods exists, the closed‑loop approach is always recommended. Closed‑loop transfers employ 'handshaking': after each chunk of data is sent, the sender waits for an acknowledgement from the other end to say that it's ready for some more data. This ensures that the two ends never get out of sync with each other. Another advantage of closed‑loop transfers is that they are often faster. This is because, although there are extra handshaking messages flying back and forth, the actual data can be sent at a high rate, since any problems will quickly be flagged by the other end and the appropriate chunks of data re‑transmitted. Open‑loop transfers have no such reassurances, so many manufacturers incorporate delays between each chunk of data sent, to try to ensure that the other end always has time to deal with one chunk of data before the next one starts to arrive.

Often, the most reliable open‑loop transfers are those between specific rather than generic devices: for instance, a computer editor for a Yamaha DB50XG daughterboard will be very reliable with a computer editor specifically designed for it, such as the XGedit package, because it knows the correct speed to use with this one device, which will ensure reliable transfers every time. Generic editors and librarians (see later) have to work with a huge variety of synths, and this gives far more scope for problems, so the closed‑loop approach is more appropriate.

Manual Routing

Many people automatically think that a MIDI patchbay will be needed to send SysEx data to a number of connected synths, but this need not be the case. Musicians with eight synths also often believe that they need an 8 In, 8 Out MIDI interface. Again, this is not the case — you need an output for each connected MIDI device (unless you plan to split the 16 channels of a single MIDI Out between two or more synths), but you only need enough MIDI inputs on your interface to cope with the maximum number of simultaneous players to be recorded. Even a single MIDI In could theoretically cope with 16 performances, one on each incoming MIDI channel, as long as they were correctly merged, although it would be sensible to split this over several inputs to cope with the huge amount of data.

All you need for SysEx data is a way to send and receive MIDI to each synth in turn — not to every one simultaneously. For open‑loop sends, you only need a single connection between the MIDI Out of the sending device, and the MIDI In of the receiving one. Since you need this connection for normal sequencing use, no extra MIDI cables are needed to send open‑loop SysEx dumps to any MIDI device. However, if you want to receive a dump from the synth, you need an additional MIDI cable from the MIDI Out of the synth to the MIDI In of your storage device (normally this will be your computer, although some devices allow you to save data onto an external hard drive). For closed‑loop operation, both cables need to be in place simultaneously.

For a professional, time is money, and if you can find half a dozen suitable sounds from a collection of thousands, and all within a few seconds, you'll either save some money, or have more time to spend making music.

The simplest way to connect your synths for data dumps is to use a MIDI switch box, connecting the MIDI Outs from each synth or keyboard to the 'inputs' of the switch, and the MIDI In of your computer to the switch box 'output'. As long as each synth or keyboard also has its MIDI In connected to the sequencer in the normal way, you can then turn the switch to each position and send or receive dumps with no problems. Suitable switching boxes are available from various manufacturers; Philip Rees devices (such as the 5S five‑way switch, and the 9S nine‑way switch) are probably the best known. You need as many 'ways' as you have synths, so that each can have its own switch position. So if, for example, you have a total of eight keyboards and MIDI modules, you would need a 1 In, 8 Out MIDI interface, and a 1 In, 8 Out MIDI switching box. If you are handy with a soldering iron, you could even make your own, and there are web sites only too happy to tell you how — see the 'On The Internet' box.

Automation

Unfortunately, if you have more than two or three synths, the manual approach becomes tedious. The MIDI patchbay provides the same functionality, but each position of the 'switch' can be set up as a MIDI patch. Since most patchbays themselves respond to MIDI Program Changes, it's simply a matter of sending the appropriate Program Change number for each synth, to set up the patchbay connections correctly, and then sending the actual patch data. Suitable MIDI patchbays are available from Midiman (the Winman 4x4/S and Portman 4x4/S), Mark Of The Unicorn (the MIDI Timepiece AV), and Opcode (the Studio 64x) and MusicQuest (MIDI Engine 8 port/SE) — see the /www.soundonsound.com/sos/1997_ar... for further details of these, and a complete roundup of PC MIDI interfaces.

An additional benefit of most of these patchbays is that they have MIDI activity LEDs, which flash in response to any data passing through a particular MIDI In or Out. This can be a godsend if (as inevitably happens) you find one day that no sound emerges from one of your synths. Watching the activity LEDs, along with a mobile indicator such as Deltron's Brighteye (or a home‑built equivalent) temporarily plugged into the synth end of the cables, should quickly enable you to track down the source of the problem.

Going To The Library

Once you have sorted out a way to send SysEx data easily to all your synths that require it, you need a program to actually do the sending and receiving. A software librarian program can combine both functions, and provide the missing link — a means of receiving all the sounds currently in your synths on your computer hard disk, and then sending them back when you next want to play your current masterpiece. Although a few synths require you to press a combination of front‑panel buttons to initiate the procedure, most allow the librarian to send a command that starts everything automatically, which will be unique to each make and model of MIDI device.

Although there are various librarians specific to a certain model of synth, if you have more than two or three of the beasties, a generic or universal librarian is more useful. This will incorporate a selection of 'drivers', each specific to a particular synth. You let the librarian know what MIDI equipment you have connected by choosing a driver for each device, normally from a scrolling list, or by loading small driver files directly. This is where some people come unstuck — good librarians have a huge selection of drivers for specific synths, but can never cope with every possible model on the market (see the 'Universal Sound Editors' box).

Although standalone librarians are available, many modern sequencers incorporate a means of saving patch data belonging to a particular song. Steinberg's Cubase has the Studio module (see above), which allows you to load and save sound dumps to and from many MIDI devices, whose patch names can be extracted for use in the Arrange page. Choosing your sounds from names in a list is much less hit and miss than selecting a number from 0 to 127. Even if your sequencer doesn't allow the names to be extracted, some will have a means to type them in directly as a list (a one‑off procedure, you hope). However, nearly all modern sequencers have some sort of facility to load and save SysEx data banks, without having to understand their content, so that the sound data can be associated with a song.

Creative Editing

The next step up from the librarian is the editor, and, as its name suggests, this allows you to change your sound data. The beauty of using the computer is that you get a full‑screen editing environment, with graphic displays of envelopes, sliders, knobs, buttons, waveforms, routing, and so on. In addition, computer editors often incorporate morphing or randomising features, so that it's simple to create variations or blends of existing sounds — this is something that computers do well.

To provide these editing facilities, a huge amount of information is needed about the synth in question, so that every control that is normally available within its little front‑panel LCD display can be modified and updated from the computer. This relies on the synth manufacturer making available every detail of the SysEx messages required. If SysEx messages are available for each discrete control, then only a few bytes need be downloaded to the synth after each edit. Many synths do not have this facility, and so the complete patch data dump for a particular sound must be sent after each edit — which could well involve several hundred bytes of data. If this is the case, it is less likely that you will be able to edit your sounds in real time with a sequencer playing in the background, as glitches may occur (see the 'Existing In Harmony' section).

There are also choices to be made about how the information is updated. It's often possible for the computer editor to initially request the complete status of the synth, so that the initial computer display is the same as the synth. If this is not possible, it's best to download a complete bank of sound data from the computer, so that the computer and synth are 'in sync'. Altering the position of any virtual knob or button in the computer editor will send its updated setting to the synth, so that the computer and synth data then remain 'in sync'. However, it's unlikely that manually editing the synth from its own front panel will update the computer editor, so once you start editing from the computer, it's best to perform all editing from there, to avoid banks of edited sounds saved to the computer hard disk not reflecting the actual data in the synth.

Choosing between a synth‑specific and a universal editor is a rather more tricky decision. Editors designed only for one particular synth tend to be more elegant, since their screen display can be specially designed to suit. In contrast, the universal editor has to come up with a set of standard knobs, sliders and buttons that can be used to produce generic screen displays to suit every possible synth. Much depends on the elegance of the general design, and you may find some universal editors that don't support every parameter of the synth in question, simply because they cannot possibly cope with the idiosyncrasies of every synth manufacturer. Even if they do, the average synth display consists of many 'pages' displayed in a comparatively small front‑panel window. The computer equivalent may actually end up slower to use, because it's often quicker to press a few buttons on the synth to get to another page than it is to grab the mouse and scroll to a different place on a large virtual screen.

The beauty of the universal editor is that once you've learned to use it, its interface looks similar for every one of your synths, and you only need to buy it once, whereas each device‑specific editor will require a modicum of extra learning, and more money to get it in the first place.

Existing In Harmony

As I explained earlier, the majority of large SysEx dumps need handshaking for reliability. This does make it more difficult to operate an editor in tandem with a sequencer, since both applications will require both MIDI In and Out of the device in question. Although it's easy to play back a sequence while auditioning different sounds, by sending Program Changes from within the sequencer, modifying more specific parameters, such as Decay Time or Reverb Amount, requires the facilities of the editor. It is normally possible to send open‑loop data of this kind quite easily, using a multi‑client output driver, as this will merge the two streams of MIDI data before sending them on to the synth. This is fine for those devices that use only the open‑loop approach (you can edit any parameter of the Yamaha DB50XG using XGedit and a multi‑client MIDI Output driver).

Multi‑client drivers are becoming more common, but some have just multi‑client outputs, and no inputs, so only open‑loop SysEx can be sent. If you have a device that needs closed‑loop SysEx transfers, software merging is not normally possible — it would be like expecting to browse the Internet using a telephone party line: everything would get mixed up. Furthermore, when you're sending larger data dumps, a checksum may be used to check the integrity of the data received — the individual values of the bytes in each packet of downloaded data will be added together in a specific way to produce a unique number, and the synth checks the incoming number against the result of its own internal calculation — if there's any discrepancy the synth will request a repeat send of the packet in question.

However, although sending a complete bank of synth data normally requires a closed loop, the individual SysEx messages sent to update one specific control may well still be open loop. This means that the sequencer and editor will often coexist happily, as long as you send the whole bank of data first, and then only tweak controls while the sequencer is doing its bit. Again, this is something you need to try with your own equipment.

If you want to update specific synth controls, such as filter frequency or resonance, during playback, and record these manual changes as part of your overall performance, you will need a different multi‑client driver setup, so that the output from the editor can be recorded by the sequencer (for more details, see my feature 'Making The Most Of Daughterboards' in the February '97 issue).

The Final Send

Thankfully, setting up your MIDI system to allow centralised SysEx dumps is something that normally only needs to be done once. As long as you buy a MIDI interface with sufficient room for a few more synths, to be added at a later date, or on a temporary basis when you hire or borrow other equipment, your existing wiring will cope without having to be manually repatched to resemble Spaghetti Junction. You may find that, after taking the plunge and getting everything sorted out, you re‑discover the beauty of an older synth, simply because it's far easier to set up and control than before. Let's face it, I'm sure we all reach for the easiest option when looking for a suitable sound for the music in hand — if all you have to do is load a bank of sounds and press a single button to send one to a particular synth, you'll do it. And don't forget, even if you don't contemplate sending banks in all directions, if any of those little batteries inside your synths run down, you'll lose the data currently stored there. How long would it take to re‑program all those personalised sounds? Bank them for posterity.

Catalogue Your Sounds

Although saving sounds with a sequence is the main thrust of this workshop, it's worth pointing out the additional benefits of creating and using a complete library of sounds, using either a specific or universal librarian program. If you take the trouble to load in each of the previously saved banks of sounds for a particular synth into a library, to produce a complete collection of hundreds or even thousands, then it's usually possible to describe each sound by tagging it with a keyword such as 'guitar', 'bell', 'slow attack', 'metallic' and so on. Lists of suggested keywords are normally provided, although you can often create your own, if you prefer to categorise things in a more personal way.

Once you've waded through your sound collection to attach these tags (and it's perfectly possible to do a few hundred in an hour once you get going), you can quickly home in on suitable sounds for a particular track, simply by performing a search through your entire database for the appropriate category. If you want string sounds, for instance, a search for 'strings' should show you every string sound in your collection within a second or two. Often, each sound can be allocated more than one keyword, so you might search for 'guitar, metallic', or 'choir, breathy'.

For a professional, time is money, and if you can find half a dozen suitable sounds from a collection of thousands, and all within a few seconds, you'll either save some money, or have more time to spend making music. In addition, when your track is perfected, you can still save the actual sounds you used as a small bank associated with your sequence.

On The Internet

If you want to indulge in a little DIY, or find shareware synth editor and librarians, the Net is an excellent resource — here are a few sites that I found during a brief foray:

The Synth Zone has a huge selection of MIDI technical links (www.synthzone.com/ miditech.htm), and this is a good place to start if you want to find any MIDI information.

The MIDI Editor Homepage (www.perso.magic.fr/llebot/ welcome.htm) advertises MIDI Editor 1.2, a shareware universal editor and librarian, with a demo version available for download, and this already supports about 50 synths, and allows user‑defined dumps as well. I didn't have enough time to look at it in detail, and you will need a little SysEx knowledge, but it's a neat program, and excellent value at 200 French francs for the full registered version.

The Hardware Web (www.nctnico.op.het.net/index.htm) contains a number of useful DIY projects, including the schematic for a basic MIDI switcher, if you are handy with a soldering iron.

The Philip Rees site (www.philrees.co.uk/) not only shows his excellent MIDI accessory products, but also has examples showing how to connect up MIDI systems using them.

Universal Sound Editors

If you want to indulge in a little global economy, with a universal editor/librarian, Unisyn from Mark Of The Unicorn is available for both Mac and PC (and derived from X‑Or, which originally appeared on the Atari). One of the main competitors for Unisyn is Midi Quest, from Sound Quest (or is it the other way round?). This provides much the same facilities, and is available for Windows 95, Mac, Amiga and Atari. Other contenders include Opcode's Galaxy (Mac only), and Emagic's Sound Diver (Mac and PC). All these packages are extremely comprehensive, and have largely equivalent specifications.

However, the main selling feature of any universal editor/librarian is the number of MIDI devices that it supports, and all of these packages offer over 200. The huge lists of synths may look comprehensive, but if some of your particular models are not mentioned, there are no guarantees that they will be supported in the future. Midi Quest does have the slight advantage of providing a way for users to create profiles for the basic loading and saving of banks, if you have access to the appropriate SysEx data and don't mind a few frustrating evenings.

Before buying, check that your devices are not only supported by the librarian, but by the editor as well, or you will only be able to send and receive complete dumps, rather than modify individual patches. Galaxy was originally only a librarian, and has fewer editors available than the others. Even if the names of each patch can be viewed by the librarian, this doesn't necessarily mean that you can send individual patches by themselves — this may again require specific editor support.

Further Information

2S, 5S, 9S and 3B MIDI selectors

www.philrees.co.uk/

Philip Rees products and Deltron's Brighteye MIDI Tester

MIDI patchbays

www.midiman.net

MIDI Patchbays and Galaxy Plus Editor

www.opcode.com

MIDI Patchbays and Unisyn Editor and Librarian

www.motu.com

Midi Quest Editor/Librarian

www.squest.com/

Emagic SoundDiver Editor/Librarian

www.emagic.de/