The Korg KPR-77 is an analogue drum machine from the early 1980s that was intended to compete with Roland's TR-606. It predates MIDI, which rather limits its usefulness in a modern studio (especially as it uses an oddball DINSYNC implementation and programming it is a nightmare). To drag it kicking and screaming into the modern age, I designed a MIDI interface kit for it that installs in the space for the battery compartment.
I decided to keep the kit simple and easy to fit, so it does note messages only - no MIDI clock. That said, it does do MIDI velocity (assigned to accent), and the channel can be set with a push button. The kit doesn't interfere with any of the KPR-77's original functionality, the only thing you lose is the ability to run off batteries. It's also a very clean install, the SYNC socket doubles as the MIDI input. If you don't want to fit the MIDI Learn button externally, you don't even need to drill a single hole.
The circuitry is based around an Atmel ATmega328P-PU microcontroller running the Arduino bootloader, which allows for easy tinkering with the program should you wish. The MIDI interface hooks into the KPR-77's KLM-448A board, which conditions pulses from the internal sequencer into something the drum voices can be triggered off. Installation is fairly straightforward, you just need to solder a ribbon cable to the underside of the KLM-448A board, which then plugs into the interface. I chose to reuse the existing DINSYNC socket as the MIDI input because as it happens, the MIDI pins are unused on the socket so it can still be used with DINSYNC as well. There is also a push button to enter MIDI Learn mode. The button can either be mounted on the outside of the case or hidden in the battery compartment.
The microcontroller waits for a MIDI Note On message, and if it matches a list of valid note numbers, the appropriate pin will be pulsed high for 1ms. If the velocity is above a particular threshold value, the accent line will be pulsed high as well. The code uses a trick to get a tristate output from the microcontroller - whenever a pin is not high, it is set as an input. This high-impedence state is necessary as otherwise the KPR-77's own sequencer wouldn't work - the pulses would just go straight to ground through the microcontroller's low GPIO lines, rather than to the voice board.
MIDI Learn mode is accessed by holding down a push button. While the button is pressed, any Note On messages will set the receiving MIDI channel, as well as the accent threshold velocity. These values will be stored once the button is released. They are written to EEPROM and recalled on power-on.
- Schematic diagram
- PCB artwork (EAGLE)
- Firmware (v2.0) - requires Arduino MIDI library
- Installation instructions
This project is available for purchase as a self-install kit. It includes the pre-assembled MIDI board, ribbon cable and push button.