Steven Piano

Verified safeOpen sourceExclusive
—
No reviews reviews
8
downloads
8.0
android

AI summary

MIDI player for a self-playing acoustic piano over Bluetooth LE MIDI, with a built-in library, playlists, channels, and multiple visualization modes including paper roll, falling notes, and sheet music. Includes kiosk mode, scheduled playback, web remote control, and on-device AI composition via Studio. Open source under MIT license.

Generated by AI. May contain inaccuracies.

About this app

Steven Piano — Android app that plays a MIDI library on a self-playing acoustic piano over BLE MIDI. Made by Steven Jin.

An Android app that plays Standard MIDI Files on Steven's self-playing acoustic piano over Bluetooth LE MIDI. Pick a piece in the Library or a playlist, watch it on Now playing as a paper roll, falling notes or pages of score while the piano plays it, play the piano yourself on Keys, and on the Piano tab connect, adjust the piano's own lighting and feel, and tune playback. Phones and tablets alike. Sideloaded as an APK; no accounts, no analytics, and the network only for composers' portraits and short notes from Wikipedia (see Artwork and notes below), for the app's own updates from its GitHub repository (see Updates), for the piano's firmware releases from the firmware's (see Updating the piano's firmware) and for Studio's models and the piano sound when you download them (see Studio, Piano sound on the tablet). With Web control on, it also serves its own control panel to your phone or laptop over Tailscale, and a request page to guests on the tablet's Wi-Fi (see Web control). It can play by itself at set times (see Schedules), on the school tablet it can be locked to the app as a kiosk (see Kiosk), Studio turns a piano recording into a piece, or composes a new one in the manner of a piece from the library, on the tablet itself (see Studio), and the tablet can play the pieces itself with recordings of a real piano when the piano isn't there (see Piano sound on the tablet). Made by Steven Jin. Version 1.10.

What it does Library: search; Playlists and Composers as grids of tiles with art; favorites and recent pieces. Import single files, a whole folder (with its INDEX.csv, whose sets arrive as playlists) or a zip, or load Steven's library from GitHub in one tap, and its updates later. A piece's menu plays it next, adds it to the queue or to a playlist, favorites, renames or deletes it, and opens About this piece. Playlists: a playlist is a page with its cover (your photo, else its first composer's portrait), Shuffle, and its pieces in the order you give them: drag a row by its handle, or use Move up and Move down in its menu. Play floats as a filled circle at the bottom of the list, wherever it is scrolled. Rename, change the photo or delete it from its menu. Built-in playlists: Popular, Recognisable and Epic on piano fill themselves from the library: the pieces everyone knows (Für Elise, the Moonlight, Clair de lune…), the concert warhorses (the Hungarian Rhapsody No. 2, the Heroic Polonaise, La Campanella…), and the 45 pieces of the Epic on piano set, however they came in. They come first among the playlists with a BUILT IN eyebrow, fill again after every import, hold only what the library has (each piece in at most four recordings), and can't be renamed, reordered or deleted; Change photo still works. A list that finds nothing is not shown. From Steven's midi folder they hold 17, 29 and 49 pieces. Channels: a row of wide cards above the playlists (See all shows them all as a grid): Calm, Epic, Baroque, Romantic, Impressionist, Nocturnes, Études and Everything, each faced with its four most frequent composers. A tap plays the channel without end: 25 of its pieces shuffled into Up next, ten more whenever fewer than five are left, and nothing again until the whole pool has played (the next round leaves out the last 20). Now playing and the panel read "CLAUDE DEBUSSY · CALM · CHANNEL", and the card "● PLAYING". A long press sets the channel's volume (70 % at first): the piano's own volume while the channel plays, when its firmware offers it (else the app's velocity), put back as it was when the channel ends; Schedule plays it at set times (see Schedules). Playing anything else, or Stop, ends the channel. A channel of fewer than three pieces reads "Add more pieces" and does not play. Up next, shuffle and repeat: the queue glyph on Now playing opens Up next, to reorder, remove, clear, or skip to a piece. Shuffle and Repeat (off, all, one) sit at the two ends of the transport and are remembered; shuffle keeps the current piece playing, and turning it off brings the order back. The lock screen and the system media controls show the queue and both modes. Artwork and notes: composers' portraits and two-sentence blurbs, and each piece's notes (tap the title on Now playing), from Wikipedia: the app talks to en.wikipedia.org and upload.wikimedia.org and nothing else (see below). Pieces without a portrait get a card drawn from their own first seconds. Now playing: the pianola paper roll (the default), Synthesia-style falling notes, or the score, with tempo, scrubbing, previous and next. Over the paper roll the scrubber and the transport float on glass above the notes just played, never over the tracker bar or the keys. A pause before each piece: two seconds of silence before every piece starts (Piano › Playback › Pause before each piece: off, or half seconds up to 5 s). Meanwhile the play button already reads pause, the time stays at 0:00, STARTING shows under the composer, and the first notes travel down the roll to meet the tracker bar as the piano plays them. Resuming after a pause never waits; a seek plays at once; two pieces are about 2 s apart. The mini player: on a phone, whatever is playing sits above the tab bar with its portrait, title and composer, play/pause and next; tap it for Now playing. Display mode (Piano › Display › Display mode after a minute, off at first): after a minute without a touch while a piece is loaded, the screen fades slowly into a display for passers-by: the piece's art large (the composer's portrait, else its roll card), its title, the composer and the channel, and a few lines about it (the piece's own Wikipedia notes, else the composer's), the art beside the words when the screen is wider than tall and above them when it is taller; the live dot at the foot and the byline, "Player piano" over "Made by Steven Jin", at the top right; on true black (or on the app's own ink or paper: Standby canvas). Standby shows › Paper roll keeps the earlier display instead: the portrait faint behind the title and the paper roll over its keyboard. A new piece cross-fades in. No controls: any touch, or Back, fades it away and brings the app back as it was, and does nothing else. The screen stays on and the system bars step aside while it shows. Glass: Apple's Liquid Glass across the app's functional layer, monochrome: the headers, the tab bar and the rail, the mini player, the transport, sheets, menus and dialogs, and the Keys pills are frosted surfaces the content scrolls under, with a soft fade where content meets a bar; the content itself (rows, cards, the roll, the score, the art) never is. At rest a header looks as it always has; the glass shows once the list is scrolled beneath it. The play control is a solid circle. With High contrast text on (Android's accessibility setting), or on Android 11 and older, the surfaces are solid and their hairlines stronger. The web panel's tab strip, section list, menus and PIN card follow it.

License

MIT

About this version

Version
1.10 (18)
Size
13.08 MB
Requires Android
8.0
Target SDK
26
Architecture
x86_64, arm64-v8a, armeabi-v7a, x86
Downloads
8
Updated
Oct 1, 2026
Package
dev.stevenjin.stevenpiano

Similar apps

Ratings & reviews

—
0 ratings
  • 5
    0
  • 4
    0
  • 3
    0
  • 2
    0
  • 1
    0

Write a review

Tap a star to rate this app