Stats

1
Projects
5
Devlogs
0
Votes
0
Ships

Coding Time

All Time: 18h 13m
Today: 0h 0m

Member Since

June 16, 2025

Activity

After many more offline hours, I finally created the hardware I wanted. I also made some software improvements, and right now I am working on getting the ESP32 to store the pin config in flash and use it on startup.

Update attachment

I spend countless hours developing my demo Hardware (logged on <<LAST_PROJECT>> -.-) The Acrylic Glass top plate looks great and even fluorinates in the dark and under black light.

The Electronic part is also coming to live as seen in the Pictures and videos. I will complete the hardware until Wednesday the 16th of July. After that, I will just focus on the Software and getting it ready for users to actually have a UI that makes config file generation easy…

Update attachment

The Input from one or more potentiometers work! I am working on config flashing support right now.

Since the last devlog I did a few different things:
- Made MIDI out port selectable through frontend

  • Added first GUI Ideas using stitch.withgoogle.com (really cool tool, try it)

  • Rebuild MIDI Output package to make it way more runtime efficient.
    Up until now i had a function that could be called with an array with 127 elements (7bit used by midi) each containing a value of 0-172. The performance problem was: Each time the function was called (50 times a second) the selected midi output port was verified, opened, the values where send, the port was closed and the function returned nil or some error.
    It should be clear what the problem is right here.

The new package works way better and is more stable. I start my new output function using a go routine. The function than opens the selected midi port and iterates over a channel using a for range loop. This has the advantage that the code inside the loop only executes when there is something written to the channel. The send values (same array with 127 elements format is used) get than processed and send to the already opened midi channel. This has the advantage that the overhead of the package is only executed on initialization, and not on every update.

Update attachment

First demo of simulated midi input to test pc driver

Jorim
Jorim created a project
54d ago

ESP32 Framework: Modular MIDI CC Input device driver (Go and C++)

This Project is the software side of a larger product I am building. It allows anyone to make their ESP32 into a full blown MIDI input device (like a DJ Controller, a SoundBoard etc.) without having to touch code! Right now there is only an CLI but a HTMX based GUI will be added soon. The PC Driver is written in Go to be as lightweight as possible to not affect performance of for example Virtual DJ Software ore DAWs and to make cross-platform easy. Right now I am developing for arch linux (because that's what I use btw) but it *should* be working on any desktop platform (Win, Mac and the beloved penguin one). The ESP32 Firmware is written in C++ and compiled using the ArduinoIDE to make it easy to flash for anyone. You are able to select a input type (Rotary, Button, Potentiometer etc.) for each GPIO-Pin on your ESP. This will be saved to flash and work on startup after you configured it. To be transparent: I use AI to generate Styles for the UI, to generate documentation texts (i am not good at writing stuff), to generate small code portions (copilot auto complete) and to understand error messages better, but the logic and most of the code are written by me, Jorim.

ESP32 Framework: Modular MIDI CC Input device driver (Go and C++)
5 devlogs 1 follower
Jorim
Jorim joined Summer of Making
56d ago

This was widely regarded as a great move by everyone.