Skip Navigation.
Section 0

Musical Applications of Microprocessors

By Hal Chamberlin

This is an excerpt of Chroma-related material from Musical Applications of Microprocessors. Kind thanks to the author for providing authorization to reproduce the material here. Thanks to Chris Borman [21030194+] for contacting Mr. Chamberlin and for providing a copy of the chapter.


Hybrid Keyboard Synthesizers

In the mass market, the term "synthesizer" really means "keyboard synthesizer." As that name implies, the primary operator interface device is a piano-like keyboard, usually with 61 keys (five octaves), although 73 or even 88 for high-end and 49 for budget units are also seen. The keyboard is virtually always completely conventional. The keys are a standard size and shape and move a standard distance in response to standard force. Many high-end units even attempt to simulate the inertia of piano keys by using weights, throw-bars, or other mechanisms. As in the computer market, any significant departure from such a "standard" keyboard means vigorous customer resistance.

Besides the keyboard, the operator typically has two hand-operated variable controls available. These are frequently called "wheels" because of their smooth action and have a spring return to their center position. Usually, one of them is patched into all of the instrument's oscillators so that the whole instrument can be shifted flat or sharp and is called the pitch wheel or pitch bender. The other is available to be patched into any sound variable and is usually called the modulation wheel. Added to these hand-operated performance controls are one or two foot pedals that plug into jacks on the instrument. Usually, one is a simple on-off switch to control note sustain, while the other may be a variable control for volume or some other parameter.

The most visible distinction among keyboard synthesizers is in their control or programming panel. Every manufacturer and model is intentionally different, much like video games. Since most keyboard synthesizers are microprocessor-controlled internally, common digital devices such as push-button switches, thumbwheel switches, calculator keypads, light-emitting diodes (LEDs), and numeric displays are commonly used. It is not unusual for a front panel to be 8-10 inches high and as wide as the keyboard, with much of that area covered by dozens of individual buttons and lights and several different displays, button groups, and a keypad or two. Recent units have used alphanumeric and even low-resolution graphics liquid crystal and fluorescent displays and membrane buttons.

Readers with a computer background may question the wisdom of using all of this "stuff" when a small alphanumeric keyboard and CRT display would be much neater and more general. Part of the answer is historical, since current control panel practice is an evolution of simple early panels in which a CRT did not make sense. Also, CRTs are not always as rugged as might be desired for a portable live performance instrument. Studio-oriented keyboard synthesizers do exist that make use of a CRT display or in some cases a separate conventional CRT terminal. In the future, liquid crystal display panels may be able to approach CRT resolution at a competitive cost and thus negate these objections.

One very cost-effective method of implementing the sound generator in a keyboard synthesizer is to use hybrid circuitry. "Hybrid" here means a combination of analog and digital circuitry, applying each where it is most advantageous. Control-type tasks are best handled by digital circuitry, particularly if it is microprocessor based. For example implementing a multinote polyphonic keyboard would be extremely difficult with analog circuitry but is a straightforward exercise with digital circuitry as was demonstrated in Chapter 9. On the other hand, audio-signal-handling tasks such as filtering are much more economical to perform with analog circuitry. Thus, at this time, it is generally most cost-effective to use a hybrid approach to designing a moderate-performance, moderately priced keyboard synthesizer.

A Typical Hybrid Synthesizer

Figure 19–1 shows a generic block diagram of a microprocessor-controlled keyboard synthesizer. Central, of course, is the control microprocessor, which is typically one of the more powerful 8-bit units, although increasingly 16-bit architecture processors with 8-bit data buses or even true 16-bit units are being used. The microprocessor program always resides in permanent memory, either masked ROM or programmable ROM, and may be 8-32K or even more. EPROMs are frequently seen because sales volumes are often not high enough to justify ROM masking charges. Also, the extremely short development schedules of most synthesizers don't allow 10-20 weeks delivery time for masked ROMs.

Fig. 19–1. Typical microprocessor-controlled hybrid synthesizer

