Back to Projects
ReleasedMobile App Family

Band Mate Easy Bass

Band Mate

Enter bass notes in order, then play them by tapping the screen in your own rhythm.

App Store · In reviewGoogle PlayWebsite
Platforms
iOS · Android
Built with
Swift / SwiftUI · native Android
Pricing
Free · no account
Languages
English · 한국어 · 日本語

Playing in a band is hard when you do not know the bass line by hand, but most people can tap along in time. Easy Bass takes the fingering out of the job. You enter the notes of a line once, in order, and then play them by touching the screen, so your timing and your muting are what make it sound like a bassist. It is meant for people who want to join in without learning the fretboard first.

What it does

Design choices

No note lengths, ever

A song stores only the order of notes. How long each note lasts, and where the rests are, comes from your finger: touching sounds the note, lifting mutes it. Nothing advances on its own, so the rhythm is always yours rather than a timer's.

The latest finger wins

When you alternate two fingers quickly, a new touch can land before the old one lifts. The touch surface tracks the most recent finger: a new touch re-strikes the next note, and releasing the earlier finger afterwards does not mute it. Fast patterns do not drop notes.

Sections with repeat counts

A song has hundreds of notes, so it is built from sections such as intro, verse and chorus, each with its own repeat count, one scrolling row per section. You type the notes of a verse once instead of four times, and the play view follows the expanded order.

Bring a tab in, check what was read

Notes can come from a pasted text tab, a PDF, a photo or a MIDI file. Vector PDFs are read directly from their drawing instructions; other PDFs and photos fall back to image recognition. The import screen shows the result for correction, and the plan states that hand-written or low-quality photos are not guaranteed.

How it's built

Real bass samples, with a fallback

The sound comes from FreePats Finger Bass YR, a CC0 recording of a Yamaha RBX, plus slap-thumb and slap-pop banks, played back at the pitch you chose. If the samples cannot be read, the app switches to a Karplus-Strong string model so it still makes sound.

Low-latency audio on Android

The Android app renders audio in a C++ core ported from the iOS synth and outputs through AAudio, with an allocation-free render path. It falls back to AudioTrack if the native library will not load. The core is plain Kotlin-compatible logic that JVM tests can render directly.

Surviving audio interruptions

On iOS the engine restarts on configuration changes, silences notes when a call interrupts, and resumes the session only when the system says it may. If the media server resets, it rebuilds from scratch on the next start instead of staying silent.

Release regression checks

Each submission runs a release-check tool whose last recorded run, for the iOS build 1.0.1 (23), passed 342 assertions. The Android tab reader is tested against golden output produced by the iOS reader on six synthetic PDFs, so both platforms read the same tab the same way.

More Band Mate apps

All Projects Contact