Skip Navigation.
Section 0

Interface Manual: Chroma Structure

The intent of this section is to describe the way the Chroma appears through the computer interface, and to relate the way a computer deals with the Chroma to the way a human performer or programmer deals with the Chroma. A computer has a much greater range of control over the instrument than a human, as it is capable or communicating with it much faster than a human could ever punch buttons. What a human sees of the Chroma's inner workings is a subset of what the computer sees, and it is important to understand both in order to fully exploit the capabilities of the interface.

The Human's View

A person sitting at the Chroma and manipulating the controls on the Chroma's panel has a certain view of the inner workings or the Chroma. This view has the following characteristics:

The Computer's View

A computer "looking into" the computer interface port on the Chroma has a much more detailed view of the inner workings of the Chroma than a person sitting at the controls. The most important concept that must be understood when working with the computer interface is the concept of an "instrument". In a physical sense, the Chroma itself is obviously an instrument. Here, though, we are concerned with a more symbolic interpretation or the word. In this sense, the Chroma is capable or containing more than one "instrument" as it is capable of generating more than one sound at a time. To understand this, study the following definitions:

A channel is the basic unit of sound generation, consisting of an oscillator, wave shaper, filter, amplifier, glide, sweep and two envelopes (if patch 0 is selected), or consisting of two oscillators, wave shapers, filters, amplifiers, glides and sweeps, and four envelopes (if patch 1-15 is selected).
A board is the physical entity containing the synthesizer circuitry. A board contains two channels if patch 0 is selected, or one channel if patch 1-15 is selected. If patch 0 is selected, the two halves of the board will always have the same sound characteristics. The Chroma has eight boards.
A program is a set of parameters that completely defines a sound, plus a few parameters that represent settings or certain panel controls (such as the edit mode and link information). The battery backup memory in the Chroma contains 51 programs.
An instrument is a group of boards that is treated as a logical entity, and whose sound is defined by a particular program. There can be as many as eight instruments defined in the Chroma at any one time, numbered 0 through 7. Each instrument has its own set of performance control and keyboard "inputs" that function independently of the inputs to other instruments.

The notion of an instrument makes sense if you consider the Chroma as a small ensemble. Through the computer interface one might play a piece of music involving a guitar, a bass, and two trumpets. This would be done by defining four instruments by sending the appropriate Define commands to the Chroma, and then sending commands to attack and release notes to the individual instruments within the Chroma. The two trumpet instruments would presumably be defined by the same program, emphasizing the fact that a program and an instrument are two different animals.

Translating The Human's View To The Computer's View

When controlling the Chroma from its control panel and keyboard, two sounds can be played at a time. Internally this means that, you guessed it, two instruments can be defined. The various actions that can be performed from the panel translate into internal manipulations of programs and instruments as follows:

Program Select Without Link
The selected program is copied into program 0. Then instrument 0 is defined according to program 0 and instrument 1 is undefined.
Program Select With Link
The selected program is copied into pro- gram 0. Then instrument 0 is defined according to program 0 and instrument 1 is defined according to the link program.
Instrument 0 is left unchanged and instrument 1 is defined according to the specified link program. The Link Mode and Link Program parameters in program 0 are set accordingly.
Pressing [NO LINK] twice causes the link to be cleared by undefining instrument 1. The Link Mode parameter in program 0 is set to "No Link".
"No Link" Program Select
Pressing [NO LINK] followed by a numbered switch causes the selected program to be copied into program 0, except that the link related parameters are not copied. Instrument 0 is then defined according to program 0 and instrument 1 is left alone.
Keyboard Information
When a key is pressed and no link is in effect, the key number is transposed according to the Main Transpose parameter in program 0 and sent to instrument 0. If a link is in effect, the key number is sent to instrument 0 and/or 1, depending upon the Link Mode and keyboard Split parameters in program 0. Information sent to Instrument 1 is transposed according to the Link Transpose parameter in program 0. All key press information that is sent to either instrument is recorded, along with its transposition, in a key list. When a key is released, it is looked up in the key list and the transposition recorded there is sent to the appropriate instrument(s). Thus, the Chroma won't be confused by changing transpositions or keyboard splits while keys are held down.
Pressure Sensor Information
If the Pressure Sensor option is installed, varying the pressure on any key causes the appropriate information to be sent to instrument 0 and/or instrument 1, depending upon the key's entry in the key list. That is, if the note's attack was sent to an instrument, subsequent pressure information will also be sent there.
Performance Control Information
When a lever, pedal or footswitch is moved, the appropriate information is sent to instrument 0 and, if a link is in effect, to instrument 1.
Parameter Changes
Changing any of the numbered parameters causes the appropriate values in program 0 to be altered. Whenever a program is altered in any way, any Instruments defined by that program are automatically affected. Changing any of the panel parameters does not directly affect any instruments, although it may, as in the case of the Link Mode parameter, indirectly affect either instrument 0 or 1.

