Does this project spark your interest?

Become a member to follow this project and don't miss any updates


Connects a MIDI keyboard to an analogue synthesizer

Similar projects worth following

This project was created on 07/03/2014 and last updated 7 months ago.

Uses a PIC microcontroller and a DAC to convert MIDI keystroke and Pitch Bend messages to 1V/octave control voltage levels.


A system that translates MIDI-messages to 1V/octave analogue control voltages from 0-5V.MIDI is recieved from the MIDI-connector, and is isolated from the cicruit with an optocoupler.The MIDI messages are received by the PIC MCU using it's built in UART support. The MCU only interprets MIDI messages "Note on", "Note off" and "Pitch Bend" and it's according value.

The output control voltages are generated by a 12-bit DAC. The MCU sends the appropiate levelsto the DAC using I2C. The pitch bend bends a note up to 2 semitones up or down.

There is also one gate output that goes high (5V) when a tone is on, and one trigger that outputs a 5V spike when a MIDI-message is recieved (both "Note on" and "Note off").

The system uses a low note priority, since it can only output one voltage level at a time. A 5V reference is used to drive the DAC.

A linear regulator is driven by the 9V input to 5V for the system. The regulator makes it possible to run this board from other voltages than 9V, but the current limiting resistor in series with the 5V reference may need to be resized.

  • 1 × ZRB500F01 5V reference
  • 1 × LM317 Linear regulator
  • 1 × MCP4725 12 Bit DAC with I2C interface
  • 1 × PIC16LF1823 14 pin, 8-bit PIC MCU with support for UART and I2C
  • 1 × H11L1MS Optocoupler
  • 4 × NTC-T476K10TRB Capacitors / Tantalum Electrolytic
  • 1 × Capacitor 100 nF 0402 Ceramic capacitor
  • 1 × Resistor 82 Ohm 0603 Resistor
  • 1 × Resistor 220 Ohm 0603 Resistor
  • 1 × Resistor 470 Ohm 0603 Resistor

See all components

Project logs
  • Switch Debouncing

    7 months ago • 0 comments

    I've added an analogue debounce-filter to the MIDI2VC. Some details on the digital vs the analogue approach is here:

  • Youtube presentation

    8 months ago • 0 comments

    I have made the youtube presentation for the Hackaday Prize:

  • BOM cost

    8 months ago • 0 comments

    I tallied up the BOM and calculated the total price, and it's just under 13€. Most components were bought from Elfa-Distrelec, except the PIC, which was bought from Farnell.

    One thought I had about this project was to make it cheap, which I think it is now. I chose to use RCA jacks for signal outputs. I don't beleive these jacks are commonly used in synth modules. RCA cables are easily found cheap or free in junk bins or flea markets and they should give the same signal quality as any other cable type that might be used.

View all 5 project logs


Johan Lans wrote 7 months ago point
I'm thinking about how I could add features to the project. Adding multiple key priority modes is probably not very difficult. I have a push button that is not currently used, which could change between modes: lowest key pressed (the only option right now), highest key pressed, first key pressed and last key pressed.
I could probably also add modes for different VCO's. Right now there is only the 1V/Octave. I don't how common other modes are and I wouldn't use them myself. If anyone out there actually would consider using the MIDI2VC, please let me know if there are any features you would wish for...

Are you sure? [yes] / [no]

Similar projects