Besides a small amount of scratch RAM for computation and temporary storage, a larger CMOS RAM is normally used to hold patching configurations, sound parameters, and other information that specifies how different sounds are synthesized. Each such configuration is called a program (not to be confused with the ROM program that controls the microprocessor), and typically there are 50-100 or more requiring 2-4K to hold them all. An important feature is a backup battery to retain the RAM's content when the synthesizer is off. In fact, it is common to memorize the control panel state when power is removed so that it will "come up" in the exact same state when power is restored. Another common feature is an audio cassette interface similar to that on early personal computers for saving and restoring the parameter memory content. Manufacturers often have parameter tapes available for sale, and serious players can build a library of synthesizer voice tapes.

The various console buttons, switches, and keypads are connected to the microprocessor either individually or in a matrix arrangement if they are numerous. Generally, software performs switch debouncing and even makes simple momentary action pushbuttons act like alternate action latching switches in conjunction with a light. The lights may also be directly driven by register bits; however, multidigit seven-segment displays are usually multiplexed by software. For extensive alphanumeric panels, which may have 20-40 characters, "intelligent displays" may be used, which automatically refresh themselves. Then the synthesizer processor need only store bytes in a small RAM in the display.

The music keyboard is generally interfaced just like the one described in Chapter 9. Velocity sensing is performed by measuring the time differential between two contact closures. A more recent keyboard design has each key press two conductive rubber pads against patterns on a printed circuit board. One pad touches when the key is about one-third depressed, and the second touches at the three-quarter mark. The advantage of this approach is somewhat less contact bounce and significantly lower manufacturing cost in large volumes. One manufacturer even uses LEDs and photocells for zero bounce key position sensing. Because the keyboard must be scanned very rapidly and uniformly for accurate velocity sensing, it is sometimes given its own independent microprocessor rather than burdening the synthesizer's main processor with this task.

The actual sound-generating and control elements are on the right side of Fig. 19–1. Typically, each synthesizer voice is produced by a moderately small voice module that may either plug into an internal "synthesizer bus" or be part of a large synthesizer board. Such a module usually has two VCOs, two to four VCAs, and a VCF plus several analog switches for reconfiguring these elements in a number of useful, but not totally general, ways. The needed control voltages are produced by a centralized, multiplexed D-to-A converter, usually 12 bits, and the analog configuration switches are controlled by external register. Generally six to eight voice modules are included, although some synthesizers may be expandable. A final analog switch array selects the module outputs and mixes them into a stereo audio output.

A multiplexed A-to-D converter is also included to read the pitch and modulation wheels, variable footpedal, and other proportional operator controls. If the keyboard includes pressure sensing, this too is connected to the ADC. There may be either a single sensor under the entire keyboard or individual sensors under each key. Often a signal from the voice module output multiplexor is fed back to the ADC for diagnostic usage and automatic tuning, which will be described in the next section.

The Rhodes Chroma

Perhaps the best way to become familiar with the specifics of hybrid synthesizer technology is to briefly study a well-designed example unit. The Rhodes Chroma, pictured in Fig. 19–2, is one such synthesizer that sells in the $3,000-5,000 range. It is packaged into a wooden tabletop cabinet that weighs about 70 pounds and has a five-octave, 61-key keyboard [sic], also made of wood. The control panel is mounted above the keyboard and is largely a printed plastic overlay sheet with an array of 50 membrane switches, several slide pots, several individual LEDs, a large two-digit display, and a smaller eight-digit display. One interesting feature is a solenoid "tapper" that literally thumps the control panel when any of the membrane switches is activated. This gives a "tactile" feedback to the panel that is effective even in the 100-dB din of on-stage live performance. The customary "wheels" are two spring-return-to-center slide pots mounted alone immediately to the left of the keyboard.

Fig. 19–2. Rhodes "Chroma" keyboard synthesizer

Performance-wise, the Chroma has 16 oscillators that can be used for 16 independent, simple voices, although they are usually "paired" to make eight complex voices. The elements of each complex voice may be configured 16 different ways with each voice independently configurable. Included in these configurations are standard VCO-VCF-VCA, FM, and AM patches plus a digital "ring modulation" patch and a "sync" mode in which one oscillator "pulls" the frequency of the other. The oscillators as well as the filters and gain control elements are all analog with an automatic tuning feature to compensate for calibration errors and drift. Envelope generators, however, are "virtual" in that they are implemented in software and applied via the multiplexed DAC. Velocity sensing on the downstroke is standard, whereas individual key pressure is an optional feature.

