Skip to main content

Private tuner, built solo

Centerline

A private chromatic tuner for musicians on Android and iPhone that shows which way to tune at a glance and never sends audio anywhere.

Year
2026
Role
Solo product owner & engineer
Status
Live
Centerline private chromatic tuner for musicians on Android and iPhone
Centerline on Android + iPhone: private, offline pitch direction for a single note at a time

At a glance

  • Android + iPhoneplatformThe current public releases are available on Android and iPhone.
  • 62–800 Hzpitch analysisChromatic pitch analysis follows one note at a time.
  • Noneads, accounts, or network callsAudio stays on the phone, and the core task works offline.

Problem

Most tuner apps bury a simple job under ads, sign-ins, and subscriptions. Centerline had to open quickly, stay readable in a dim room, work offline with no ads or account, and follow one note at a time across a 62–800 Hz range.

Result

Centerline is live on Android and iPhone, with private offline chromatic single-note pitch analysis from 62–800 Hz, no ads or accounts, and a one-time Complete purchase.

  • Android + iPhone

    public releases

    The product is available now on Android and iPhone.

  • 62–800 Hz

    single-note analysis

    Chromatic pitch analysis follows one note at a time.

  • One-time

    upgrade, no subscription

    Free covers everyday tuning. Complete is a single purchase.

  • Focused

    product scope

    The app stays centered on fast, legible tuning.

Role

I took the product from the first interaction through its public Android and iPhone releases:

  • Product designDefined the tuning flow, visual hierarchy, display modes, and paid boundary around how a guitarist actually uses the app.
  • Native Android buildBuilt the Android app in Kotlin and Jetpack Compose, including microphone capture, pitch detection, state handling, and Play Billing.
  • Native iPhone buildBuilt the iPhone app in Swift and SwiftUI, with the same tuning behavior and StoreKit purchases.
  • Release workPrepared the store listings, privacy material, purchase flow, and production releases.
  • Ongoing ownershipMaintain the product, respond to platform changes, and keep the public claims aligned with what the current release does.

Constraints & Decisions

A few decisions kept the tuning flow simple and the pitch feedback clear:

  • Keep audio localMicrophone input goes through the pitch detector on the phone. The core task works offline with no ads, account, or internet connection.
  • Show direction before detailThe interface makes flat, sharp, and in-tune states legible at a glance, with cents and frequency available as supporting information.
  • Make the free mode usefulFree includes Chromatic and all display modes, and a single purchase unlocks the rest. Complete adds alternate and custom six-string tunings, capo, A4 432–446 Hz calibration, and reference tones.
  • Build natively on each platformKotlin and Jetpack Compose on Android, Swift and SwiftUI on iPhone, so microphone access, lifecycle, accessibility, and billing follow each platform directly.

Lessons

  • The main interaction should need no explanationA utility earns trust when its primary state is obvious before someone reads a label or opens settings.
  • Privacy can simplify the architectureKeeping audio on-device removes an entire class of server, account, consent, and reliability concerns.
  • A release includes more than the main featureBilling, privacy disclosures, store assets, release checks, and updates are part of maintaining the app.
  • Two native apps, one productKeeping the Kotlin and Swift builds in step took shared specs and a device test matrix, not shared code.

Let's talk.

Planning an interactive or cross-platform product? I bring product planning and hands-on engineering together, from the core mechanic through release and ongoing maintenance.