Skip to content

chromatone/polymetronome

 
 

Repository files navigation

ESP32 Polymetronome Project

Core Concept

A modular multi-track hardware metronome system capable of running multiple independent rhythm patterns synchronized to a master tempo. Built on ESP32 with OLED display and precise solenoid actuation.

Documentation

Current Features

  • Two independent metronome channels
  • 20-500 BPM range with multipliers (1/4×, 1/3×, 1/2×, 1×, 2×, 3×, 4×)
  • Pattern editing with up to 16 steps per channel
  • Global tempo synchronization
  • Real-time visual feedback
  • Solenoid actuation with accent support
  • Wireless sync via ESP-NOW for multiple devices

Implementation Status

  1. Core Functionality
  • Basic timing engine
  • Pattern storage and playback
  • Solenoid control
  • Display rendering
  • Encoder input handling
  • Multi-channel synchronization
  1. Enhanced Features
  • Tap tempo input
  • Pattern templates
  • MIDI Clock sync
  • Settings storage
  • Wireless control
  1. Hardware Improvements
  • PCB design
  • Case design
  • Power supply optimization
  • Multiple solenoid support
  • LED indicators
  1. Modular system:
  • Connectors
  • Solenoids
  • Piezo buzzers
  • Speakers/amplifiers
  • LED arrays/strips
  • LCD displays
  • MIDI interface modules
  • Rotary encoders
  • Buttons/switches
  • Potentiometers
  • Accelerometers
  • Wireless modules (WiFi/BLE)
  • SD card readers
  • External DACs
  • CV/Gate outputs
  • USB interfaces

Wireless Sync System

The metronome now includes a wireless synchronization system using ESP-NOW, allowing multiple devices to stay in perfect sync:

  • Leader-Follower Architecture: One metronome acts as the leader, broadcasting timing and pattern information
  • Low Latency: ESP-NOW provides sub-5ms latency for tight synchronization
  • Robust Protocol: Custom protocol with heartbeats, tempo, pattern, and control messages
  • Auto-Recovery: Followers automatically reconnect if connection is lost
  • Expandable: Support for LED strips, additional solenoids, and other output devices

LED Receiver

A companion project is included for an ESP32-controlled LED strip that syncs with the metronome:

  • Receives wireless sync data from the metronome
  • Visualizes beats with configurable colors for each channel
  • Automatically follows pattern changes
  • See the LED Receiver README for details

About

Open hardware ESP32 multitrack metronome for rhythm study, practice and performance

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 85.3%
  • C++ 14.7%