I’m going to be publishing a lot of information about custom digital ICs used in music gear. This is a not very exciting first installment.
I’m grouping these together because Korg and Casio at one point used two ICs that are very similar, and neither category is very large by itself. The Yamaha RX8 is also covered.
I haven’t seen service manuals for the Korg MR-16, DDD-5, DRM-1 or PSS-60.
Casio drum ICs:
HD61701 (1984): This is used in the Casiotone 6000 and CPS-201, and also likely the Casiotone 5500 and 6500. The sounds are strange, seemingly formed from very short internally stored samples (often looped) and periodic waveforms. It has onboard amplitude scaling and DACs that seem to be very low resolution and noisy. The complete circuit is fairly elaborate with about 7 output channels, several different tone filters (one of these is switchable) and panning to stereo outputs. Clock is 4.9468 MHz. 54 pins.
µPD934G (1985): This is used in the RZ-1, CZ-230S, MT-500, CPS-2000 and others. Each IC generates 4 monophonic channels, converted separately, with up to 3 sounds hard assigned to each channel. 64 pins. There are 2 of these in the RZ-1, and they operate independently, not sharing the waveform memory or DAC. The first, designated as µPD934G(B), plays ROM samples only and the second, µPD934G(C), plays both ROM and user samples. Between both ICs, there are 8 channels and 16 available sounds. In some other models a single IC is used to produce up to 12 sounds. These seem to have the same sample rate and waveform ROM size as the RZ-1, but use shorter samples. Unusually, there’s a slightly different master clock frequency and sample rate for each IC in the RZ-1. The µPD934G(B) is clocked at 1.28 MHz (sample rate is 20 kHz, 64 clocks per sample, 16 clocks per channel). The µPD934G(C) is clocked at 1.333 MHz and has a 20.833 kHz sample rate. I’m not sure why it’s done this way. Each IC can address waveform memory up to 128k x 9 bits. The RZ-1 has a 32k x 8 waveform ROM for each IC and an additional 16k x 8 SRAM for the µPD934G(C). The waveform data returns to the IC and is output by a 10 bit linear thin film resistor array DAC. I think it uses a 10 bit DAC to accommodate the extra dynamic range required by the accent (this may just be a binary shift). Other than the accent, the ICs don’t seem to be able to transpose, scale, envelope, reverse, loop or process the sounds in any way. The 3 toms and the open and closed hihat sounds are all different samples rather than a single sample that’s differently pitched or enveloped. The user samples in the RZ-1 are recorded by the 8 bit ADC built into the CPU (µPD7811). The sample input is connected to all 8 of the CPU’s analog input channels in parallel, presumably to reduce noise. The samples seem to be recorded at 20.833 kHz for a total sample time of 0.786 seconds. The metronome is actually more or less an analog drum sound based around a phase shift oscillator. Its decay time can be adjusted with a trimpot. It’s sometimes reported that the user samples in the RZ-1 are less useful than they could be due to latency compared to the other drum sounds (I haven’t verified this). This isn’t a hardware limitation, since the same ICs are used to play back both the ROM and user samples. It’s probably due to the way the sampling process is triggered, i.e. deliberate pre-sampling that records before the trigger threshold is crossed. The problem, then, is really that the samples can’t be trimmed after they’re recorded. But since the RZ-1 supports sample dumps over MIDI, this can be circumvented.
MSM6294-xx (1987): This is a 4 channel drum IC, simpler than the µPD934G. 28 pins. It has an onboard 8 bit DAC and internal 16k x 8 mask programmed waveform ROM with up to 8 sounds (1024 ms total sample time, the ROM variant is denoted by the suffix). The clock is 256 kHz and the sample rate is 16 kHz (16 clocks per sample, 4 clocks per channel). The DAC output is connected to the mix out pin. All 4 channels are time multiplexed. This may be used as is, or buffered and sent back to the mix in pin. The channels are demultiplexed and sent to 4 individual output pins. All the Casio models I’ve seen just use the mix out. Typically the samples are similar to the RZ-1 but lower quality. It’s capable of accented sounds, probably by performing a binary shift, but other than that it doesn’t alter the sounds in any way.
I’ve seen the following variants:
- MSM6294-02, used in the SK-8, SK-8A, MT-520
- MSM6294-03, used in the HT-700, HT-3000, SK-200
- MSM6294-04, used in the HT-700, HT-3000
- MSM6294-05, used in the SK-5
- MSM6294-06, used in the DG-10, DG-20
- MSM6294-07, used in the HT-6000
- MSM6294-08, used in the HT-6000
- MSM6294-09, used in the HT-6000. This generates only the timpani and orchestra hit sounds.
The HT-6000 has the most complete set of sounds, although the SK-5 has a few unique sounds that aren’t found elsewhere. In several models (at least the SK-5, SK-8, HT-700 and HT-3000) the clock is adjustable by a trimpot.
Korg drum ICs:
The MSM6235-xx (1983): This is used in the Korg PSS-50, DDM-110 and DDM-220. It may also be used in the Korg MR-16 (this would likely use 4 such ICs) and possibly the PSS-60. The pinout and functionality appear to be identical to the MSM6294-xx as far as I can tell. In these machines the clock is 250 kHz and the sample rate is 15.625 kHz. There’s a block diagram in the DDM-110/220 service manual which gives some details:
It seems that the internal sample ROM is divided into 16 1k x 8 blocks, and that each sample can start and end on any of these block boundaries. There also seems to be an attenuation stage after the DAC that may implement accents.
The drum samples in the Korg models are completely different from those used in Casio’s ICs, and the output is considerably less harsh sounding since they’re demultiplexed into different channels (with a zero order hold and the corresponding high frequency droop), rather than still time multiplexed on a single output with a low sample rate.
I’ve identified the following variants of this IC:
- MSM6235-01, used in the Korg PSS-50
- MSM6235-02, MSM6235-03, used in the Korg DDM-110
- MSM6235-04, MSM6235-05, used in the Korg DDM-220
MB661107 (1986): This is used in the Korg DDD-1, and probably also the DDD-5 and DRM-1. It’s quite simple, but cleverly designed and fairly flexible. It can transpose samples in a limited way, but not enough to be considered a general purpose sample playback engine. 80 pins. It’s 13 note polyphonic (12 voices plus a metronome) and supports up to 16 output channels. In the DDD-1 these are used for both individual outputs and fixed stereo pan positions. The master clock is 8 MHz. The sample rate is 25.641 kHz (312 clocks per sample, 24 clocks per voice).
The IC can address a waveform ROM up to 512k x 8. The waveform ROM in the DDD-1 is 256k x 8, and the ROM cards are 32k x 8. Up to 4 can be used simultaneously. Sounds can be transposed over a one octave range. I don’t know what kind of interpolation is used, but very likely it’s just truncation. It’s possible that the hardware supports a wider transposition range, but this was deliberately limited because it would quickly start to sound extremely dirty, similar to the Emu SP-1200.
Amplitude scaling uses an external multiplying DAC. 10 bits of volume data are converted with a thin film resistor array DAC, and this controls the reference voltage to an 8 bit multiplying DAC (µPC624C). This seems to be used both to control the level of each sound and to apply the envelope. This approach is simple and works pretty well. The decay time and level for each sound can be programmed (unlike the Roland TR-707 and other things that use fixed analog envelopes), and it doesn’t require a digital multiplier or high resolution DAC. This can also be done inside the IC itself (the Ensoniq ES5503DOC does this). Onboard DACs require fewer pins, but the DAC linearity will generally be worse. The downside to this approach to amplitude scaling is that the digitally generated envelopes can introduce zipper noise, since they’re time multiplexed and thus can’t be smoothed with analog circuits.
Any voice can be sent to any output channel. Each voice gets its own digital to analog conversion, but the demultiplexer control signals that select the output channel don’t have a fixed relationship to the voice counter. The trick here is that the output channels don’t have a sample and hold. So each output is polyphonic, and the voices are mixed by time multiplexing. The sounds are thus scaled, routed and mixed in a very cheap and simple way, and the editing and routing capabilities surprisingly flexible.
MB87425APF SID2/SI System LSI (1988): This is used in the Korg S3, and also the Yamaha RX8. 120 pins. It’s branded by Korg as the “Sonic Integrity (SI) system”, whatever that means. It’s a 16 bit sample playback IC without filters. The S3 is 12 note polyphonic, with each voice consisting of two components. This seems to suggest that the IC is 24 note polyphonic. 512 clocks per sample. The S3’s sample rate is 37.109375 kHz (19 MHz clock) and the RX8’s sample rate is 44.1 kHz (22.5792 MHz clock). Interpolation is probably linear, although I haven’t confirmed it. The IC can address a waveform ROM up to 4M x 8 (used as 2M x 16). The S3’s internal waveform ROM is 1M x 8 (512k x 16), and there are two ROM card slots up to 1M x 8 each. The cards don’t appear to be compatible with the M1 or other models. The waveform ROM in the RX8 is 1M x 8. The sounds here are basically similar to the other models in the RX series, but considerably higher quality. These may be the highest fidelity versions of this particular set of sounds.
The S3 has 8 stage amplitude envelopes and simple single stage pitch envelopes. Samples can be tuned over a range of +/- 2 octaves. The RX8 is considerably simpler, supporting only panning and tuning over a range of +/- 1 octave, although it does have the ability to play two detuned copies of the same sound.
The IC supports either 16 bit parallel or serial output. The S3 also contains an MB87405PF MDE effect processor (this is clocked at 38 MHz, has 64k x 20 DRAM and provides two different effect blocks) and two other gate arrays. The MB623139 gate array (80 pins) handles SMPTE, scans keys, drives LEDs, etc. The MB620157PF (64 pins) converts the parallel outputs from the MB87425APF and MB87405PF to serial data, and sends this to the 3 16 bit DACs (µPD6376, 6 output channels total). The RX8 contains no effect processor or other sound processing ICs. It seems to send 16 bit serial data directly to the DAC (PCM56 or AD1856). There are 4 outputs total.