Homepage for bxxa.cc
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

4.8 KiB

Title: MIDI_to_CV part 1 Date: 2026-10-07 Category: Posts Tags: Electronics, Hardware Status: draft

Photo

After the last post, we were left with a working voltage controlled oscillator (VCO), voltage controlled amplifier (VCA), and an envelope generator. The next logical step would probably have been to make a voltage controlled filter (VCF) module. I didn't do that. Instead, with most of a working synth 'voice', I went back to actually making this thing play music.

This was actually one of the first things I worked on when starting this hobby... 3 years ago? Wow, my investors are going to be pissed.

Photo

The classic way of generating melodies for analog synthesizers would be an analog sequencer or an instrument that directly outputs voltage and gate signals. That's a little limiting today, especially since I want to focus more on the electronic design and mechanical construction.

For maximum flexibility, and compatibility with modern instruments, a MIDI interface from an actual computer that can output control voltages (CV) and gate signals is ideal. Then we can use things like MIDI controllers and MIDI files to drive the analog voice of the synth. This could be done a little more cheaply with a microcontroller, but you'd lose compatibility with OS MIDI libraries like the ALSA sequencer interface, existing device drivers, and better programming language support. We'll go into more detail about the software in another post.

Mainboard

Before the current RAMpocalypse, but during the previous Covid chip shortages, the Libre Computer single board computers (SBC)s were a good alternative to the more popular raspberry pi boards that were unavailable to consumers. I've continued using these over the Raspberry Pi boards because they do a much better job upstreaming their changes to the linux kernel than the larger, and more popular Broadcom-based project. Meaning that you can just install and run an installation image from many linux distributions without needing to apply (an often unmaintained) patch set from the manufacturer of the chipset/SoC.

For this project, I'm using the le-potato board from Libre Computer. It has the same form factor as the Raspberry Pi, which means we can use existing 'HATs', and PCB templates.

Photo

For the prototype, we're using a single MCP4921 digital to analog converter (DAC) and an op-amp circuit to level shift the gate signals from the boards 3.3V digital IO to the expected 0-5V gate on/off. The MCP4921 is a 12-bit DAC, which means we have 4096 discrete steps at the output.

The current plan is to add dedicated sample and hold and level shifting ICs for 5 CV/Gate channels in the final module.

Photo

talk about choice of DAC, why not I2S? song tempo DPM * shortest note, DAC settling time, need for 5 channels, ldto overlay selection

  • 5V input goes through polyfuse/input protection
  • 40pin header height
  • removing ground-digital ground resistor/grounding error for DAC ref
  • future additions:
    • -5V/+5V CV output
    • add level shifting IC + SnH for other channels, maybe io expansion
    • character display + button control
    • transistors for gate LEDs

Front Panel

  • construction:
  • milling with vcarve (see notes)
  • bracket woes
  • top row height difference/case construction
  • new PSUs/back panel enclosure/breakout board
    • future addition power + current LEDs and test jumper for current measurement

Photo

  • next steps:
    • work on tech debt: reverse TRS connections and front panel PCBs
    • midi to cv front panel + char display mounting
    • tri-state gate signal?: on/off/trigger
    • need a way to chain the gate signal, probably out from EG
    • filter module