Practice Studio — piano, guitar & ukulele trainer for the Galaxy Z TriFold

_Plan v2 (after critique) · 2026-10-02 · status: plan only, nothing built_

1. What it is

A single web app (installable PWA, works offline) that turns the unfolded TriFold into:

Screen mockups

Comment on these by number (e.g. "A5", "B4"): https://practice-plan.arnao.ai/mockups/

2. The screen math (Galaxy Z TriFold, unfolded)

Source: Samsung Galaxy Z TriFold specs, Wikipedia.

QuantityValueHow
Main display10.0" diagonal, 2160 × 1584 pxspec
Pixel density267.9 ppi = 10.55 px/mm√(2160²+1584²) / 10
Active area204.8 × 150.2 mm (landscape)px ÷ px/mm
Unfolded body214.1 × 159.2 × 3.9–4.2 mmspec
CSS px per mm≈ 4.69 if Chrome reports DPR 2.25 (960 × 704 CSS px); 5.27 at DPR 2.010.55 ÷ DPR

Browsers lie about millimetres. CSS 1mm on Android is not a physical millimetre. The app computes cssPxPerMm = (screen.width × devicePixelRatio) / 204.8 on first launch, then shows a one-time calibration check: hold a credit card (85.60 mm, ISO/IEC 7810 ID-1) against an on-screen outline and nudge until it matches. Stored per device. Samsung's "Screen zoom" setting changes DPR, so the check re-runs if DPR changes.

Piano — real key size

Standard white key: 23.5 mm wide (octave ≈ 165 mm), black key ≈ 13.7 mm wide.

Slider settingWhite keys across 204.8 mmKey widthUse
1:1 real size8.7 (one octave + a 4th)23.5 mmfinger-position practice, true hand span
1.5 octaves10.519.5 mmcomfortable melody
2 octaves (default)1414.6 mmtwo-hand chords + melody
3 octaves219.8 mmstill tappable (≥ 9 mm touch target)
4 octaves287.3 mmsingle-finger, careful
88 keys523.9 mmview-only overview — taps disabled, tap to zoom there

Key height scales with width (real proportion 23.5 : 150 mm); at 2 octaves keys are ~95 mm tall, leaving ~55 mm for the song/chord strip above. A mini-map strip of all 88 keys sits on top; drag it to pan.

Guitar — real fret positions

Fret distance from nut: dₙ = L · (1 − 2^(−n/12)).

