1
0
Fork
You've already forked lyratronome
0
A MIDI clock driven metronome using the ESP32 LyraT board.
  • C 97.9%
  • Makefile 1.4%
  • CMake 0.7%
Beto Dealmeida 2677d8243f Fix license
2026年01月30日 08:40:11 -05:00
components/blemidi Add audio playback from SD card 2026年01月29日 19:22:39 -05:00
main Fix MIDI Start sync and add Makefile 2026年01月29日 23:21:46 -05:00
sdcard Add audio playback from SD card 2026年01月29日 19:22:39 -05:00
.gitignore Add LED tap tempo metronome for ESP32 LyraT 2026年01月29日 18:08:22 -05:00
CLAUDE.md Add CLAUDE.md project documentation 2026年01月30日 08:38:14 -05:00
CMakeLists.txt Add audio playback from SD card 2026年01月29日 19:22:39 -05:00
LICENSE Initial commit 2026年01月29日 21:55:23 +01:00
Makefile Fix MIDI Start sync and add Makefile 2026年01月29日 23:21:46 -05:00
partitions.csv Add LED tap tempo metronome for ESP32 LyraT 2026年01月29日 18:08:22 -05:00
README.md Fix license 2026年01月30日 08:40:11 -05:00
sdkconfig Add audio playback from SD card 2026年01月29日 19:22:39 -05:00
sdkconfig.defaults Add LED tap tempo metronome for ESP32 LyraT 2026年01月29日 18:08:22 -05:00

Lyratronome - ESP32 LyraT Smart Metronome

A precision metronome for the ESP32-LyraT V4.3 audio development board with Bluetooth MIDI synchronization.

Features

  • Standalone Mode: Internal clock with tap tempo
  • Bluetooth MIDI Sync: Automatically syncs to DAW transport and tempo
  • Audio from SD Card: Custom accent and click sounds
  • Volume Control: Hardware buttons for real-time adjustment
  • LINE IN Pass-through: Mix external audio with click track

Hardware

  • ESP32-LyraT V4.3 board
  • SD card with WAV samples
  • ES8388 audio codec

Button Functions

Button Function
Play Start/Stop metronome
Set Tap tempo (2-4 taps)
Vol+ Increase click volume
Vol- Decrease click volume

SD Card Setup

Place these files in the SD card root:

  • accent.wav - Downbeat sound (beat 1)
  • click.wav - Regular beat sound (beats 2-4)

Audio Format: PCM, 16-bit, 48kHz, mono or stereo, ~50-200ms duration

BLE MIDI

The metronome appears as "Lyratronome" to BLE MIDI hosts. When connected:

  1. Press Play in your DAW
  2. Metronome syncs to MIDI clock
  3. Tempo follows DAW changes

Supported MIDI messages:

  • 0xF8 Clock (24 PPQ)
  • 0xFA Start
  • 0xFB Continue
  • 0xFC Stop

Building

Prerequisites

  1. ESP-IDF v5.x
  2. ESP-ADF

Setup

# Set up ESP-IDF environment
. $IDF_PATH/export.sh
# Set up ESP-ADF
export ADF_PATH=/path/to/esp-adf
# Build
idf.py build
# Flash and monitor
idf.py -p /dev/ttyUSB0 flash monitor

Configuration

Edit settings in idf.py menuconfig under "Lyratronome Configuration":

Setting Default Description
Default BPM 120 Startup tempo
Min/Max BPM 30-300 BPM range
Default Volume 70 Startup volume (0-100)
Volume Step 5 Change per button press
Beats per Bar 4 Time signature
Tap Timeout 2000ms Tap tempo reset time
BLE Device Name "Lyratronome" Bluetooth name

Technical Details

SD Card Mode

Uses 1-bit SD mode to free GPIO13 for the Vol- button.

Audio Pipeline

[LINE IN] ─┐
 ├─ [audio_forge mixer] ─── [DAC output]
[clicks] ─┘

Timing

Uses esp_timer with ISR dispatch for microsecond-precision beat timing.

Core Assignment

  • Core 0: BLE stack
  • Core 1: Audio processing

License

GPL License - see LICENSE file