Figure 19–3 is a specific block diagram of the Chroma, which is quite similar to the generic diagram described earlier. One difference is the use of a separate microprocessor, from a completely different family, to scan the keyboard contacts. The keyboard pressure sensors, however, are addressed by the main processor, which only looks at those associated with currently pressed keys. As is customary in pocket calculators, the matrix arrangement for the 10 seven-segment displays is also wired into the 71 membrane switches, thus saving some circuitry. The 16 individual LEDs, however, are driven directly by two 8-bit registers. An unusual feature is the external computer interface that is intended for connection to a Chroma expander. The 4K scratch RAM is used for holding expanded copies of currently active parameter lists and queues for data entering and leaving the external computer interface. The 3K CMOS RAM is sufficient to hold 100 complete patches, of which two can be in use at any one time. The program ROM at 16K is rather large, but, as is usually the case with software, the control program has grown to equal (actually slightly exceed) its capacity.

Fig. 19–3. Rhodes Chroma block diagram

Since the A-to-D converter only needs to digitize eight variables that all come from the operator, an 8-channel 8-bit unit with a 100-μsec conversion time was sufficient. The 61 [sic] pressure sensors on the keyboard pass through a separate multiplexor into one of the ADC channels. The D-to-A converter actually consists of an 8-bit unit wired to supply the reference voltage to a 12-bit unit. Thus, the 8-bit DAC determines the span and thus the step size of the 12-bit main converter within a fairly narrow ±6% range. The variable scale factor is used by the automatic tuning routine that will be described later. The single-channel DAC output in conjunction with the outputs of a strobe decoder and buffer registers are routed as a bus to a synthesizer motherboard into which eight dual-channel voice boards are plugged. The strobes then can address a particular board and a particular parameter sample-and-hold on the board to give the effect of a multichannel DAC. The output of each voice can also be routed to another bus line that feeds into a zero-crossing detector used for automatic tuning. A special programmable timer circuit coordinates synthesizer operation by interrupting the control program at a constant rate, generating the cassette output signal and measuring the period for the cassette input and zero-crossing detector signals. All of these subsystems will be described in more detail in the following sections.

Dual-Channel Voice Board

Probably the most interesting subsystem is the dual-channel voice board, which is responsible for all sound generation in the Chroma. Eight boards are used and each plugs into a slot on the synthesizer bus. Figure 19–4 is a simplified schematic diagram of the board. Operation is completely controlled by 19 digital bits from three on-board registers and eight analog voltages from an eight-way demultiplexor and eight sample-and-holds on board. Thus, digital and analog demultiplexing is performed on each board from the common synthesizer bus rather than at a central location. In the drawing, a digital control signal is represented by a square-shaped terminal, while an analog control signal uses a round terminal. Basically, the board is two VCO-VCF-VCA chains with a variety of programmable cross-connections between the two channels.

Fig. 19–4. Dual-channel voice board simplified schematic (click for larger image)

The two voltage-controlled oscillators, one of which is detailed in Fig. 19–5, are nearly identical and use the sawtooth-pulse type of circuit described in Chapter 6. The 0 to +5-V range pitch input voltage is scaled to approximately 0.5 V/octave in a conventional current output exponential converter. This current, which has a range of 100 nA to 120 μA, then feeds a conventional integrator, which uses a TL082 FET input op-amp and a 1,000-pF integrating capacitor.

Fig. 19–5. VCO section of voice board

The threshold comparator and discharge circuits, however, are part of a 4151 (Exar, Fairchild, Raytheon) "voltage-to-frequency converter" IC. This IC, which was designed for data acquisition rather than musical use, is a commonly available generic device. Its discharge circuit, rather than trying to short-circuit the integrating capacitor and discharge it as quickly as possible, consists of a switched current source. During the sawtooth retrace interval, which is fixed at 33 μsec by an internal one-shot (RC terminal), a positive current of 150 μA exits the Iout terminal, which counters the negative current from the exponential converter thus discharging the integrator. The combination of 33 μsec and 150 μA is set (via R1) to discharge the integrator from the 5-V threshold level back to exactly 0 V at low frequencies when IE is small.

