Midi to CV R4

Midi to CV module made with Arduino Nano R4

miditocvR4_front
MIDI-to-CV modules are always useful. They're one of the easiest ways to bring MIDI into a modular synthesizer. This project is a simple MIDI-to-CV interface that outputs a pitch CV (0–5 V, with 1 V per octave) and a gate signal (5 V for note on, 0 V for note off), making it ideal for a classic monophonic modular synth.

For projects like this, I usually use an Arduino together with an MCP4725 DAC, since most Arduino boards don't have a true analog output. The MCP4725 provides the analog voltage needed to generate an accurate pitch CV.

However, Arduino recently released the Nano R4, which includes a built-in analog output. That changes everything: with just a handful of components, you can now build a simple and reliable MIDI-to-CV interface without the need for an external DAC.
Since the Nano R4 already provides an analog output, I thought: "Why not add a second output for MIDI CC?" This is especially useful when I want to control a filter cutoff from my sequencer or another MIDI controller. I chose a 0–10 V range for this second output because it covers the full frequency range of most filters.

I also added multiple MIDI Thru outputs because they're useful in my setup. Since this module already receives the MIDI data, it makes sense to pass it on to other MIDI devices as well.

miditocvR4_schematic
Component List:
1x Arduino Nano R4
1x 74HC14 Hex Inverter with Schmitt-trigger inputs
1x MCP4725
1x 6N138 optocoupler
1x TL074
4x MIDI DIN female
3x Jack socket
2x 100nF capacitor
2x 10µF capacitor
1x 1N4148 diode
4x LED
14x 220Ω resistor
1x 470Ω resistor
3x 10kΩ resistor
Get the code!
If you want to customize this :

  • Get rid of the 74HC14 or basically everything who's coming from the TX pin of the Arduino if you don't want the MIDI thru feature. I did that in order to merge a MIDI thru box and this module.
  • I put a gain multiplier for my CC in order to achieve a range of 0-10V. This fit my personal taste, but if you just need a 0-5V range, replace the 12,13 &14 pins design on TL074 by a standard op-amp buffer (pins 1,2 & 3 or 5,6 & 7).
  • If you don't need CC output, just get rid of MCP4725 and this last op-amp. You could also just use a TL072 instead of a TL074.
miditocvR4_side
miditocvR4_back
I'd like to thank my friend Jürgen for his help with this project, especially for reviewing the schematic.

Back to projects