You are browsing as a guest. Sign up (or log in) to start making projects!

Open comments for this post

3h 24m 19s logged

Audio Mixer - Devlog #00

Project Introduction

This project actually started before Stardance, so I’ll give a short introduction first.

The idea came from Modue. I wanted an audio mixer that can control and route audio from individual applications or groups of them into multiple output channels, while also allowing virtual control and saving presets.

But Modue turned out to be quite expensive, so I decided to try building something similar myself.

I ordered a few parts from AliExpress and started sketching out a concept. I designed a circuit, which was my first real attempt at hardware design. After that, I built a breadboard prototype and later soldered everything onto a perfboard.

For the case, I’m using FreeCAD, which is also new to me. I was already familiar with Blender, but I picked up CAD by just doing, and I really enjoy it. The case is not finished yet, but most of it is done.

On the software side, I’m writing an Electron app with a C++ backend (native addon). I already built a simple audio routing engine where you can add channels, select input devices or virtual inputs, and control volume. Communication between the software and the ESP32 already works, so I can control the faders from software, and the faders also update when changes happen in software.

Each fader (except one) has a small display underneath. Its main purpose is to show channel information and states like mute. These displays are ESP32-C6 boards with integrated touchscreens. They communicate with the main ESP32 over ESP-NOW.

Updates

  • Added a 6-button push matrix (3x2) to a display (since the main ESP32 ran out of usable GPIO pins)

  • Wrote a script to read button presses from the matrix (each row is pulled LOW individually, then columns are read)

  • Button presses are sent to the main ESP32 via ESP-NOW

  • Integrated the display firmware into the main firmware repository

Challenges

  • One of the buttons didn’t reliably trigger
    → Fix: added a small delay between setting the row LOW and reading the columns
0
1

Comments 0

No comments yet. Be the first!