Magazine Archive

Home -> Magazines -> Issues -> Articles in this issue -> View

Thanks For The Memory

Article from Music Technology, July 1991

Programmability has changed the way we make music; but should the music now make changes to programmability? Vic Lennard recalls happy memories.


Having access to the right sound at the right time can be as important as any other technical aspect of your music - but just how do you shuffle odd patches around?


THE OLD ADAGE that familiarity breeds contempt certainly seems to hold true with synthesiser sounds. No matter how usable the factory presets on a synth, sooner or later you go down the road of editing them. It might only be a matter of tweaking an envelope - for instance, cutting down the release to prevent a sound from spilling over into a quiet gap in the music - or it might be hours of solid hard work.

When you actually get down to editing, you'll find that most modern synths use something called an edit buffer to help you. The Roland D50, for example, has 64 internal patch memories, each holding the parameter values which go to make up the sound that you hear when you select a particular patch. It also has a 65th, volatile, memory slot called the edit buffer into which the parameters for a sound are loaded while they're being altered. As soon as you select another sound, either by pressing buttons on the synth or sending a MIDI Program Change command from a sequencer, the contents of this buffer are overwritten with those of the newly-selected patch. So if you want to keep the edited version, you have to save it to a memory slot, so overwriting an existing sound.

There are two ways of going about this. You can take pot luck and select a sound at random to be overwritten, perhaps looking for the name of a patch which you don't use, or if you're well organised, you might even have a list of those sounds which are expendable. Unfortunately, both of these methods entail losing the sound previously stored in that location. This could be costly - that one sound could "make" a future song.

If you're working with a sequencer which can record System Exclusive information, you have further choices. Some synths give you a dedicated option of sending across the parameters for the current edit buffer, but these are few and far between. Most of the time, if SysEx is turned on, the parameters for a patch are transmitted as that patch is selected. This means that the edit buffer must have already been saved to a memory slot to be able to reselect it - which puts us in the middle of a vicious circle.

Most MIDI devices will act as slaves and respond to an incoming SysEx command requesting that the information from the edit buffer be transmitted. This command can be found in the SysEx implementation documents usually provided with a MIDI device (although some manufacturers expect you to ask for it). For the D50, this command would be (all values in hexadecimal):

F0 41 0n 14 11 00 00 00 00 03 40 3D F7

where "n" is the MIDI channel 0-F (1-16 in decimal). The "3D" is a checksum, calculated by adding together all the data bytes and then working out a value which, when added to this sum, will make the least significant seven bits all zero. This is used to check the integrity of the data; if the checksum is wrong, the data will be ignored. Adding the above data bytes together gives a value of $43, so the checksum is $80 - $43 = $3D (the checksum is always a value less than $80).

The parameters from the edit buffer will then be received by the sequencer and recorded just like any other MIDI information. In the case of the D50, the incoming data will start with:

F0 41 0n 14 12

and then continue with a string of data bytes. However, as the edit buffer for this synth is 454 bytes long, and Roland use a method of SysEx where data is transmitted in blocks of 256 bytes maximum, two blocks are transmitted, each finishing with a checksum and an F7, end of SysEx flag. This makes absolutely no difference to the way in which you re-transmit the information back to the synth - you simply replay the track where you recorded the SysEx and the edit buffer of the synth will accept it. You know that this has happened because the name and values of the patch on the screen of the synth change to show the received data. The benefit of using this technique is that no changes have occurred to the internal patches.

In the case of some synths, the first few bytes may need to be changed. For example, the edit buffer from the Oberheim Matrix 1000 can be requested with the command:

F0 10 06 04 04 00 F7

The data received by the sequencer will have the header:

F0 10 06 01 nn

and be followed by 268 data bytes, a checksum and the F7 end of SysEx, where "nn" is the patch number from which the data originated. But, to send the data back to the edit buffer requires a header of:

F0 10 06 0D 00

which can usually be changed via the text, or event, editor of the sequencer. The Matrix 1000 is a little odd in that the command is not sent on a specific MIDI channel, and this can cause problems if you happen to have two of them connected into your system - the edit buffer data being transmitted from the sequencer will be loaded into each of them.

Some manufacturers use a short command to extract the edit buffer. Yamaha's DX7 requires:

F0 43 2n 00 F7

A librarian or editor on a computer works in the same manner except that the contents of an entire bank of sounds are requested and received instead of just the contents edit buffer. Quite often the bulk dump has to be instigated from the synth, or the synth has to be set into a particular mode in which it will respond to a bulk request command.

