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.
