This is my latest material. Equipment used: Ross 4×4 Series II (modified), found cassettes, Casio MT-40 (modified), Casio MT-70, Casio PT-30, Casio SK-8 (modified), Casio SK-1 (modified), Yamaha PSS-110, Yamaha PSS-380, Yamaha VSS-200 (modified), Korg KPR-77, Alesis Quadraverb (modified), Alesis Midiverb II (broken), Alesis Midiverb II (working), Alesis MEQ230, Ibanez SDR-1000, Yamaha REX50 (modified).

I’ll give details on some of the modifications soon.


I sampled the drum sounds from the Yamaha PS-3. Isolating all the sounds required some temporary modification, as one sound never plays by itself and it’s not possible to separate them after recording.

The drum sounds are generally described as analog, but they’re not really. They have analog envelopes and are processed by analog tone filters, but they use digital noise sources and low resolution sine waveforms stored as analog waveform memories (more on this later). This approach was used for drum sounds in many Electone models between about 1978 and 1984, several other keyboard models like the PS-20 and CP-11, and the MR-10 drum machine. The bass drum isn’t particularly good (it’s just a filtered pulse wave), but the other sounds have an unusual quality that I like a lot.

I’ve included several variations of the hihat/cymbal sound. It’s muted in some of the patterns, but the gate length depends on the tempo, so it’s not really possible to capture all variations through sampling. The noise sources are also free running, so samples aren’t sufficient to exactly recreate the sound of the original. I’m also including the raw noise and tone signals. These are recorded from the PS-3’s output rather than directly from the tone generator IC itself, so it still passes through the same analog filters.

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 or PSS-60.

Casio drum ICs:

HD61701 (1984): This is used in the Casiotone 6000. 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 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.

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. I think it’s capable of accented sounds, 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, MSM6294-04, used in the HT-700, HT-3000. The clock is adjustable by a trimpot.
  • MSM6294-05, used in the SK-5
  • MSM6294-06, used in the DG-10, DG-20
  • MSM6294-07, MSM6294-08, MSM6294-09, used in the HT-6000. The MSM6294-09 generates only the timpani and orchestra hit sounds.

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 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:

MSM6235It 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. 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 5503DOC 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.

Originally recorded in 2005 and released in 2008 as an edition of 50 CD-Rs. This release expands the original with some additional related material.

I’ve sampled the drums from the PSS-380. This should also cover the PSS-280, 290 and 390 (these use the YM7116AA OPK and YM7129 OPK2 ICs). The drum samples are stored on the IC and use the onboard DAC. They’re not the best drums ever, and it’s a little ridiculous that there are Latin patterns, etc. using only 6 drum samples. The playback sample rate for the drums is 18.643 kHz. They can be played individually from the test mode (hold the highest B and C keys while switching it on), so the sampling process was straightforward. There’s also an accent, but I didn’t record the accented/unaccented sounds.

My latest acquisition is a Technics SX-K450 keyboard. I’ve made a multitrack recording and sampled the drum sounds.

The first line of Technics home keyboards consisted of the SX-K100 and K200 in 1982, followed by the K150 and K250 in 1984. The second generation included the SX-K300, K350 and K450 (1985-86), as well as the cheaper SX-K50. These all have sampled drums, although the cymbal and hihat sounds are still analog. I think this means that the K100 and K200 were the first home keyboards to use sampled drums. They may have first appeared in the SX-U90 in 1981. The K200 includes an analog solo section with a VCF. The K250 uses a sampled solo section that seems to have been introduced in the E series organs in 1983. The main tone generator is basically analog divide-down, although I don’t think any of these models is fully polyphonic. All models have an excellent 3 BBD stereo string ensemble chorus with several modes, again derived from the full size Technics organs.

The main tone generator for the polyphonic section in the second generation models is the MSM5232, like the Korg Poly 800, SAS-20 and PSS-50. The master clock is 2 MHz, and this is fixed with no vibrato at all for the polyphonic voices. The older models may use a more conventional top octave synthesizer, but I haven’t seen any documentation for those. The cymbal and hihat sounds in the first and second generation models also seem to be different, but otherwise the later models have the same drums, chorus, and the sampled solo section from the K250. There’s a lowpass state variable VCF for the guitar, brass and accordion sounds, and a second one for the guitar sound in the accompaniment section. There’s also a monophonic bass section generated by an 8253 programmable divider. In total it’s 10 note polyphonic and 4 part multitimbral over MIDI. There’s an auto-accompaniment section and a 5 part sequencer with a very small memory. Strangely, both the drum and auto-accompaniment patterns have some amount of randomization that automatically varies the patterns. I haven’t encountered this in any other keyboard. The effect can be interesting, but on several of the patterns it sounds erratic and rather broken. The timing is also pretty sloppy compared to most keyboards.

The models worth looking out for are the SX-K200, K350, K450, and possibly also the K50. The K450 is the flagship model, but other than having a shorter keyboard the K350 doesn’t omit any notable features. The K100, K150 and K300 omit the solo section and various other features. The K50 is much simpler and may use very different hardware (I haven’t seen any documentation it).

The sampled drum section is based around the MSM6202 ADPCM IC. This is a general purpose IC made for playing back things like voice recordings or sound effects from an internal mask ROM. The process is described in detail in the 1987 OKI Voice Synthesis LSI Data Book, although the MSM6202 isn’t included here since it seems to have been discontinued by the time of the data book’s publication. ADPCM results in fairly low quality sound, since it compresses a waveform with 8-12 bits of dynamic range into 3 or 4 bits, but using this IC to play sampled drums is cheap, simple and actually very clever. Yamaha introduced sampled drums in their organs and portable keyboards in 1983, but they didn’t have a comparably simple single IC implementation until about 1988 (this IC, the YM3419 RYP7, seemed to use ADPCM as well).

The MSM6202 has 16 different drum samples and probably 4 channels. The clock is 62.5 kHz and output sample rate is 15.625 kHz (4 clocks per sample). It seems to store about 1.4 seconds of waveform data (roughly 22.5 kSamples). There’s no accent, and no ability to transpose, scale or envelope the sounds in any way. The onboard DAC has two outputs for the positive and negative portions of the waveform. An external differential amplifier is used to reconstruct the complete waveform. I think this is done to make a sign-magnitude DAC with a very simple implementation using a single-ended power supply and no virtual ground.

The analog cymbals and hihats use 6 square wave oscillators, similar to the Roland TR-808 and other drum machines. There’s an accent here too, although it only seems to be used on the hihat. The first generation Technics keyboards sound somewhat different, similar to the SX-U90. I suspect these use a different design, possibly mixing all 12 outputs from a top octave synthesizer to obtain the metallic noise (this was commonly done in organs in the 1970s).

The output of the SX-K450 is too noisy to sample directly, and anyway the cymbals and sampled sounds overlap, so the individual sounds can’t be isolated. I made some temporary modifications so that the outputs of the ADPCM IC and cymbal/hihat section could be recorded directly. Several of the sampled sounds are still never played in isolation, so I used an Octave script to separate them. This will be described in another post.

The sounds are all sampled at 96 kHz. There are 8 samples each of the cymbal and hihat sounds for round-robin sampling. I think the ADPCM sampled sounds in particular are excellent. They’re extremely compressed and sharply truncated.

Another new album, again everything is Pure Data, 2013-2017.