After wanting an XBASE888 or 999 for quite a while now, I recently jumped on a reasonably priced 888 that was described as fully functional and in good condition. Except it was not (thanks, Robert C.) and needed some button servicing and undoing of a quite dangerous battery holder hack. Well, since the 888 was open anyways, I couldn’t help but check the circuits out and also toy with modifications.

some mods on xbase 88 snare and toms
This is bd, snare and toms without any triggers- just cv inputs for pitch and vcas
888 encoder board

Circuit descriptions

The circuit descriptions below are (still) rather sketchy in parts, and I am by no means competent when it comes to digital control or sample based stuff, so it is what it is, eh? Also, this box being very close to TR909 circuits in parts, I have no interest in magic part discussions or turf wars. Jürgen Michaelis did some really cool stuff in this hardware, and there is no reason per se for modifications, except I can’t help myself, so here we go…

888 main PCB with parts labelled – open in new window for bigger size

As for the circuits of individual instruments, the XBASE888 is heavily inspired by the iconic TR909. Bass Drum, Snare Drum, and Toms are fully analogue and, as for the core engines, reproductions of the TR909 circuits. While the sample instruments are quite a bit different too as regards the digital side (not an expert on this though), the “filter”/vca side of these is, again, almost as per TR909 specs. What all of this means in terms of modding is that a lot of the stuff described below can also be done on a 909 or respective clone.

The Bass Drum is built around an op-amp VCO core (IC23, a TL074C), yet with a load of extra parameters that are digitally controlled by a couple of CD4053B CMOS Multiplexers. Through digital control, some classis 909 bass drum mods are implemented here too, such as pulse-shaping of the VCO waveform and more. The final VCA (T6) and output with EQ and compression is built around IC34, a MC33079DG quad op-amp.

funny how a single oscilllator can kick like a mule

The Snare Drum is built around two VCOs (op-amps and CD4069UB hexinverters) and a noise component, with the noise changeable from filtered white noise to a very fancy metal noise. I’ve not yet traced the noise parts much but hope to do so soon. As for the basic VCO setup, the circuit is again almost identical to that of the TR909 snare.

888 snare drum circuit

The two Toms are, in terms of the core circuits, the most complex of the analogue sounds. Three op-amp + hexinverter VCOs at different pitches and with dedicated VCAs + noise, again, originate in Japanese engineering. Decay and pitch sweep amount are digitally controlled.

tom 1 (upper half) and tom 2 (lower half)

Hats, Clap, Rimshot, Cymbal and Ride are based on samples (from flash rom), followed by simple VCA and low-pass circuits which are also pretty much identical to the post-digital part of the 909 circuitry (transistor-based VCA, dual active low-pass, final amp). As far as I can see, VCA envelopes do not pass an antilog circuit. Each sample based sound passes a quad op-amp as follows: A = input buffer, B = envelope amp, C = VCA buffer, D = output amp, with low-pass filter caps between C and D. VCA modulation per external CV (via 220k resistors) can either be had at the base of each lowermost transistor or the negative IN of each C op-amp. Instruments are processed as follows: IC 39 (CH + OH), IC 41 (CP), IC101 (RS), IC 40 (Crash), IC75 (Ride).

sample sound filter, vca and envelope bits

The hats are an exception here since they can play white/metal noise instead of samples and sport a resonant hi-/low-pass filter inserted just before the VCA section. The filter is built around two LM13700M OTAs. The VCFs themselves are done by the right-hand LM13700: first half is high-pass, the second low-pass, with T44 controlling the high-pass cut-off frequency and T43 that of the low-pass. As for resonance control, I’ll still need to trace that more but guess that’s what the second LM13700 is for (only A is active, B not used). What baffles me is that both hats are processed together but that you can separate them in the instrument outputs – some Michaelis magic right there?

White noise seems to come from one of the PIC17C-ICs. Not sure here as I have not traced the PIC-ICs but the typical shift register and and-gate setup for 909 noise is not to be found on the PCB and this noise seems to be triggered and playing only for a short while (i.e. sample?). Metal noise, which I need to trace that properly too, on the other hand, is continuously running when selected in the snare settings. (Noise type is global but set under “snare”.)

here’s where it all comes together… the summing section

