Portrait Michael Malura

Piano Trainer

A self-built piano trainer for iPad and iPhone — show the sheet music, wait for the right note, jump ahead. A private app, just for our family, nothing on the App Store.

My daughter wanted to practice with her Roland FP-30X, with pieces we pick ourselves, and without paying for a subscription to some ready-made learning app. So I built us our own. The app reads the notes straight off the piano via MIDI — over a USB cable or Bluetooth — and notices whether the right key was hit.

The core is the wait mode: the sheet music stays put, the cursor waits on the next note and only moves on once she actually plays it on the real piano. The notes are rendered with OpenSheetMusicDisplay inside a WebView, MIDI input runs through CoreMIDI and automatically connects to any source that shows up — including a piano that was just paired over Bluetooth.

Klaviertrainer auf dem iPad im Wait-Mode: Notenblatt von Alle meine Entchen mit On-Screen-Klaviatur
Klaviertrainer auf dem iPad im Wait-Mode: Notenblatt von Alle meine Entchen mit On-Screen-Klaviatur

Around that there's a songbook with 31 pieces, sorted into First Songs, Classics, Games and Christmas, plus a progress display with stars. Own sheet music can be imported as MusicXML; I pull the material from public-domain sources like MuseScore or IMSLP. The whole thing is built natively in SwiftUI, the Xcode project is generated with XcodeGen and runs on iPhone, iPad and as a Mac Catalyst app. It stays a pure family side project for home.

Liederbuch auf dem iPhone mit den Kategorien Erste Lieder, Klassiker, Games und Weihnachten
Liederbuch auf dem iPhone mit den Kategorien Erste Lieder, Klassiker, Games und Weihnachten

Tech-Stack: Swift, SwiftUI, CoreMIDI, OpenSheetMusicDisplay, WKWebView, XcodeGen