Skip to main content

BeatBot CLI — local audio feature extraction for cloud cue-point prediction

Project description

BeatBot — AI-Powered DJ Mixing Tool

Live App: BeatBot

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.

  1. Feature Extraction: Tracks are natively processed using librosa behind the scenes. The engine slices the track into rhythmic grids and extracts time, spatial, and energy metrics (MFCCs, spectral contrast, beat continuity).
  2. 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).
  3. 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

beatbot-0.1.3.tar.gz (21.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

beatbot-0.1.3-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

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

Hashes for beatbot-0.1.3.tar.gz
Algorithm Hash digest
SHA256 19c235ac5b2112efd029aa2248b180b13fa7c42cbf8d9be7ca88b1a7a7a0cd88
MD5 fc17297bdeb16d0241bcd830ada185da
BLAKE2b-256 0e6ba5b7a7e7261e2ee568d6fdc983e15ea687dfaf4bd8d6133d9e1678e3569b

See more details on using hashes here.

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

Hashes for beatbot-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d9c62cdf58cb30d3d919632d6d1fc39bab80d0b1ad5b026d65ca2a5653cfa1cc
MD5 c82fb883f058bed60e23a1934bdb0f97
BLAKE2b-256 76728b34d1fd035a13c388fd2b0b4cd69a21330d917f58c6bbf4cac739120aed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page