Browse Source

add midi to cv drafts with images

main
cinnaboot 10 hours ago
parent
commit
339269775a
  1. BIN
      content/images/brd.png
  2. BIN
      content/images/brd_thumb.png
  3. BIN
      content/images/midi_to_cv_schematic.png
  4. BIN
      content/images/midi_to_cv_schematic_thumb.png
  5. 61
      content/midi_to_cv_part_1.md
  6. 20
      content/midi_to_cv_part_2.md

BIN
content/images/brd.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 KiB

BIN
content/images/brd_thumb.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
content/images/midi_to_cv_schematic.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

BIN
content/images/midi_to_cv_schematic_thumb.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

61
content/midi_to_cv_part_1.md

@ -0,0 +1,61 @@
Title: MIDI_to_CV part 1
Date: 2026-10-07
Category: Posts
Tags: Electronics, Hardware
Status: draft
[![Photo](https://bxxa.cc/gallery/thumbs/projects/20261001_080127.jpg)](https://bxxa.cc/gallery/image/projects/20261001_080127.jpg "measure once cut twice")
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](https://bxxa.cc/gallery/thumbs/projects/IMG_20230410_152446.jpg)](https://bxxa.cc/gallery/image/projects/IMG_20230410_152446.jpg)
The classic way of generating melodies for analog synthesizers would be an [analog sequencer](https://en.wikipedia.org/wiki/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](https://en.wikipedia.org/wiki/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](https://en.wikipedia.org/wiki/MIDI_controller) 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](https://www.alsa-project.org/alsa-doc/alsa-lib/seq.html), 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](https://en.wikipedia.org/wiki/2025%E2%80%93present_global_memory_supply_shortage), but during the previous Covid chip shortages, the [Libre Computer](https://libre.computer/products/) single board computers (SBC)s were a good alternative to the more popular raspberry pi boards that were [unavailable](https://www.raspberrypi.com/news/production-and-supply-chain-update/) to consumers. I've continued using these over the Raspberry Pi boards because they do a much better job [upstreaming](https://linux-meson.com/hardware.html) their changes to the linux kernel than the larger, and more popular [Broadcom](https://en.wikipedia.org/wiki/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](https://libre.computer/products/aml-s905x-cc/) board from Libre Computer. It has the same form factor as the Raspberry Pi, which means we can use existing '[HATs](https://pip.raspberrypi.com/categories/1215-raspberry-pi-hat)', and PCB [templates](https://github.com/devbisme/RPi_Hat_Template).
[![Photo](images/brd_thumb.png)](images/brd.png)
For the [prototype](https://bxxa.cc/gitea/cinnaboot/synth-modules/src/branch/main/midi_to_cv), we're using a single [MCP4921](https://ww1.microchip.com/downloads/en/DeviceDoc/21897a.pdf) 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](https://en.wikipedia.org/wiki/Sample_and_hold) and level shifting ICs for 5 CV/Gate channels in the final module.
[![Photo](images/midi_to_cv_schematic_thumb.png)](images/midi_to_cv_schematic.png)
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

20
content/midi_to_cv_part_2.md

@ -0,0 +1,20 @@
Title: MIDI_to_CV part 2
Date: 2026-10-08
Category: Posts
Tags: Electronics, Hardware
Status: draft
- software: (separate post?)
- auto run on boot
- notification led when ready
- poll for usb midi controller?
- future:
- polyphonic tracks
- midi track/channel selection
- file selection/ui display
- Lakh MIDI dataset/Million Song Dataset
- echo nest backup after killed by spotify:
- https://github.com/MTG/echonest-backup
- https://en.wikipedia.org/wiki/Echo_Nest
- midi in RIFF container doesn't work w/ fluidsynth 'yana.mid'
Loading…
Cancel
Save