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:
- There are fifty programs in the Chroma's memory that can be called upon at any time, numbered 1 through 50.
- There is a fifty-first program (program 0) that controls the sound of the instrument.
- Selecting a program causes one of the fifty stored programs to be copied into program 0, and storing a program causes program 0 to be copied into one of the fifty storage locations.
- All creating and editing of programs is done to program 0, and then stored someplace else.
- A second sound, called a link, can be added to the main sound. The link sound is controlled by the link program, which is one of the fifty stored programs. A parameter in program 0 "points to" the link program.
- Certain other parameters in program 0 affect the link. These include the Keyboard Split, Link Mode (lower, unison or upper), Transposes and the Link Balance.
- Since the link is one of the fifty stored sounds, it cannot be directly edited.
- Changing a parameter from the panel causes program 0 to be modified, and the sound reflects this change. The original program from which program 0 was copied is not affected.
- The performance controls affect both the main and link sounds. The notes played on the keyboard are assigned to the main and/or link sounds according to the link mode and keyboard split.
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:
- Channel
- 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).
- Board
- 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.
- Program
- 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.
- Instrument
- 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.
- Link
- 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.
- Unlink
- 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 channel assignment is controlled by the Keyboard Algorithm parameter which determines whether the instrument is polyphonic (using multiple channels) or monophonic (using a single channel). This choice reflects board allocation in that a monophonic instrument is never assigned more than one board.
- The channel assignment is independent of each instrument and must use only those channels assigned to that instrument by the board allocation process. Defining or undefining an instrument (or changing between a mono and a poly keyboard algorithm) affects the number of boards available to other instruments and, as such, impacts the channel assignment of other instruments. Undefining an instrument generally makes channels available to other instruments, while defining an instrument usually robs channels from other instruments.
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:
- The number of boards in the system is usually eight, but may be smaller if the autotune detected a bad board
- An undefined instrument doesn't get any boards.
- An instrument whose Keyboard Algorithm parameter is 5 or more is considered monophonic, and is assigned a maximum of one board. (If patch 0 is selected, only one of the two channels will be used.)
- An instrument whose Keyboard Algorithm parameter is 4 or less is considered polyphonic, and may be assigned any number of boards. (If patch 0 is selected, there are twice as many channels available as there are boards.)
- The dealing of boards to instruments continues until all boards are used up, or until all instruments have been checked and none of them are polyphonic. In the latter case, there may be boards left over.
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:
- If no link is in effect, instrument 0 will be defined with a volume on 255 (maximum).
- If a link is in effect, instruments 0 and 1 will be defined with volumes determined by the Link Balance parameter.
- When a link is cleared, in addition to sending an a Define command for instrument 1, the Chroma will send a Volume command for instrument 0 reflecting the fact that its volume is now 255.
- When a link is set up, in addition to sending a Define command for instrument 1, the Chroma will send a Volume command for instrument 0 reflecting the setting of the Link Balance.
- When the Link Balance parameter is changed, volume commands will be sent by the Chroma for both instruments 0 and 1 if a link is in effect. If no link exists, no volume commands will be sent.
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.