Skip to content
/ cbpm Public

cBPM is a crowd-powered BPM (beats per minute) detection system designed for electronic music events, clubs, and festivals. Instead of relying on machine analysis, CBPM invites the audience to tap the beat in real time, generating a dynamic, collective pulse that reflects the crowd’s rhythm.

License

Notifications You must be signed in to change notification settings

makalin/cbpm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

🎵 cBPM v.2 - Crowd-based BPM Detector

cBPM (Crowd-based BPM) is an open-source experiment that captures the collective rhythm of a crowd by letting users tap to the beat during live music events. Taps are aggregated in real time, producing an accurate, community-driven BPM display.

Built with ultra-fast and lightweight technologies — no bloated frameworks, just HTMX, Animora, and Rust.

cBPM Demo


✨ Features

  • 🖱️ Tap-based beat input from audience
  • ⏱️ Real-time BPM aggregation and display
  • 📲 Mobile-first responsive interface
  • ⚡ Built using HTMX and Animora
  • 🔌 Rust backend with WebSockets and Axum

🛠️ Stack Overview

Layer Technology
Frontend HTMX + Animora (CSS)
Backend Rust + Axum + WebSocket
Database SQLite (or Postgres)
Hosting Static + binary server

📁 Project Structure


cbpm/
├── frontend/
│   ├── index.html         # Main UI
│   ├── app.js             # Tap logic
│   ├── animora.css        # Custom utility-first CSS
│   └── assets/
├── backend/
│   ├── src/
│   │   └── main.rs        # Rust server with Axum
│   └── Cargo.toml
└── README.md


🚀 Getting Started

🖥 Frontend (Static)

You can run this with any HTTP server.

cd frontend
python3 -m http.server 8080
# Visit http://localhost:8080

🦀 Backend (Rust)

Make sure you have Rust installed.

cd backend
cargo build --release
./target/release/cbpm_backend

⚙️ How It Works

  1. Users open the web app and tap in rhythm.
  2. Each tap is sent to the backend via HTMX requests or WebSockets.
  3. Server calculates rolling BPM average from all active users.
  4. Visual BPM display is updated in real time.

📸 Screenshots

Add visuals or demo GIFs in /frontend/assets/ and reference them here.


📜 License

MIT © Mehmet Akalın


🔗 External Links


🤝 Contribute

Contributions are welcome! Fork the repo, improve it, and open a PR.

About

cBPM is a crowd-powered BPM (beats per minute) detection system designed for electronic music events, clubs, and festivals. Instead of relying on machine analysis, CBPM invites the audience to tap the beat in real time, generating a dynamic, collective pulse that reflects the crowd’s rhythm.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published