Lightweight local real-time BPM (beats per minute) detector. Play music in any player or web page, and it will automatically display the current song's BPM in real time. No virtual sound card required — works out of the box.
Supports bilingual UI (Simplified Chinese / English). The language follows your system locale.
Windows only (Win10 and above, x64). macOS is not planned due to system-level limitations.
- Automatically detects and displays the BPM from audio currently playing on your system.
- Compact floating window with always-on-top, light/dark themes, and simple visualizations.
- Entirely local processing. No audio is collected or uploaded.
- Ready to use: No extra drivers or virtual sound card needed.
- Stable readings: Stabilization and anti-jitter for track changes and weak beats.
- Visualizations: Click on the waveform panel to switch among Waveform / Bar / Spectrogram.
- Pin & theme: Use the pushpin to toggle always-on-top; switch between light and dark themes.
- Auto updates (optional): Only stable builds (tags like
v1.2.3) receive OTA updates; pre-release builds must be updated manually. - Bilingual UI: Follows system language (Simplified Chinese / English).
- Official website (always points to the latest stable build): https://coderDJing.github.io/bpm-sniffer/
- Prefer GitHub? Grab the Windows installer (NSIS) from Releases: Releases · coderDJing/bpm-sniffer.
- Play your music (any player works).
- Open BPM Sniffer. The BPM will automatically follow the current track.
- Common actions:
- Pushpin (top-right): Toggle always-on-top.
- Sun/Moon (top-right): Switch light/dark theme.
- Click waveform: Switch visualization mode (Waveform / Bar / Spectrogram).
- Refresh (top-right): Reset quickly to re-lock onto a new beat.
- Not seeing values / always 0? Make sure your system is playing audio, the player volume is not muted, or click Refresh (top-right) and try again.
- Why does the number wiggle slightly sometimes? This is normal during track changes or transitions; it will stabilize shortly.
- Does it require microphone permission? No. The app reads the system loopback audio and does not use the microphone.
- Can I switch the UI language? It currently follows the system language (Simplified Chinese / English).
- Windows only (Win10 and above, x64). macOS is not planned due to system limitations.
- All processing is local. No audio data is uploaded.
Development & Debugging:
pnpm install
pnpm devBuild:
pnpm build- Installer output:
src-tauri/target/release/bundle/nsis/ - Tagging rules:
- Push
vX.Y.Zto trigger a stable release (with OTA updates). - Push
vX.Y.Z-suffix(must contain-, e.g.-rc1) to trigger a pre-release build (manual install only).
- Push
Algorithms & Implementation: see Algorithm principles & flow.
License: MIT (see LICENSE).

