Computer memory locations in a synthesizer which store the parameters and settings of a given patch, for instant recall.
A predecessor to synthesizer patch memory was the "combination action" systems installed in some pipe organs, beginning in the early 20th century. These systems made it possible for the organ to memorize a selected set of pipe ranks to be turned on when the combination was selected. Pressing the button for that combination turned on the memorized set of ranks, while turning off all the others. In most cases the mechanism loaded a selected combination by physically moving the stop knobs or tabs; this was done by electromagnetic or pneumatic means. Early systems used "memory" in the form of rows of small switches (called "setter boards"), containing one for each rank, that the performer had to preset. However, most systems used banks of latching relays, which retain their setting when the power is removed, as the patch memory. On these, the performer wrote a combination to memory by pressing and holding a "set" button while pressing the desired combination select button; the memory then retained the current on/off setting of each rank. (On most pipe organs still in use today, these systems have been replaced with computerized systems.)
Patch memory in a synthesizer, as known today was first offered as an add-on to the Oberheim Four Voice in 1976, but due to the design of that synth, it was not capable of storing or recalling all of the parameters of a patch; some manual knob-turning and switch setting was necessary to fully recall a patch. The first synth with comprehensive patch memory was the Sequential Circuits Prophet-5 which appeared the next year. During this same time period, some other manufacturers, notably Yamaha, offered synths that had a limited "memory" in the form of miniature versions of the patch parameter controls that could be pre-set and then selected.
In the late 1970s, memory was still quite expensive compared to now, and so the first synths with patch memory only had a few memory locations. The programmer for the Four Voice had 16 locations, as did a contemporary synth with patch memory, the Korg PS3200. The original version of the Prophet-5 had 40 memory locations, which was a breakthrough at the time, but the cost of memory was already starting to come down. Later versions of the Prophet-5 had 120 memory locations. When the MIDI standard was laid out circa 1981, the program change message type was specified to allow for 128 memory location numbers. Many synths have now exceeded that capacity, and the MIDI standard was forced some time ago to add the Bank Select message type to expand the available numbers.
Types of Memory
Patch memory may consist of ROM, which is written at the factory and cannot be changed, and RAM, which is changeable. The earliest synths with patch memory offered only RAM for patch storage, and usually a fairly small number of patch locations (8 or 16 in the early Oberheims, 40 in the first version of the Prophet-5). Today, synths sometimes come equipped with hundreds of patches in both RAM and ROM. Because it would be inconvenient to have to re-program the contents of RAM every time the power is turned off and back on, synths which use RAM patch memory have always included a small battery somewhere in the synth which keeps the patch memory powered when the synth is powered off. In the past, some synth models, notably the Korg Polysix, have been brought to grief by the leakage of these batteries. Some recent synth designs get around this probelm by using forms of non-volatile storage, such as disk drives or flash memory.
In the 1970s, some synth designs attempted to use alternate forms of memory, in an effort to save costs. The Yamaha CS80 has four "memory" patch locations whose contents are determined by miniature versions of the panel controls, hidden under a lid on the panel. Further, the parameters of the factory-installed patches can be altered by changing resistors and moving wire links on a set of boards inside the synth. Hammond organs going back to the 1940s, and some pipe organs going back to the early 20th century, had patch memory that was determined by wires connected to a set of screws on terminal strips; the patch was changed by moving the wires to different terminals. The EML SynKey and the RMI Computer Keyboard tried using punch cards for patch memory. Parameters were determined by punching holes in certain locations of a cardboard card; the patch was recalled by inserting the card into a reader in the synth.
In the 1980s, it was not uncommon for synths to use floppy disks for external storage. This allowed the performer to transfer patches to a floppy disk, and then reload them at a later time. A number of synths had ports for connecting an external floppy drive, and a few, such as the E-mu Emulator, had drives built in.
Interaction with Panel Controls
A design conundrum on synths with dedicated patch editing controls is how to blend the action of the controls with the memory storage and recall. On most synths, when a patch is recalled from memory, the contents go into an edit buffer, which is then used to actually configure the synth's circuitry to play the current patch. At this point, the settings of the front panel controls bear no resemblance to the actual patch configuration, which can be a confusing point for the user, and it raises the question of what happens when the performer wishes to edit the patch. The most common method is that when a patch parameter knob, switch, or button is moved, the corresponding patch parameter immediately jumps to the setting of the control and is copied to the edit buffer. This can produce glitches in the sound, and is undesirable if the control is being employed as a performance control. The edits remain into the edit buffer until the performer writes the edited patch to patch memory. If the performer fails to do this before selecting another patch, the edits are lost.
Some synths map the starting position of the control to the setting that was recalled from the patch, and then add any control movement to it. However, this produces a problem of possibly not being able to access the full range of the parameter, depending on the starting positon of the control and the initial value of the parameter. Some designs try to get around this by using controls such as the rotary encoder, which can be rotated endlessly in either direction. And it does not solve the problem of how to indicate the actual current value of the parameter. Another answer is motorized controls that physically move to the current setting when a patch is recalled (e.g. the Vermona Mephisto). However, those are expensive and add weight and power consumption. To date, no really satisfactory solution has been found. As a sanity measure, most synths which use patch memory have a manual button which immediately sets every parameter in the edit buffer to the value of the panel control.
Beginning around 1985, some of the more feature-laden synths and workstation keyboards began implementing layered forms of patch memory. For example, some multitimbral synths implemented two levels of memory: a "patch" or "tone" level contained all of the timbral settings for a particular sound, in the conventional fashion, while a "split" or "performance" level recalled a set of multiple patches, along with assignments of patches to different key ranges and/or different MIDI channels. Many synths now also have a "system" layer which contains defaults that apply to every patch, including things like master tuning and output signal routing.
A recent trend, since about 2010, is the use of flash memory. Flash memory is a form of memory that is writeable, but unlike RAM, does not lose its contents when power is removed. Frequently this is implemented as off-the-shelf thumb drives or SD-style memory cards that are inserted into the synth, rather than being built in. This allows the performer to rapidly switch out banks of patches, and also use a computer to make backups of patch files. The memory might also be used to store samples, and some synths use the flash memory to contain the operating system.