elkayem / midi2cv

Arduino-based MIDI to CV converter
GNU General Public License v3.0
396 stars 66 forks source link

midi2cv

midi2cv midi2cv

This repository contains the code and schematic for a DIY MIDI to CV converter. I installed this converter into a home-built analog synthesizer, allowing me to play the synthesizer with my Yamaha CP50 keyboard over MIDI.

The MIDI to CV converter includes the following outputs:

Parts

The Arduino code uses the standard MIDI and SPI libraries, which can be found in the Arduino Library Manager.

The schematic is illustrated at the bottom of this page (Eagle file included). Input power (VIN) is 9-12V. This is required for the Note CV op amp, used for the 0-7.3V note output. 1% metal film resistors are recommended for the 7.7K and 10K resistors, for a constant op-amp gain that does not change with temperature. Note that 7.7K is not a standard resistor value. I used a 3K and a 4.7K resistor in series, which are much more common values. If precise tuning is desired, a trim pot can be added or the constant NOTE_SF can be adjusted in the code. I opted for the latter.

Note priority is selected using a jumper attached to the three-pin header labelled NP_SEL in the schematic. This header connects to the Arduino pins A0 and A2, with the center pin attached to ground. Alternatively, a 3-way switch can be attached to this header.

The note priority options and jumper configuration are as follows:

jumper schematic