CR68 MIDI Input

CR68 Drum MachineRecently I bought an old Roland CR-68 drum machine and thought it would be cool to add MIDI to it. After having it sit around my shop for a few weeks due to other more urgent projects, I finally took and look and figured out how to control the internal voices. The CR-68 contains 11 voices, some of which are passive circuits and don't use any active amplifiers or oscillators at all. This is much different than the TR-808 which uses a lot of op-amps and other active components in the actual voice circuits. The CR-68 is controlled by a really old microcontroller which has a number of built-in patterns available from the front panel radio buttons. Similar to previous generations of drum machines using diode matrixes to create the patterns, the CR-68 allows up to two different buttons to be pressed in at once. They simulate the adding of two patterns on top of each other in software, which I think is a nice touch. The manual explains the priority order if more than two buttons are pressed.

Although I couldn't find a schematic for the CR-68, the CR-78 is quite similar. It uses a different voice board, and I'm not entirely sure why. The voices themselves appear to be nearly the same, except for the board layout. The voices are triggered by D latches which are latched for each note cycle. There are 12 latch channels, the 12th being used for the accent part. Triggering the voices was simple, and uses passive mixing with a resistor onto each trigger transistor. Thus the internal voices still play. The accent part was a bit different because of the polarity of the signal. But I found it easiest to use an AND gate and run the existing accent signal through my add-on board and then control the second AND input myself. So either the existing controller or my MIDI input controller could assert the accent independently.

The MIDI input board that I made consists of a PIC16F690, a 6N138 opto-coupler, and a 74LS11 AND gate. The board is stuck to the existing control board with some adhesive cable tie pads. The circuit of course steals power from the internal 5V logic supply. The unique operation of the board concerns the setup and mapping of the MIDI channel and notes. No extra controls are added to the unit. Instead the circuit watches the START/STOP switch on the existing front panel. If it is held down when the power is turned on, the PIC goes into programming mode where it will accept notes on any MIDI channel. Once the first note is played the MIDI receive channel is set. All 11 voices are set in sequence, and then the PIC stores the MIDI channel and note settings to its internal EEPROM so that the settings will be restored when the power is cycled. The snare drum sound is used to indicate the PIC entering or leaving programming mode.

Schematics / Code

Updated 2011-05-13

If you want to build your own variation of my circuit, the basic idea is that you're triggering transistors attached to each voice with short pulses. By mixing your signal with the existing signal passively with some resistors, you can make both the internal sequencer and your MIDI interface circuit work at the same time. This is basically an OR sort of arragement. The only difficulty is the accent control which doesn't really work the same way as the note triggers. I found the easiest way to merge the existing and new accent signals was with an AND gate. The accent line is normally high and goes low to make a louder accent signal. So keep your own output high too, and if either signal drops to low (internal or MIDI interface) the part will be accented. Note that this is a global control that operates a VCA on the output, so any notes that are playing will be accented, not just the one that you played louder.

Questions / Things I Learned

  • Internal Clock Sync - Why would you want to interface this? I guess it might be neat to be able to use the internal clock to drive your computer or something, or the other way around. But that wasn't interesting to me. I just wanted to be able to trigger the voices in the CR-68 from some other device.
  • Stereo / Part Outputs - When I saw that there was a balance control that adjusted the strength of some of the voices, it was instantly appealing to want to split the voices and make two or more outputs. There are already a few audio output jacks, (hi-Z and low-Z) so it seemed logical to make them both low-Z and put different audio there. But this isn't really possible without some major modification. The problem is that the blend control isn't like a balance or a pan pot. The wiper is grounded, and as you turn it to either end, it just shorts out some of the voices to ground. All the internal mixing is passive through a bunch of resistors. Also, I think (I might be wrong) that the accent VCA happens after this control, so it sort of isn't designed to have separate outputs. (If you want this, buy an 808... it's set up properly for this)
  • Output Level - It's wimpy and terrible. If I had a bit more time I would add an active buffer to make a much hotter output. The output impedance is also really high even with the "low-Z" output jack. I think the main volume control is actually connected directly to the output, which is a terrible thing to do. An op amp with a 1K or so output Z and a bit of gain would make the CR68 a lot better.


MIDI Board
CR68 Voice Wiring
Voice Wiring
CR68 MIDI Jack

© Copyright 2016-2099 - Andrew Kilpatrick