PROJECT

ACTIVE

B.A.D.

Beat Accuracy Detector

An Android drum-practice application that records rhythmic performances, detects drum hits, compares them with expected exercise notes, evaluates timing accuracy, and presents detailed feedback and statistics.

View on GitHub
B.A.D. project banner

Platforms

  • Android

Technologies

  • Kotlin
  • Jetpack Compose
  • Android
  • Gradle

Categories

  • Audio
  • Music
  • DSP
  • Education

PROJECT ROADMAP

Project evolution.

Completed
7
Current
0
Planned
6
Milestones
3
Complete Practice Experience Deliver the complete first-generation B.A.D. experience as a self-contained Android drum-practice application, including recording, calibration, signal processing, timing judgement, results, saved runs, history, and progress tracking. 7 of 8 waypoints completed
  1. Recording and Debug Playback

    Establish microphone recording and debug playback as the foundation of the B.A.D. practice and analysis pipeline.

  2. Sample Alignment and Recorded Session

    Introduce a stable recorded-session timeline and align captured audio samples with the exercise timeline, including recording control behavior such as pause, resume, repeat, and stop.

    Depends on WP-001

  3. Offline Audio Preprocessing

    Add offline preprocessing, envelope and noise-floor analysis, debug visualization, and CSV export tooling for inspecting recorded sessions before timing judgement.

    Depends on WP-002

  4. Universal Timing Calibration

    Add speaker-to-microphone timing calibration so device latency can be compensated before detected drum hits are judged against expected notes.

    Depends on WP-003

  5. Configurable Metronome Rejection

    Make the metronome and rejection pipeline configurable and freeze the relevant configuration into each active session so later setting changes cannot reinterpret completed results.

    Depends on WP-004

  6. Localized FFT Metronome Rejection

    Evolve metronome rejection toward localized frequency-domain analysis, using FFT-based detection to suppress metronome tones while preserving drum-hit information for downstream analysis.

    Depends on WP-005

  7. Results, Statistics and Practice Verdict

    Complete the local practice-analysis flow with hit detection, expected-note matching, Early, On Time, Late, Missed, and Extra judgement, timing statistics, detailed results, an interactive production graph, and a high-level practice verdict.

    Depends on WP-006

  8. Saved Runs, History and Progress

    Persist completed practice runs and production graphs, provide a history of previous sessions, and introduce progress tracking across repeated practice over time.

    Depends on WP-007

Reusable B.A.D. Core Separate the analysis engine from Android, establish B.A.D. Core as an independently versioned reusable component, and validate the architecture through a lightweight web test harness. 0 of 3 waypoints completed
  1. B.A.D. Core Extraction

    Extract audio processing, detection, matching, judgement, statistics, result models, and reusable domain logic into a platform-independent core with no dependency on Android UI or framework APIs.

    Depends on WP-008

  2. Standalone B.A.D. Core Distribution

    Establish B.A.D. Core as a separately versioned reusable component with a stable API boundary, release tags, dependency-consumption strategy, and licensing suitable for reuse by multiple clients.

    Depends on WP-009

  3. B.A.D. Core Web Test Harness

    Build a deliberately simple web test harness that loads an exercise definition and WAV recording, runs the extracted B.A.D. Core analysis flow, and compares its results with the Android implementation to validate portability and behavioral consistency outside the mobile application.

    Depends on WP-010

B.A.D. Platform Evolve B.A.D. into a multi-client project family composed of B.A.D. Core, B.A.D. Mobile, and B.A.D. Web, with the main B.A.D. repository serving as the umbrella project hub. 0 of 2 waypoints completed
  1. B.A.D. Web Reference Client

    Develop the proper B.A.D. web client on top of the validated reusable core, turning the earlier engineering test harness into a maintained user-facing client within the B.A.D. project family.

    Depends on WP-011

  2. B.A.D. Hub Repository

    Transform the main B.A.D. repository into the umbrella project hub for B.A.D. Core, B.A.D. Mobile, and B.A.D. Web, providing project-level documentation, architecture, roadmap, release overview, and links without duplicating implementation code from the component repositories.

    Depends on WP-012