The problem of lost sounds cannot be solved by using a librarian because, more often than not, a bank of sounds cannot be broken down into its individual members. This may be due to the way in which the data for the bulk dump is packed. MIDI Data bytes have seven available bits, which allows use of values 0-127. What happens if a manufacturer wishes to use internal values exceeding this range? One possibility is to "encode" the information and to then send this out in MIDI form. For instance, Korg's M1 encodes seven internal data bytes into eight MIDI Data bytes. Consequently, it is difficult to select the parameters for a specific patch without decoding the entire bulk dump.

The same situation doesn't apply to most visual editors, however, because these display individual sounds on-screen and allow you to transmit a selected sound back to the synth. Unfortunately, this would mean that you would have to shut down your sequencer, load up the visual editor, extract the bank of sounds from the synth, save the edit buffer to an internal memory slot, extract that one sound, and so on. Unless you happen to be one of those fortunate enough to have a computer with enough RAM to have more than one program loaded into memory at the same time, the problem still exists.

Some edit buffer extractions are rather obscure. For instance, it is possible to request the current program parameters from an Akai S900/950 with the command:

F0 47 0n 02 40 0p 00 F7

where "n" is the MIDI channel as before, and "p" is the program number. This will be replied with:

F0 47 00 09 40 0p 00

followed by 76 bytes of general information, 140 bytes for each keygroup in the selected program, a checksum and an F7 end of SysEx flag. Notice that the data is always transmitted on MIDI channel 1, which will need to be altered before data can be retransmitted. This is also true of the Yamaha DX7, which was only capable of transmitting on MIDI channel 1.

Some synths don't have an edit buffer, for which the only excuse appears to be cost-cutting. This means that any edits you make are final - you lose a sound. Such a synth is the Kawai K1 which, in keeping with most other Kawai synths, is also very fussy about the timing gaps between one SysEx data byte and the next. While there's no mention of such a restriction within the MIDI Specification, Kawai only tolerate a very small gap between bytes otherwise the load is aborted. Similarly, many synths do not let you request the edit buffer - this is generally true of Casio synths.

Now, let's say that you've overwritten an original sound and want to get it back. Have you saved the original sound as part of a bank, either on a computer librarian or a RAM card? And can you load that individual sound without affecting the rest of the current bank? If the answers to both these questions is "yes', then you're in luck. Otherwise, it's likely to be back to the editor-on-the-computer routine mentioned above. Unless of course, you're not working from a computer sequencer...

Wouldn't it be convenient, then, if manufacturers placed the factory sounds on a ROM chip within the synth so that you could call them back whenever you needed to? Some do: for example, Korg's M3R has the ability to recall its factory settings (the M1 can't, however). The reticence of manufacturers to adopt this practice is partly down to cost considerations, and partly down to the available development time. The programmed sounds are often the final link in the chain and may be finished only days before the production run. Personally I feel that this is a shortcoming; all synths should have their original sounds stored in ROM - everyone makes mistakes sooner or later, and some manufacturers are often ready to charge silly prices for a ROM card or cartridge containing those initial sounds. Credit where it's due, though; Kawai usually release sounds for their synths on disks for their sequencer and some companies include the sounds on a ROM card/cartridge for free, which can often be individually accessed via the ROM card port.

We've talked mainly of using computer sequencers. You can use hardware sequencers, but very few will allow you to program in the necessary SysEx bytes for the request command. The same problem occurs with data recorders such as the Alesis Datadisk which can only send out request commands for four devices - two from JL Cooper, Roland TR707 and Oberheim OB8.

Bearing in mind that MIDI was originally conceived for use with keyboards, it's odd that it should take an effects unit to lead the way where patch retrieval is concerned. The Alesis Quadraverb lets you recall patches from the factory selection - individually. There are no hassles with saving and reloading, you just select the original patch that you want to recall and voila. Other manufacturers could benefit considerably from Alesis' lead.


More with this topic


Browse by Topic:

MIDI



Previous Article in this issue

Yamaha RY30


Publisher: Music Technology - Music Maker Publications (UK), Future Publishing.

The current copyright owner/s of this content may differ from the originally published copyright notice.
More details on copyright ownership...

 

Music Technology - Jul 1991

Topic:

MIDI


Feature by Vic Lennard

Previous article in this issue:

> Yamaha RY30


Help Support The Things You Love

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!

Donations for May 2026
Issues donated this month: 0

New issues that have been donated or scanned for us this month.

Funds donated this month: £0.00

All donations and support are gratefully appreciated - thank you.


Magazines Needed - Can You Help?

Do you have any of these magazine issues?

> See all issues we need

If so, and you can donate, lend or scan them to help complete our archive, please get in touch via the Contribute page - thanks!

Please Contribute to mu:zines by supplying magazines, scanning or donating funds. Thanks!

Monetary donations go towards site running costs, and the occasional coffee for me if there's anything left over!
muzines_logo_02

Small Print

Terms of usePrivacy