The point of all this is that the circuit is theoretically perfectly linear; there is no inherent "high-frequency droop" that can only be minimized in the usual short-circuit type of discharger. The price of this frequency accuracy improvement is a slow (33 μsec) sawtooth retrace time and a significant reduction in sawtooth amplitude at high frequencies. The slow retrace is taken care of by using the 4151's output transistor and R2 to force the final sawtooth output to zero during the retrace period. While this provides a fast retrace, it flattens out the negative peak of the sawtooth. Although these defects would be very detrimental to the triangle and sine shapers described in Chapter 6, the Chroma uses only a rectangle shaper that is not greatly affected. Instead, the filter is relied on when sounds of low harmonic content are desired. As a practical matter, the sawtooth itself is not really affected either because the defects become significant only at very high frequencies where even the second harmonic is well beyond audibility.

Referring back to Fig. 19–4, VCO B has a synchronization capability that is active when the sync switch is on. With sync on, oscillator A will discharge the integrating capacitors of both oscillators. The effect is most useful when oscillator B is set for a nominal frequency two or more times higher than oscillator A's. B will then synchronize to an exact harmonic of A.

Besides the sawtooth, the only other waveform available from the oscillator is a rectangle formed by comparing the sawtooth with a width control voltage. Since the sawtooth amplitude is 0-5 V and the width voltage covers the same range, duty cycles of 0-100% are possible. In fact, one way to mute an oscillator is to select the rectangle waveform and set either duty cycle extreme. In the Chroma, the rectangle width is commonly varied rapidly to create dynamic spectra and even a moderately effective chorus effect. One problem in doing this, however, is that the dc component can cause annoying thumbs and low-frequency overload in audio systems when the width is varied rapidly. The problem is solved elegantly by using an inverting comparator in the rectangle shaper and then simply adding the width control voltage to the rectangle wave so as to cancel out its dc component!

The VCF section does use a specialized dual state-variable VCF chip, the Curtis 3350. IN the Chroma only, the low-pass and high-pass configuration is used, which is selected by a single mode digital signal. Scaling of the frequency control input is the same as the oscillator scaling. "Q" or resonance is controlled directly by a local 3-bit D-to-A converter driven by the Q0-Q2 digital signals rather than by an analog voltage. Thus, Q is a static sound parameter that cannot be "logically connected" to an envelope. The Q control voltage developed by the 3-bit DAC is combined with the frequency control voltage to form a constant Q filter configuration. The Q varies in an exponential manner from under 1 for 000 to oscillation at 111. Some extra transistors added to the VCF chip ensure oscillation at the highest Q setting but also gently limit the oscillation amplitude to about 3 V peak to prevent distortion.

The VCA section also uses a specialized VCA chip, the Curtis 3360. Exponential conversion of the volume control voltage is not performed; instead gain varies linearly from 0 to 1.0 as the control voltage varies from 0 to +5 V. Before entering the VCA chip, the gain control voltage is single-pole RC low-pass-filtered with a time constant of about 1.3 msec. This prevents an unnatural "tic" sound when an instantaneous attack is applied to low-frequency sounds.

As can be seen, signal routing switches are scattered throughout the block diagram. Most of the switches are type 4052 dual 1-of-4 analog multiplexors. The first level of switching selects one of four possible sources for each oscillator output. These are rectangle, a mix of sawtooth and rectangle, white noise, and pink noise. It is interesting to note that an equal mix of a rectangle and a sawtooth waveform yields a result equivalent to mixing two sawtooth waves! The phasing between the two virtual sawtooth waveforms is determined by the rectangle width. Thus, varying the rectangle width will change the phasing as if the two waveforms were of slightly different frequency. In fact, periodic variation of the width sounds exactly like periodic beating between two oscillators and random variation gives a remarkably good chorus effect. Most Chroma patches make use of this surprising result to greatly increase the apparent richness of otherwise simple synthesized tones. The two noise sources are generated externally on the synthesizer bus motherboard and feed to all of the voice boards.

Following the source selection switch for oscillator A is another switch that selects between the oscillator output and a "ring-modulated" combination of the oscillator A and B rectangle outputs. The ring modulator is really just an exclusive-or digital gate (using CMOS logic that provides exact 5-V amplitude outputs) and generates true ring modulation only when the input waveforms are square. Nevertheless, the audible effect of ring modulation is adequately produced even when the signals are nonsquare.

