基于 ESP32-C3 与 Elixir 的 WiFi UDP MIDI 模块化控制器

本项目基于 ESP32-C3 和 AtomVM 虚拟机,搭建分布式无线 MIDI 控制系统,采用 Elixir 实现多路控制器并发采集,支持 WiFi UDP MIDI 通信、多设备时钟同步,面向模块化合成器与音乐制作场景,软硬件全部开源。

基于 ESP32-C3 与 Elixir 的 WiFi UDP MIDI 模块化控制器封面
oshw_hqzl2026-10-30 14:18:18CERN-OHL-W v2
6
Star

PCBA

设计文件

KiCad图标midimesh_esp32-main.zip207.36KB(0次下载)

EDA查看器

复制嵌入代码

详细介绍

一、项目概述

midiMESH ESP32 是一套完全开源的模块化 WiFi 无线 MIDI 控制器生态项目,由 Nanas Sound 发布,面向电子音乐制作人、Eurorack 模块化合成器爱好者、创客开发者。项目以 ESP32-C3 为硬件核心,依托 AtomVM(轻量化嵌入式 Erlang 虚拟机),采用 Elixir 语言开发固件,实现基于 UDP/WiFi 的分布式 MIDI 控制,同时开放全套硬件 PCB 设计文件,支持爱好者复刻、二次修改与衍生开发。

传统 MIDI 大多依靠 5 针 DIN 有线连接,有线方案布线繁琐、现场扩展不便;市面上无线 MIDI 设备多为闭源成品,自定义、多设备同步能力受限。midiMESH 正是为解决这个痛点而生:把 MIDI 控制信号放到 WiFi 网络里传输,支持多台控制器自由组网,同步节拍与参数,同时开放软硬件全部资料,高度可定制。

二、核心技术方案

  1. 主控与运行环境 主控选用 ESP32-C3(推荐 SuperMini 开发板),不在 ESP32 上跑传统 C 语言固件,而是搭载 AtomVM,直接运行 Elixir 代码。Elixir 依托 BEAM 虚拟机原生支持海量轻量并发进程,非常适合多路电位器、旋钮并行采样,多路输入互不阻塞,这也是本项目区别于绝大多数 ESP32 音乐控制器的特色。

  2. 通信协议:UDP MIDI over WiFi 将标准 MIDI 消息封装在 UDP 数据包,通过局域网广播传输,默认通信端口 4000。设备支持两种 WiFi 工作模式:

  • STA 模式:连接家用 / 工作室路由器,接入局域网,和电脑 DAW 互通;

  • AP 热点模式:控制器自身开启 WiFi 热点,脱离路由器,多台设备直连组网。

  1. 配套桌面接收程序 配套 midimesh_desktop_receiver 桌面工具,负责接收 ESP32 发出的 UDP MIDI 数据包,转发为电脑系统识别的虚拟 MIDI 端口,Ableton Live、Arturia Pigments 等 DAW、软音源可以像识别普通 USB MIDI 键盘一样直接读取控制信号。macOS 平台可配合 IAC 虚拟 MIDI 驱动使用。

三、功能特性

  • ✅ 标准 MIDI CC 控制消息发送:旋钮、滑条电位器实时采集,输出 MIDI 控制信号,调节音源效果、参数;

  • ✅ 并发多旋钮采集:利用 Elixir/BEAM 并发模型,多个输入控件独立采样处理,不会出现旋钮卡顿、丢消息;

  • ✅ 跨设备同步:多台 midiMESH 设备组网后,可同步 Tempo(速度)、节拍,适合现场即兴电子音乐表演;

  • ✅ 状态指示:LED 指示灯反馈 WiFi 连接状态;

  • ✅ 模块化架构:固件代码按旋钮、开关、MIDI 协议、配置模块解耦,方便新增硬件控件、修改逻辑;

  • ✅ 硬件标准化:硬件遵循 Eurorack 模块尺寸规范,可以直接装入模块化合成器机柜。

四、硬件设计

仓库 hardware 目录存放全部 KiCad 9.0 + 工程文件,包含原理图、PCB 布局,每个控制器版本独立文件夹。 已发布硬件版本:

  1. Slide & Twist Controller:滑条 + 旋转旋钮组合控制器,适合连续参数调节;

  2. Control Voltage(开发中):无线 MIDI 转 CV 模块,把网络 MIDI 信号转换成模拟控制电压,驱动传统 Eurorack 模拟合成器模块。

硬件文件仅作开源参考,用户可自行调整、打板生产。

五、开发与使用流程

  1. 准备环境:ESP32-C3 开发板、AtomVM 0.6.6 以上版本、Elixir、exatomvm 编译链、espflash 烧录工具;

  2. 编译烧录:编译 Elixir 源码为 AtomVM 固件,刷入 ESP32-C3,配置 WiFi;

  3. 硬件打板:使用 KiCad 打开硬件工程,导出 Gerber 文件制版、焊接电位器、旋钮等元器件;

  4. 音乐链路:电脑运行桌面接收软件 → 接收 UDP MIDI → 生成虚拟 MIDI 端口 → DAW / 软音源接收信号,实现演奏控制;

  5. 多机拓展:多台 midiMESH 接入同一 WiFi 网络,完成时钟同步,分布式协同表演。

六、开源许可与衍生规则

项目采用软硬件双许可证分开授权:

  • 固件代码(firmware):Apache 2.0 协议,允许自由修改、商用、分发;

  • 硬件 PCB 设计文件:CERN-OHL-W v2(弱互惠开源硬件协议),可复刻、商用;

  • 商标约束:衍生二次开发作品禁止直接使用 Nanas Sound、midiMESH 原始品牌标识,需要更换项目名称,仅可标注 “基于 midiMESH 开发”。

七、应用场景

  1. 工作室编曲:无线旋钮控制器控制 DAW、软音源参数;

  2. 现场电子演出:多设备分布式组网同步,摆脱 MIDI 线材束缚;

  3. Eurorack 模块化合成器系统:无线控制模拟模块;

  4. 创客教学:学习 ESP32、AtomVM、Elixir 嵌入式开发、网络 MIDI 协议。

八、项目创新点总结

市面上 ESP32 MIDI 控制器大多使用 C 语言开发,本项目创新性地将Elixir 函数式语言 + BEAM 并发模型引入嵌入式音乐硬件,天然适配多路控制器并行采集;同时打通 WiFi UDP MIDI、多设备时钟同步、Eurorack 标准化硬件,完整开放软硬件,给电子音乐创客一套高度自由的无线控制方案。

九、项目地址

https://github.com/nanassound/midimesh_esp32