InstrumentScale LFrets 1 / 3 / 5 / 6 (mm from nut)Frets that fit in 204.8 mm (6 mm nut margin)
Electric/steel acoustic (Fender)648 mm (25.5")36.4 / 103.1 / 162.5 / 189.8nut → 6th fret
Gibson-style628 mm (24.75")35.2 / 99.9 / 157.5 / 183.9nut → 6th fret
Classical650 mm36.5 / 103.4 / 163.1 / 190.4nut → 6th fret

Nut width 43 mm (steel) / 52 mm (classical), widening to ~52/56 mm at the 12th fret. So the neck takes ~45–55 mm of the 150 mm height; the rest shows the chord diagram and next chord. Every open "cowboy" chord (frets 0–3) fits at true scale. For barre chords and higher positions the neck slides — the window shows any 6-fret span (e.g. frets 5–10) still at 1:1.

Ukulele — the whole useful neck fits

UkeScale L12th fret atFrets that fit
Soprano346 mm (13.6")173.0 mmnut → 14th
Concert381 mm (15")190.5 mmnut → 12th
Tenor432 mm (17")216.0 mmnut → 10th

Nut width ~35 mm, 4 strings. Default: concert, GCEA (low-G option). You select your own instrument's scale length — or measure nut-to-12th-fret on your instrument and enter it (×2 = scale length), so the glass matches your neck exactly.

3. Features

3.1 Fingering trainer ("place your fingers")

3.2 Chord display

3.3 Song library

3.4 Record & review

3.5 Practice helpers

4. Build

5. Critique (my own first pass)

  1. "Popular songs" collides with copyright. Lyrics and melodies of modern songs are copyrighted; chord progressions alone generally are not. Ultimate Guitar etc. pay licences. → Ship chord charts without lyrics for popular songs, full lyrics only for public domain, and a paste/import box for anything you bring yourself.
  2. Fingers on glass ≠ fingers on strings. No string tension, no fret wire feel, no thumb behind the neck. It trains where fingers go and fast chord changes (the actual beginner bottleneck), not pressure or clean tone. Keep it honest: pair every drill with "now do it on the real instrument" and the mic check.
  3. Physical scale depends on calibration. If DPR or screen zoom is off, 1:1 is wrong by 10–20 %. The credit-card check is mandatory, not optional.
  4. Multi-touch limits. Palm/hand resting on the glass creates ghost touches; barre chords put one finger across 6 strings (one touch point). → treat a long, wide contact as a barre (touch radiusX/Y), and enable palm rejection by ignoring touches larger than ~25 mm.
  5. Hinge area. The TriFold's two creases run vertically across the landscape screen at ~⅓ and ~⅔. Frets crossing a crease are fine visually, but avoid placing small targets on them.
  6. Piano on 205 mm is a toy for two hands. Even 2 octaves at 14.6 mm keys is ~62 % real size; muscle memory of span won't transfer. Use the 1:1 octave mode for hand-shape and the smaller modes for note learning; recommend a cheap MIDI keyboard over USB-C (Web MIDI works in Android Chrome) as the real upgrade path.
  7. Audio-based chord grading is unreliable on phone mics. Ship single-note checking and tuner first; chords later as beta.

6. Self-critique — Fable adversarial pass

What changed because of it (plan v2)

Fable saidDecision
The calibration formula is only a seed; the credit card must be the source of truthAdopted. The card check is mandatory on first launch and whenever DPR/fold state changes.
A real barre often shows up as 1–3 flickering touches, and palm rejection may not work on Samsung panelsAdopted. Day 1 is a touch spike on your TriFold (palm rest, barre, 4 fingers at once). That is the go/no-go test for on-glass drills.
"Hold the shape 1 s" trains mashingAdopted. Grading is on landing time (all fingers down, how fast), like Justin Guitar's one-minute changes.
Creases fall near frets 4–5 and 8–9Adopted. The sliding fret window snaps so that fret wires avoid the creases.
Touch can't tell which finger is whichAdopted. It checks positions only. Finger numbers are a guide, not graded.
Mic coach is the real product, glass fretboard is a demoPartly adopted. You asked for 1:1 finger placement, so it stays as a mode. But the core loop becomes: see the shape at 1:1 → play it on your real instrument → the app listens and checks it against the chord it expects (chroma match, which is much easier than open-ended chord recognition). If the touch spike fails, glass becomes view-only.
Piano slider is "theater"; Web MIDI is the real piano storyAdopted. Piano has two modes: Playable (2 octaves, 14.6 mm keys) and Overview (88 keys), plus a 1:1 octave view. USB-C/Bluetooth MIDI keyboard support moves into v1.
"2–3 sessions" is fantasyAdopted. About 6–8 sessions. The recorder ships without export/favourites.
Bold idea: use the folded cover screen as a daily 90-second "changes" habit loopAdopted for v1.1.

Revised build order

  1. Touch spike on the TriFold: palm rejection, barre clustering, crease positions (go/no-go)
  2. Calibration + 1:1 fretboard/keyboard rendering
  3. Tuner + single-note listening (YIN)
  4. Chord check against the expected chord (chroma) + change-speed drills on the real instrument
  5. ChordPro song player + chord library (public-domain lyrics; popular songs as chords only)
  6. Web MIDI piano + mic recorder
  7. Cover-screen daily-changes loop

Full critique (verbatim)

1. Physical-scale math: mostly right, one real error, one conceptual problem

The arithmetic checks out. 2160×1584 at 10.0" → 267.9 ppi is correct; 204.8×150.2 mm active area is consistent; the fret formula d = L·(1−2^(−n/12)) gives 36.37 mm for fret 1 at 648 mm — your table is accurate. Credit-card calibration is the right call and your note that CSS mm is fiction is correct.

The error: cssPxPerMm = (screen.width × devicePixelRatio) / 204.8 assumes screen.width reports landscape width and that the physical panel is exactly spec. On foldables, screen.width is orientation- and fold-state-dependent, and Samsung's reported resolution can differ from panel-native under screen zoom. Don't compute at all — treat the credit-card calibration as the source of truth, not a "check." Your formula is a seed value only.

The conceptual problem: 1:1 is genuinely useful for fretboards and near-useless for your piano framing. You already admit this in §5.6, but the plan doesn't follow through: the piano slider table presents 1:1 as a feature when it fits 8.7 keys — not even enough for a one-octave scale with crossing comfortably. The piano's honest value is note-location learning and chord-tone visualization, not finger placement. Say that, and stop selling the slider as a spatial-fidelity feature.

For fretboards, 1:1 has real value with a caveat you're underweighting: a real neck is a cylinder in the air with a thumb behind it. Flat glass trains the x/y map (which fret, which string) and change speed — legitimately the beginner bottleneck — but finger curvature and approach angle won't transfer. That's fine. But your "hold the shape 1 s = pass" metric will train flat-fingered mashing. Grade on landing time, not hold time.

2. Touch/hardware feasibility: this is where the plan is weakest

3. Pedagogy: partially sound, but the loop is open

The genuinely good insight: chord-change speed is the beginner bottleneck, and timed change drills (G→C under 2 s) map to proven practice methodology (this is literally Justin Guitar's "one-minute changes"). The drill modes are the strongest pedagogical element in the plan.

The weakness: nothing closes the loop with the real instrument. The plan's own §5.2 admits glass doesn't train pressure or clean tone — then offers "pair every drill with 'now do it on the real instrument'" as a suggestion, not a product mechanic. Without the app hearing the real instrument, you've built a quiz app about chord shapes, and flashcards do that for free. The recorder is passive; it logs but doesn't judge. No feedback → no deliberate practice → marginal improvement.

Piano pedagogy: the MIDI-keyboard-over-USB-C path (§5.6) is the only version that makes pianists better. Web MIDI on Android Chrome works. That should be v1, not a footnote.

4. The verdict: mic coach is the product; glass fretboard is the demo

Resolve definitively: the mic-listening coach is the real product. Here's the argument you're avoiding:

Keep the 1:1 fretboard as the reference view — "here's where your fingers go, at real scale" — not as the drill surface. Demote the touch-grading to a nice-to-have.

Scope & build order (corrected)

  1. Palm-rejection + multi-touch spike (go/no-go on glass drills)
  2. Tuner + single-note mic detection (YIN) — proves the listening pipeline
  3. Chord-verification-against-expected (chroma matching) + change-speed timer on the real instrument
  4. ChordPro player + chord library
  5. 1:1 fretboard reference view; glass drills only if the spike passed
  6. Web MIDI piano

"2–3 build sessions" for v1 is fantasy; the calibration, touch heuristics, and audio pipeline alone are that. Budget 3× and cut the recorder's export/favourites for v1.


Three highest-leverage changes:

  1. Invert the hero: mic-verified chord-change drills on the real instrument; glass fretboard becomes the reference display.
  2. Run the palm-rejection/multi-touch spike before writing anything else — it's the single existential risk to the on-glass feature.
  3. Make Web MIDI the piano story in v1; drop the key-width slider theater to two modes (playable / overview).

Bold idea you're missing: Use the TriFold's cover screen while folded as a pocket practice-streak companion — the daily "do your one-minute changes, app listens, 90 seconds total" habit loop. Duolingo's retention mechanic, pointed at a real guitar. The unfolded screen is the practice session; the folded screen is the reason they come back tomorrow.

7. References