The switches immediately before and immediately after the filters perform most of the patching function. Since all are controlled by the same two patch bits, there are actually only four possible configurations. Following the B side VCA, another four-way switch also participates in the configuration function. The switch after the A side of the VCA controls the disposition of the board's final output onto one of four signal output buses. The output signal is actually a current and the buses are current-sensitive as described in Chapter 8.

Fig. 19–6. Possible configurations of voice board. (A) Two independent channels. (B) Independent channels with ring modulation. (C) Filter FM. (D) Parallel filters. (E) Parallel filters with ring modulation. (F) Parallel filters with filter FM. (G) Series filters. (H) Series filters with ring modulation. (I) Series filters with filter FM.

Of the possible configurations, the Chroma's software allows the user to select any of the 16 most useful ones by a number between 0 and 15. Nine of these are shown in simplified form in Fig. 19–6. In addition to these basic patches, the A and B waveforms, B oscillator sync, and filter modes can be selected to yield several dozen effective patches. By using the two filters in the parallel mode, a band-reject response is possible as well as dual-humped resonances. The series filter configuration allows a bandpass response as well as four-pole low-pass and high-pass shapes. It is interesting to note that frequency modulation of the oscillators is not provided for. Conversely, the filter center frequencies can be modulated. Since the oscillators cannot produce sine waves but the filters can (by using the Q7 setting), this makes sense. Also, many other strange effects are possible with lower Q settings.

Microprocessor Controller

The Chroma uses a Motorola 6809 ("B" version) 8-bit microprocessor operating at its highest rated clock speed of 2 MHz. The 6809 has been described by some as a "severely stripped 68000" and was indeed introduced a year or so before the 68000. It is in many ways more like the 6502, however. The bus control protocol, for example, is similar using a single "Phase 2" clock with a machine cycle that is the same length as a clock cycle. It has two 16-bit index registers and two 8-bit accumulators, which can be linked into a single 16-bit accumulator, as opposed to the 6502's 8-bit index registers and single accumulator. The addressing modes are similar but the 16-bit index registers make them more useful for large data arrays. There is also an 8 X 8 unsigned multiply (10 cycles) that is probably used frequently in the Chroma's control software. In all, the 6809 is about 50% more powerful than a 6502 of the same clock speed in this type of application.

The program is stored in eight 2716 EPROMs, each of which holds 2K bytes of program code. The fact that the current program version number is 14 is testament to why EPROMs are used. Of course, if such an instrument were being designed today, much larger EPROMs holding 8K or even all 16K bytes would probably be specified instead. The scratch RAM is eight type 2114 1K X 4-bit static RAM chips for a total of 4K bytes. Again, a new design would probably incorporate two type 6116 2K X 8-bit RAM chips instead.

For the nonvolatile RAM, six type 4334 RAM chips are used. These are functionally the same as 2114s but are CMOS to minimize battery drain during standby. Unfortunately, making a set of RAM chips nonvolatile is much more difficult than just connecting a battery to the RAM's power lead. During operation when the address and data lines are flipping about wildly, CMOS RAM still draws a substantial amount of power so a circuit to switch between battery and dc supply power is necessary. Also, while power is being applied or removed from the other circuitry, its action is indeterminate. Even a brief 100-nsec pulse on the write line during this time could alter stored data. In practice, fairly elaborate discrete transistor circuitry that responds predictably to changing power voltages is needed to prevent such transients.

D-to-A Converter

The D-to-A converter is actually on a separate I/O board along with drivers for the panel switches and lights. As shown in Fig. 19–7A, the D-to-A converter is really a two-stage device. The main converter is a 12-bit unit, but its reference voltage comes from a second 8-bit converter. When the reference converter's digital input is zero, the reference voltage for the 12-bit converter is about -4.33 V. When the digital input is all ones, the reference is about -4.95 V. Thus, the nominal 1.133-mV step size of the 12-bit DAC (reference centered at -4.64 V), can be varied + or - 6.7%. Normally the oscillators are set for 0.43 V/octave, which is 384 DAC steps or 32 steps per semitone; a very convenient number. It is also small enough so that frequency stepping effects are completely inaudible.

