BeatBot CLI — local audio feature extraction for cloud cue-point prediction
Project description
BeatBot — AI-Powered DJ Mixing Tool
BeatBot is an AI-powered mixing assistant that analyzes house music tracks and automatically selects the optimal entry and exit cue points for seamless DJ transitions. It uses a custom Learning-to-Rank model to analyze and rank track structures, while a React-based frontend provides a professional DJ deck environment directly in the browser to visualize and execute live crossfades.
🧠 How the Model Works
BeatBot evaluates tracks using a Learning-to-Rank (LambdaRank) approach. Instead of relying on a simple binary classification logic ("Is this a cue point or not?"), it uses a Dual Ranker architecture powered by LightGBM (src/model/lightgbm.py) to rank every bar in a specific track relative to the others.
- Feature Extraction: Tracks are natively processed using
librosabehind the scenes. The engine slices the track into rhythmic grids and extracts time, spatial, and energy metrics (MFCCs, spectral contrast, beat continuity). - Dual Rankers:
- Entry Ranker: Heavily regularized to pinpoint core structural beginnings (e.g., Intro starts, post-breakdown drops), preventing it from overfitting to specific song gimmicks.
- Exit Ranker: Configured with deeper trees to capture the nuanced energy drain indicative of an optimal mix-out point (e.g., Chorus decay, outro starts).
- API & Frontend Resolution: The backend serves a normalized probability distribution curve to the frontend. The web app intelligently determines precise time-based cue points using real-time playback duration.
🛠️ Local Setup & Configuration
The project operates through three synchronized components: a React Frontend, a Python API backend, and a Local Daemon sidecar.
Local Daemon / CLI
The daemon acts as a local HTTP/WebSocket sidecar (http://127.0.0.1:7337). It coordinates file system extraction locally (preventing heavy song uploads), drives the machine-learning feature generation, and syncs imports.
Setup:
# From the root of the project, install the CLI
pip install -e .
# Start the local daemon sidecar
beatbot daemon
# (Optional) Install it to start automatically on macOS login
beatbot daemon --autostart
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beatbot-0.1.3.tar.gz.
File metadata
- Download URL: beatbot-0.1.3.tar.gz
- Upload date:
- Size: 21.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
19c235ac5b2112efd029aa2248b180b13fa7c42cbf8d9be7ca88b1a7a7a0cd88
|
|
| MD5 |
fc17297bdeb16d0241bcd830ada185da
|
|
| BLAKE2b-256 |
0e6ba5b7a7e7261e2ee568d6fdc983e15ea687dfaf4bd8d6133d9e1678e3569b
|
File details
Details for the file beatbot-0.1.3-py3-none-any.whl.
File metadata
- Download URL: beatbot-0.1.3-py3-none-any.whl
- Upload date:
- Size: 23.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9c62cdf58cb30d3d919632d6d1fc39bab80d0b1ad5b026d65ca2a5653cfa1cc
|
|
| MD5 |
c82fb883f058bed60e23a1934bdb0f97
|
|
| BLAKE2b-256 |
76728b34d1fd035a13c388fd2b0b4cd69a21330d917f58c6bbf4cac739120aed
|