Final instrument summing is done at three MC33079 quad op-amps. Underneath these there are two digipot ICS (X9258), and I guess they’re for panning. Muting and level control is done before each single instrument output; I’d have preferred both *after* the single outs.

Noise gate: Interestingly, there is also some form of noise gate before each single out that is done with a transistor pair. When a sound is triggered, +5V are present for a while at the base of a PNP that, in turn, pulls up the base of an NPN transistor, which then pulls the sound signal to ground (i.e. you have a simple transistor switch setup). While this transistor switch is always open for the bass drum on my unit, it is normally closed for all other sounds. This seems like an efficient way of keeping the signal path on the outputs and the main mix free of unwanted noise, yet hinders a little bit the fun you can have by sending CV to the individual instrument VCAs, such as the individual Tom Oscillators. You can keep these noise gates open by simply wiring +5V (best via a iode and/or 100ohm resistor) to the base of each respective PNP transistor at the single outs. Instrument muting and level control is still fully functional that way and, and this is cool, all instrument envelopes except thos for the VCAs are still triggered through active steps in the sequencer – set instrument volume to zero, set sequencer steps, and send some VCA CV in there for weird and ghostly stuff!

gate/mute thingie

Power rails are +15V, -5V, +15V, and +5V. Triggers and accent data are passed through a bunch of latches (74HC547D). IC20, 21 are not populated, as is EN5 on the button board – these are the additional filter ICs and input level encoder found on the XBASE999.

CPU and sample memory ICs: there’s a Samsung static ram, an Am29f032b flash memory, a PIC17c43-25/p, a PIC17c43-33/p, a Gal20v8B CMOS logic array. On the encoder PCB there is another PIC, a 16f74. To be honest, digital stuff is above my head, so anything here is kind of “things and stuff” to me at the moment. The two LFOs seem to be software-based. Lastly, there are four 4816p Digipot ICs, I *guess* for sound parameters.

Notes on OS updates: most recent OS is version 1.3. As for sysex dump, many midi interfaces have some compatibility problems with the XBASE (or the other way round – I forgot…), especially for the second part of the OS transfer that contains sounds and patterns. MIDITECH interfaces are reported to work like a charm, and I see to it that I score a used one ASAP.

how *not* to place a memory battery holder…


Note on CV inputs: If sending CV to the base of a transistor, you want to clip negative voltages since these can damage the transistor (on the long term). Best do so by wiring a dimple diode between ground (anode) and the tip lug of your input jack socket (cathode of your diode). This way, any negative voltage on your input socket will be “pulled up” to ground. For sending voltages to op-amps, you don’t need to clip negative voltages as long as these do not exceed -15V. Op-amps on the 888 are powered by +15V and -15V (while the CMOS stuff is at +5v/-5V and ground). CV inputs for transistor-based VCAs were tested at maximum +10V (with my Erica black sequencer) and resistor values were chosen accordingly (220k in most cases). If your CV source does not exceed +5V, lowering the respective resistor values to 100k might be worth testing.

Finding the right part: relevant places are marked in colour on the B/W pictures in description sections.

Placing controls: drilling that case is not what I’m after (yet…?), so I feed a 25pole cable though the headphone jack hole (jack can easily be removed) to a breakout box.


With such a comprehensive set of parameters and a rather thorough punch available already, there is not much need for changes, yet some things could be of interest here.

888 kick, first triggered from internal sequencer, then with additional cv for pitch and vca

FM/Pitch CV input for bass drum oscillator: if using the existing pitch envelopes and/or the LFO circuits is not wild enough for your bass drum needs, feed in some pitch CV input via a 200k/220k resistor to IC23, PIN2. CV can be bipolar, i.e. negative voltages above -15V do not need to be clipped.

melody per CV and fm on bass drum

Sub oscillator for bass drum: Hexinverter’s 909 kick module uses a sub oscillator, and you can easily add one to this circuit (or any 909, for that matter). Take the VCO core output (IC23, Pin14) via a 47k resistor to a CD4024 (powered from the +15V rail) and feed the -1octave output (pin 12 of your CD4024) via a 33k-47k resistor and SPDT switch to the collector of T6 (equivalent of TR909-Q12). This input point of your sub oscillator is before the EQ and compressor section, so dialling EQ in will make your sub-square nicely dull, if need be. Possible improvements: Ideally, you’d shape your sub square to a triangle. If you want full variable volume control for your sub, using an op-amp might be the best option. On a dual op-amp you could do both…