The automatic tuning routines measure the actual oscillator and filter frequencies at selected low and high control voltages. From the result, an offset and a slope factor for each oscillator and filter can be determined. When an oscillator or filter sample-and-hold is selected by the software for updating, the slope factor is written into the reference DAC and the desired control value minus the offset is written into the main DAC. Except during this final output operation, all software routines can assume that each oscillator and filter has a precise tuning of 384 steps per octave and zero offset. Note that no software multiplication is required to implement the correction. In this particular application, even a single 16-bit DAC would not perform the correction as well. If a 16-bit DAC was used anyway, a 16 X 16-bit multiplication requiring three of the available 8 X 8 multiply instructions would be needed to perform the correction.

Fig. 19–7. Digital-to-analog converter system. (A) Variable-reference D-to-A converter. (B) Analog demultiplexor.

The analog demultiplexor in Fig. 19–7B has a unique feature that allows the computer some control over the transition times of analog control signals. For normal updating of the sample-and-holds, the top multiplexor only is enabled, which gives an immediate voltage change on the large (0.333 μF) hold capacitors. However, the actual control voltage is taken across the small (0.0068 μF) capacitors, which with the 1-MEG resistor gives a time constant of 6.8 msec. When the control computer desires an instantaneous voltage update, the bottom multiplexor is also enabled, which charges both capacitors to the new voltage. Of course, slower transition rates for envelopes are provided by writing successive values to the sample-and-holds in slow mode. Chroma software refreshes the sample-and-holds every 20 msec, which is 50 times per second. Because of the 1-MEG resistors, it was essential to use FET input op-amp buffers. The demultiplexor is actually on the voice boards, which greatly reduces the number of analog connections otherwise required.

External Computer Interface

When it was released, one of the Chroma's unique features was a high-speed parallel interface between its 6809 control computer and any kind of external digital device. Its primary purpose was to connect to a Chroma expander, which is identical to the Chroma except the keyboard is missing and the control program is slightly different. Increasing interest in personal computers by players, however, prompted full documentation of the interface hardware and command language so that an external computer could record keystrokes, play them back, and operate the control panel. The "Interface Manual" even shows an Apple II computer on the cover. The philosophy and command structure is similar to MIDI, which was discussed in Chapter 9, but, being parallel, the potential data rate is much higher.

The interface logic for data out consists of an 8-bit latch, a data out ready flip-flop, and an acknowledge input for a total of 10 lines. When the Chroma wishes to send a byte to an external computer o an expander, the byte is written into the data out register, which also sets the flip-flop. The external device responds by reading the data out lines and then sending a pulse on the acknowledge line, which resets the flip-flop. Having been reset, the flip-flop interrupts the Chroma's program, which then knows that it can send another byte.

The interface logic for data in uses a tri-state buffer for eight more data-in-lines and some gates to sense input data ready and generate input data taken signals. When an external device has a byte ready, it places it on the data in lines and raises the input data ready signal. This signal then interrupts the Chroma, which responds by readin the data through the tri-state buffer, which also pulses the input data taken signal. The remote device responds by dropping input data ready until it has another byte to send.

The interface thus allows completely interlocked data transfer simultaneously in both directions. Unlike MIDI, a data byte is not sent until the receiver indicates that it is ready to receive. The interface is in fact completely symmetrical; the expander has exactly the same interface logic as the Chroma and a "flipper" cable is used to mate them. The 20 lines of a 6522 parallel interface chip usually found in 6502-based personal computers can actually be connected directly to the Chroma interface and the handshaking and interrupt functions will operate properly.

Keyboard Scanner

A separate 8039 microprocessor is used to scan the Chroma's keyboard. It is unknown why this very different, slow, and difficult-to-program processor was used instead of a 6800 family member, but it is adequate. The 8039 is driven with an 8-MHz clock, which sounds fast but is divided on-chip by 15 to give a machine cycle of 1.9 μsec. A single 2716 EPROM holds the rather simple scanning program. The 61 keys [sic] are scanned once per millisecond using an algorithm similar to that described in Chapter 9. When a depression or release is recognized, the key ID number and a velocity value for that transition are written to latches that the main 6809 can read. The 6809 is also interrupted so that response to the keystroke is rapid.

