Skip to content

BPM Tap Tempo

BPM Tap Tempo is a lightweight native desktop application for measuring beats per minute by tapping along to a beat. Built in Rust with the immediate-mode GUI framework egui, it launches instantly and runs with minimal resource usage — no Electron, no browser, just a small native window. It’s the kind of focused utility tool that belongs in every musician’s and audio engineer’s toolkit.

The app presents a single “Tap” button in a compact 220×120 pixel window. Each time you click, it measures the time elapsed since the previous tap using std::time::Instant and converts the interval to BPM:

if delta.as_secs_f32() < 2.0 {
self.bpm = 60.0 / delta.as_secs_f32();
}

A 2-second timeout resets the calculation, so stale taps don’t produce misleading readings.

  • Tap Tempo Detection — Click the button in rhythm and get an instant BPM readout
  • Native GUI — Built with eframe/egui for a responsive, immediate-mode UI with no web overhead
  • Minimal Footprint — The entire application is ~50 lines of Rust in a single main.rs
  • Fixed Window — Non-resizable compact window keeps the tool unobtrusive on your desktop
  • Timeout Guard — Ignores intervals longer than 2 seconds to avoid erroneous readings
  • Cross-Platform — Compiles natively on macOS, Linux, and Windows via Cargo
LanguageRust (2021 edition)
GUI Frameworkegui 0.31 / eframe 0.31
Build SystemCargo
PlatformDesktop (macOS, Linux, Windows)

The source code is available on the project’s GitHub repository.