some subosc

Noise component VCA CV input: T7 regulates the volume of the short noise burst at the onset of the kick sound. If you want to have CV on that, say, for blending in noise rhythmically, feed your CV via a 220k resistor to the base of T7 (clip negative voltages).

Oscillator VCA CV input: the main oscillator VCA is T6. If you want to have CV on that, feed your CV via a 220k resistor to the base of T6 (clip negative voltages). Even without triggering the bass drum, you can have good fun by using CV for pitch and VCA – triangle bass vibes ahoy!

bass drum only with some cv modulations


Deactivate pitch sweep on oscillators: pull R139 right hand terminal to ground via switch. If this were to be variable, then using a switched pot or an NPN transistor setup might work best (because even with a 2M pot between R139 and ground you have some envelope amount drop when fully anti-clockwise).

first sound = deactivate pitch sweep, later sounds = pitch CV/FM experiments

Pitch CV INPUT: via 47k resistor to R135 (100k), left-hand terminal (facing D15). CV can be bipolar.

Increasing the oscillator levels: for VCO 2 decrease the value of R150 (2k2, equivalent of TR909 R304) and for VCO 1 the partially labelled 1k5 resistor underneath (equivalent of TR909 R288).

CV for oscillator 1 VCA: send CV via a 220k resistor (clip negative voltages) to the base of T16 (= TR909 Q50). Clip negative voltage on CV input.

CV for oscillator 2 VCA: send CV via a 220k resistor (clip negative voltages) to the base of T15 (= TR909 Q51). Clip negative voltage on CV input.

CV for noise component VCA(s): at the base of T14 and T17 you get all sorts of noise shizniz…. 220k resistor and clip negative voltage on CV input.

this is only the snare, with cv for both oscillator vcas and fm on pitch


Reduce noise component (for both toms): pull base of T67 to ground via pot.

first normal, then no noise

Tom1 Mods:

Pitch CV in: via 47k resistor to right hand terminal of R356.

pitch cv and fm on low tom

Pulse shaper VCO1: this trick is known from the 909 bass drum “gabber” mod. Put 100k pot and 1k resistor in series between both terminals of R205 (10k).

good thing our patient still has pulse!
noise component off and pulse shape on

Pulse shaper CV for VCO1: jack socket via 220k resistor to base T51. Clip negative voltage on CV input.

Level control for individual sound components: The tom sound consists of three VCOs and noise. VCO1 = mid-range sound with pulse-shaping; VCO2=lowest sound; VCO3+Noise (both share a VCA) =high click component at sound onset. The levels of these are controlled by envelopes that drive simple NPN transistor VCAs, and you can either regulate the individual levels of each component with a pot and/or control them with CV. Here’s an idea for having both options: use a jack socket and a 1m pot – Pot Pin1 to ground; pin 3 via 220k resistor to CV in socket (clip negative voltage), wiper via 47ohm resistor to base of respective transistor. This results in: no CV plugged = level control from zero to normal with you pot; CV plugged = attenuation of CV input with pot.

this is low tom only with cv to different vcas
again, only low tom is used here, with different vcas modulated per eurorack sequencer

CV for VCO3+Noise level/ pot for level control: CV via 220k resistor to base T50. Clip negative voltage on CV input.

CV for VCO1 level/ pot for level control: CV via 220k resistor to base T48. Clip negative voltage on CV input.

CV for VCO2 level/ pot for level control: CV via 220k resistor to base T49. Clip negative voltage on CV input.

Tom2 MODS:

Pitch CV in: 47k resistor to right hand terminal of R414.

Pulse shaper VCO1: Put 100k pot and 1k resistor in series between both terminals of R389 (10k).

Pulse shaper CV for VCO1: jack socket via 220k resistor to base T61. Clip negative voltage on CV input.

Level control for individual sound components (see description LOW TOM):

CV for VCO3+Noise level/ pot for level control: CV via 220k resistor to base T60. Clip negative voltage on CV input.

CV for VCO1 level/ pot for level control: CV via 220k resistor to base T59. Clip negative voltage on CV input.

CV for VCO2 level/ pot for level control: CV via 220k resistor to base T58. Clip negative voltage on CV input.