Skip to main content

Aubio BeatCheck

A comprehensive validation and benchmarking tool for testing aubio audio analysis functions. Designed for closed-loop optimization of aubio parameters and performance tracking.

Features

  • 🎯 Standard Test Suites - Comprehensive pre-built test signals for tempo, onset, pitch, and complex analysis
  • 📊 Evaluation Metrics - Precision, recall, F-measure, and timing accuracy (MAE)
  • 📈 Waveform Visualization - Interactive plots comparing ground truth vs detected events
  • 💾 JSON Artifacts - Machine-readable outputs for AI-driven optimization
  • ⚡ Performance Metrics - Frame processing times (mean, P95, P99)
  • 🌐 Web UI + CLI - Choose between interactive web interface or scriptable CLI

Installation

# Clone the repository
git clone https://github.com/shauneccles/aubio-beatcheck.git
cd aubio-beatcheck

# Install with uv (recommended)
uv sync

# Or with pip
pip install -e .

Quick Start

CLI Mode (for AI Agent Integration)

Run analysis and generate JSON/PNG artifacts:

# Run tempo suite with 10-second signals
aubio-beatcheck run --suite tempo --duration 10 --output ./results

# Run all suites
aubio-beatcheck run --suite all --duration 15 --output ./results

# Output structure:
# ./results/
# ├── test_input.json          # Test configuration
# ├── ground_truth.json        # Expected events
# ├── analysis_results.json    # Detected events + metrics
# ├── evaluation.json          # Precision/recall/F1
# └── plots/
#     └── *.png                # Waveform visualizations

Web UI Mode

Start the web server for interactive analysis:

# Start backend
aubio-beatcheck web --port 8000

# Start frontend (in another terminal)
cd web && npm run dev

# Open http://localhost:5173

Test Suites

Suite Description Tests
tempo Beat tracking & BPM detection 60-180 BPM, timing jitter, click durations
onset Transient detection Attack types (impulse, sharp, medium, slow)
pitch Fundamental frequency Chromatic scales, intervals, waveforms
rhythmic Complex patterns Syncopation, polyrhythms
complex Combined signals Beats + melody + noise at various SNR
all All of the above Full validation suite

API Reference

REST Endpoints

Method Endpoint Description
GET /api/suites List available test suites
POST /api/suites/{id}/run Start analysis
GET /api/results/{suite_id} Get analysis results
GET /api/results/{suite_id}/{signal}/plot Get waveform plot (PNG)

JSON Artifact Formats

See docs/API.md for detailed schema documentation.

Development

# Install dev dependencies
uv sync --all-extras --dev

# Run tests
uv run pytest tests/ -v

# Lint & format
uv run ruff check .
uv run ruff format .

Architecture

aubio-beatcheck/
├── aubio_beatcheck/          # Core package
│   ├── cli.py                # CLI entry point
│   ├── core/                 # Analysis logic
│   │   ├── analyzers.py      # Aubio wrappers
│   │   ├── evaluation.py     # Metrics calculation
│   │   ├── ground_truth.py   # Pydantic schemas
│   │   └── thebeat_gen.py    # Signal generation
│   └── suites/               # Test suite definitions
├── web_api/                  # Litestar REST API
│   ├── main.py
│   ├── routers.py
│   └── plotting.py
├── web/                      # React frontend
└── tests/                    # pytest tests

References

  • aubio - Audio analysis library
  • thebeat - Research-validated signal generation
  • Litestar - Python ASGI framework

License

GPL-3.0

Metadata

Release files for aubio-beatcheck 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aubio-beatcheck 0.1.0
File Size Uploaded Provenance Actions
aubio_beatcheck-0.1.0.tar.gz 58.7 kB With provenance Details for aubio_beatcheck-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for aubio-beatcheck 0.1.0
File Interpreter ABI Platform Actions
aubio_beatcheck-0.1.0-py3-none-any.whl Python 3 none any Details for aubio_beatcheck-0.1.0-py3-none-any.whl

Total release size: 122.6 kB

Release files / aubio_beatcheck-0.1.0.tar.gz

Download URL aubio_beatcheck-0.1.0.tar.gz
Size 58.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e6b92420e505c2c6ff097720c53b1db10a12bc1755e665e31a7f61c7dc880c23
BLAKE2b-256 checksum
How to use checksums
6585bf68af024f0d9b32c4c77a920eac7be1281b1ff7724d7be84fdca0cd3afc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 6, 2025.

Transparency log

Release files / aubio_beatcheck-0.1.0-py3-none-any.whl

Download URL aubio_beatcheck-0.1.0-py3-none-any.whl
Size 63.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1d78c3ddaf204c3665758e1002dd545980e647a62f6a3aee1f80d8678a000262
BLAKE2b-256 checksum
How to use checksums
9f15cbe6f15432c2f915b8c36ba91b7fe56dd6ed7aae1f97e9b528b387ada34d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 6, 2025.

Transparency log

Security for aubio-beatcheck 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for aubio_beatcheck-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 6, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page