Back to Projects
ReleasedMobile App Family

Band Mate Music Practice

Band Mate

Your whole practice rig in one app. Metronome, tuner, practice player and YouTube practice are free; a one-time Pro purchase unlocks unlimited on-device stem separation. No subscription.

Platforms
iOS · Android
Built with
Flutter · ONNX Runtime · C++ DSP
Pricing
Free · one-time Pro, no subscription
Languages
English · 한국어 · 日本語

Practising with a band recording usually means juggling four or five separate tools: a player to slow the song down, a metronome, a tuner, a way to loop the hard bar, and some way to hear your own part. Every switch breaks concentration. We wanted one app that holds the whole practice rig, where the basics stay free and the one heavy feature, separating a song into parts on the phone itself, is a single purchase rather than a subscription.

What it does

Design choices

Separate the whole song first

Part Focus applies only after the entire song has been separated. The team looked at playing unfinished parts early and decided against it, so a part never changes mid-song. Loading a new song resets the focus and never starts a separation on its own.

Tell the cost before it starts

Before a separation begins, the confirmation dialog shows an estimated time and says it varies with device speed and heat. After each run the app stores the measured time per segment on the device, so the next estimate reflects that phone rather than a fixed guess.

Six parts, solo by long-press

The Focus sheet shows drums, bass, guitar, piano, vocals and the rest as six toggles. A tap turns a part on or off; a long-press plays that part alone. Dropping your own instrument or isolating the one you want to copy is the whole interaction.

Training tools next to the player

Beyond looping, the Pro tools target how people actually drill: muting selected bars of the click so you must hold time yourself, a loop trainer that steps the tempo up progressively, and polyrhythm clicks. They sit on the same screens as the free metronome.

How it's built

Demucs on ONNX Runtime, on the device

Separation runs a Demucs model through ONNX Runtime with no server. Audio is processed in 343,980-sample windows (7.8 seconds at 44.1 kHz) with 25 percent overlap. A native C++ STFT (about 210 lines) prepares the spectrogram input on Android; iOS has its own Swift implementation.

Verified, compressed results

Each result is saved as six FLAC files plus a manifest. Right after saving, the app decodes the files and compares a SHA-256 with the original PCM before it reports completion. On one real cached song this cut 212.6 MB to 53.9 MB. Results are keyed by the source file's content hash, so renaming a file reuses them.

Guarded against running out of memory

Before starting, the app estimates the buffers for six parts plus 384 MiB of model headroom and refuses if that exceeds 75 percent of available memory. Cancelling or switching songs invalidates the old session, so late progress events from the previous song are ignored.

Metronome and tuner details

The metronome schedules each beat against a stopwatch reference to cancel timer drift, and skips missed beats after backgrounding instead of replaying them. The tuner uses YIN pitch detection from 30 to 1000 Hz behind a 55 Hz high-pass filter, so a bass low E at about 41 Hz still reads.

More Band Mate apps

All Projects Contact