Connects a MIDI keyboard to an analogue synthesizer

Similar projects worth following
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

View all 17 components

  • Switch Debouncing

    Johan08/02/2014 at 20:16 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

    Johan07/17/2014 at 20:06 0 comments

    I have made the youtube presentation for the Hackaday Prize:

  • BOM cost

    Johan07/13/2014 at 14:38 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.

  • Bug testing

    Johan07/11/2014 at 14:30 0 comments

    The project is basically done, so right now im figuring out clever ways to find bugs. The last test was using different midi channels to interact with the midi2vc. I cycled through all 16 channels using midi-ox and a midi to usb converter. All 16 channels worked equally well. Nice :-)

  • Project files

    Johan07/03/2014 at 20:05 0 comments

View all 5 project logs

Enjoy this project?



Johan wrote 07/25/2014 at 20:13 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

Does this project spark your interest?

Become a member to follow this project and never miss any updates