Thus, the panel controls manipulate instruments 0 and 1, using instrument 0 for the main sound and instrument 1 for the link sound. Instruments 2 through 7 are not affected, and are always undefined when the instrument is first turned on.

Board Allocation and Channel Assignment

Board allocation is the process of deciding which boards are assigned to which instruments. This process is repeated any time an instrument is defined or undefined. Channel assignment is the process of deciding which channels are assigned to which notes. This process occurs dynamically as notes are played and released. These two processes are separate, yet they do affect each other:

The board allocation process operates by first calculating how many boards should be allocated to each instrument and then boards are taken from instruments that have too many and given to instruments that have too few. Unaffected boards can continue to generate sound during this process. In addition, the board robbing is intelligent enough to favor boards that are not currently sounding. Calculating the number of boards each instrument should have is done in a round-robin manner, like dealing cards. The rules are:

Temporary Parameter Changes

When a performer selects a program and then alters a parameter, this change is recorded in program 0 but not in the original stored program. Although program 0 is in fact stored in the same battery-backup memory as the other fifty programs, it is, by conventional usage, a temporary program. During performance, one may modify a parameter in a program, but this change is usually not stored. Therefore, every time the same program is selected, the changes made last time it was selected are usually not still there.

The intent of the computer interface is to allow several "performances" to be recorded separately and then played back simultaneously. Since there is only one "program 0", another means is provided for making temporary changes to the several sounds that may be selected at once. Whenever an instrument is defined according to a particular program, a translation occurs. The information that makes up a program is very different from the information recorded for each instrument. A program consists of 59 bytes in which all the parameters are packed as tightly as possible to conserve memory. An instrument is represented by a couple hundred bytes of information in which the parameters are expanded into a form that allows for fast processing. There are separate commands for changing parameters in a program and changing parameters in an instrument. The Write Parameter command is used to alter the value of any parameter in any program, and its effect is permanent. If any instrument happens to be defined by that program, it will be affected too. The Set Parameter command, however, only alters the translation of the parameter in the instrument and doesn't affect the program that defines the instrument. If the Set Parameter command is used to alter parameters, these changes will be temporary and will not show up again the next time an instrument is defined by the same program. Note also that, while the Write Parameter command has a complementary Read Parameter command, the Set Parameter command has no complement.

Instrument Definition Parameters

Whenever an instrument is defined through the computer interface, the performance control inputs must be initialized. To this end, the Define command includes operands that represent the positions of the levers, pedals and footswitches. There is also a volume operand that acts as a master volume control. The volume is also controllable separately through the use of the Volume command. An instrument's volume is only accessible from the panel through the use or the link balance control.

When recording from the Chroma, the computer will receive Define, Undefine and Volume commands from the Chroma whenever programs are selected, linked or unlinked. The performance control operands in the Define commands will reflect the true physical position of the performance controls at that time. The Link Balance and Link Mode parameter determines the volumes of the instruments as follows:

It should be clear by now that most of the communication with the Chroma is actually communication with individual instruments within the Chroma. The command set, listed in the next section, shows this. Some commands (like Read and Write Parameter, mentioned earlier) aren't associated with an instrument, but most of the commands involved in recording and playing back music are addressed to individual instruments within the Chroma.