Each keyboard key is equipped with a double-throw contact actuated by the rear edge of the weighted, wooden keys. The 61 keys, therefore, constitute 122 contacts [sic], which are wired in a 16 X 8 matrix rather than to a bunch of digital multiplexor chips as in the Chapter 9 example. One potential problem with any kind of switch matrix is sneak paths that can occur when three or more switches are closed simultaneously. This is usually dealt with by placing a diode in series with each switch but is handled differently in the Chroma.

Figure 19–8 shows a portion of the keyswitch matrix. The 8039 outputs a 4-bit "switch bank" number and reads back the state of eight switches in the bank. When a switch is closed, it draws a 0.5-mA current through its series 10K resistor and a 100-ohm sense resistor. The positive inputs of the comparators are all biased at 25 mV below +5V, whereas a closed key develops a 50-mV drop across the 100-ohm sense resistor. Besides limiting the current, the 10K series resistors prevent the formation of any significant sneak paths. The LM339 quad comparators are exceptionally cheap but are relatively slow at 1.2 μsec, requiring a wait state to be added when the 8039 reads a switch bank. Although this matrix arrangement is not as straightforward as using digital multiplexors, it does keep high-amplitude, high-speed digital signals out of the physically large keyboard contact area where they might generate unacceptable radio frequency interference.

Fig. 19–8. Simplified schematic of keyswitch array

Control Program and Panel Function

The most critical design aspect of a mass-market keyboard synthesizer is the control interface it presents to the user. In the Chroma, this is determined by the physical panel controls available and the logical structure of the control program. Unfortunately, a complete description of the user interface would require a chapter by itself so it will be very briefly summarized here.

Most panel operations revolve around the 50 numbered buttons, the two-digit and eight-digit displays, and a single "parameter value" slide pot. A few other buttons and lights are used to change operation modes and perform specific functions, such as setting a keyboard split or tuning. One important characteristic is that keyboard notes may be played at any time regardless of panel mode. The only exception is during tuning or cassette dump/load operations.

There are two primary operating modes of the control panel. In the "program select mode," each of the 50 numbered keys is associated with a different "patch" or "sound." Simply pressing a button will instantly select the new patch for all subsequent notes, while silencing any that may already be sounding. Thus, during performance, different sounds may be selected rapidly and noiselessly. The large display always shows the currently selected patch number.

In the "parameter select mode, " the patch number is frozen in the large display and each of the 50 keys selects a parameter instead. The left portion of the small display shows the currently selected parameter number and the right portion displays its value. The value displayed is what the parameter was last set to. The value may be changed temporarily by moving the parameter value slidepot. When movement is detected, the handle position is digitized and the result written into the display and internal parameter value. Different parameters have different numerical ranges. An of-off type of parameter for example has only two legal values: 0 and 1. Therefore, the lower half of the slidepot range will be converted to 0 and the upper half will be 1. Another parameter may have a range of 0-9, in which case the pot range is divided into 10 regions. A few parameters can range between -128 and +127 and the pot range is similarly divided. To aid in setting specific numerical values without constantly looking at the display, the panel tapper is activated whenever the slidepot handle moves into a new region. The whole operation is remarkably effective, even for parameters having 256 possible values. To permanently alter the displayed parameter value, another button must be pressed; otherwise it will revert to its previous value when another parameter is selected [sic].

There are in fact 50 parameters for a sound. The first 25 are called control parameters and include such specifications as the voice board patch configuration, keyboard algorithm (ways of assigning keys to oscillators), output channel select, envelope parameters, and many others.

In nearly all cases, oscillators, filters, and amplifiers on a voice board are used together to make a single complex voice. Since there are 50 parameters for each half, the complex voice actually involves 100 distinct parameters that could all be different [sic], although most of them are usually the same. These are referenced as the "A" and "B" groups. Depending on the panel mode, the user can examine/alter either A alone, B alone, or both simultaneously.

When "playing around" with a sound, the 100 parameters are actually copied from their slot in the nonvolatile CMOS memory into a temporary scratch area. The scratch sound can be altered in any way desired but will not be permanently changed until a specific sequence of buttons is pressed. This copying, in fact, occurs whenever a patch is selected in the program select mode and also includes "expanding" the compressed format used to conserve space in the CMOS memory into a format the control program can manipulate easily.