Adding MIDI to the Korg Monotron

i love my korg monotron but i’ve been annoyed at how hard it is to play in tune with the ribbon controller. so i cooked up a quick python script that uses a raspberry pi to convert midi to cv, and more crucially, automatically tunes via audio feedback. with a quick soldering job, i can now play the monotron via midi sequencer or from a midi keyboard. it might be amenable to other midi-less cv synths.

here’s some examples:

sequencing via miti:

playing via keyboard:

automatic tuning + playing via keyboard:

instructions

here’s a quick rundown for the instructions. there are more detailed instructions on my website in case this is too slimmed down.

gathering materials

you will need:

  • raspberry pi
  • usb audio adapter (for automatic tuning)
  • korg monotron (or maybe another cv-synth)
  • mcp4725
  • female-to-female jumpers x 6
  • soldering iron + solder
  • midi keyboard (or midi sequencing software like miti)

hack the monotron

unscrew the monotron and solder two (female) jumpers into the gate and GND.

close up the monotron. connect it to the mcp4725 and raspberry pi.

tune the monotron

since the vco is affected by INT and the trim pot, you need to tune it before use. it only takes 30 seconds. ssh into the pi and add these packages:

> sudo apt update
> sudo apt install python3 python3-pip python3-numpy portaudio19-dev sox gnuplot ffmpeg
> sudo -H python3 -m pip install loguru click mido python-rtmidi adafruit-circuitpython-mcp4725 termplotlib aubio

now download my midi2cv script:

> wget https://raw.githubusercontent.com/schollz/midi2cv/master/midi2cv.py

set the montron to output pure tones (volume=100, rate=0, cutoff=100, time=0, feedback=0) and connect it’s output to the usb audio adapter on the raspberry pi.

now run the script to tune:

> python3 midi2cv.py --tune

it computes the frequency for each voltage and does a curve fitting so it can set the voltage for any frequency. example of calibration:

after calibration, it saves the parameters to be loaded for playing. tuning overwrite the previous parametrs, so re-tune if it sounds off.

play the midi monotron

attach a usb midi keyboard to the pi and run:

> python3 midi2cv.py --play

it should automatically detect your keyboard and you are all set.

enjoy ~6 octaves of pure monotron madness. :confetti_ball: :firecracker:

13 Likes

wow this is really awesome.

1 Like

This is incredible. Your demos are amazing. I never imagined the Delay model could be played with discrete steps. I have a Pi3 in my drawer, I’ll have to get it out and try this!

Also, for anyone who just wants a tactile surface instead of a ribbon, there are 3D printed keyboards available for the Monotrons.

3 Likes

Noobie question: would this work for the Volca Modular? I know the latter has its MIDI patch points already designated, so perhaps this mod is more work than is necessary. The sole hold I have on modifying my Volca is that I don’t know how the patch points related to the mini MIDI plug (seems better than the 5 pin MIDI plug in terms of fitting – the latter exists as a mod already).

2 Likes

i think so, but this midi2cv script might be overkill for that instrument. there are some instructions here with a nifty midi-to-cv circuit and from the demo it sounds pretty much in tune:

Thanks – I do know about that one, but although I am a competent solderer, I have actually never burnt a PCB before. I guess I should try! Also, this project is for a 5 pin MIDI cable, which seems to me a less elegant fit than the mini plug… I think there are some hints as to making that work, but what with the two (or three??) mysterious versions of the MIDI mini cord (one for Korg, one for 0 Coast, etc.)… it all causes hesitation.

Speaking generally, I am surprised that there are many MIDI mods for the monotron, including kits, but thee is only this one for the Modular. I would think people would want it !

1 Like