# Piano changelog — alegauss

Every entry in Piano's roadkeep ledger, dated by the commit that wrote it.

- 2026-09-23 · PI111: Piano has no public page, README or LICENSE, so nobody finds it and the MIT claim points at no file
- 2026-09-23 · PI110: no installer survives the release workflow, so v0.1.0 cannot be published
- 2026-09-22 · PI109: A chosen option is told from the ones beside it by the weight of its text, which reads as no difference
- 2026-09-22 · PI108: Open recent still offers a deleted piece, and the system's own list still offers one at the path it has moved from
- 2026-09-22 · PI107: Deleting or retitling from chat skips the bin and leaves the practice records behind, where the panel does neither
- 2026-09-22 · PI106: Open recent names a piece by the title it had when it was opened, so a corrected one is listed under its old name
- 2026-09-22 · PI105: Tidying a library that grew by the batch means opening, confirming and closing one row at a time
- 2026-09-22 · PI104: Claude Code can write a score into the library but never remove one, nor correct what one says without rewriting it
- 2026-09-22 · PI103: Practice history is keyed by a score's id or, where it has none, its title: renaming a piece starts its record over
- 2026-09-22 · PI102: A retitled piece keeps the file name and id it was filed under, so the panel, the folder and chat disagree
- 2026-09-22 · PI101: Nothing in the app removes a score: a piece filed by mistake leaves the library only through the file manager
- 2026-09-22 · PI100: A piece's title, composer, level and tags can be set only as it is filed, never corrected afterwards
- 2026-09-22 · PI99: A file the library folder cannot take in stays there unlisted, and only the log says why
- 2026-09-22 · PI98: The empty library tells people to ask Claude Code and never says that a MIDI file of their own can go in
- 2026-09-22 · PI97: A MIDI or MusicXML file copied into the library folder is ignored by the index, and nothing on screen says why
- 2026-09-22 · PI96: An imported piece is filed with a title and nothing else: no composer, no level, no tags, so no filter finds it
- 2026-09-22 · PI95: An import filed under a title the library already holds overwrites it, with nothing asked and nothing said
- 2026-09-22 · PI94: Nothing in the window puts a score into the library: an imported MIDI or MusicXML piece is gone when it closes
- 2026-09-21 · PI93: An import whose repeats and jumps expand past 4,000 bars is cut off mid-piece and nothing says it was cut
- 2026-09-21 · PI92: The installed-app check hands over a .piano only, so the MIDI and MusicXML it registers are never opened end to end
- 2026-09-21 · PI91: The transport bar's first button is wrapped in two hints, and the outer one can never open
- 2026-09-21 · PI90: A da capo or dal segno is reported and not followed, so an imported piece ends where the writing stops
- 2026-09-21 · PI89: A .musicxml or .mxl double-clicked in the file manager opens something else, the installer claiming neither
- 2026-09-21 · PI88: A MusicXML file cannot be opened, so the stave guesses spellings, hands and fingering the file already states
- 2026-09-21 · PI87: A parts row shows a speaker, an S and an eye, and nothing says which of them silences and which hides
- 2026-09-21 · PI86: The transport bar is a row of icons, and a pointer resting on one is told nothing
- 2026-09-21 · PI85: Moving the stave's zoom slider changes nothing on the page
- 2026-09-21 · PI84: A library row whose composer is a sentence shows no title: the chips squeeze it to nothing
- 2026-09-21 · PI83: The stave is drawn at one size, and on a dense score its notes are too small to read
- 2026-09-21 · PI82: The button that leaves the stave shows the same note glyph as the MIDI monitor two places along
- 2026-09-21 · PI81: Notes in a busy bar are drawn on top of each other, so a page of sixteenths is unreadable
- 2026-09-21 · PI80: Noteheads, clefs and rests stay black in the dark theme, which is the theme the app opens on
- 2026-09-21 · PI79: Eighth notes and shorter are drawn with a flag each, so the page shows no beat grouping
- 2026-09-21 · PI78: Every launch loads the engraver and its music font, even for a player who never opens the stave
- 2026-09-21 · PI77: The view infers clefs, accidentals and rests, then shows the guess as if it were the score
- 2026-09-21 · PI76: VexFlow draws black on white, unreadable in the dark theme and outside the app's colour system
- 2026-09-21 · PI75: The stave stands still while the piece plays, so the reader loses their place by the second bar
- 2026-09-21 · PI74: Nothing on screen reaches the sheet view: the roll owns the centre of the window
- 2026-09-21 · PI73: The piece has no written form: the falling roll is the only way to read what comes next
- 2026-09-21 · PI72: Durations are ticks, so nothing says whether a note is a dotted quarter or what fills the gap after it
- 2026-09-21 · PI71: The design system's gallery renders in the app, showing sample controls to whoever opens the piano
- 2026-09-21 · PI70: Nothing starts the installed app with a score and watches it open that score
- 2026-09-21 · PI69: The report panel's copy button hands over every piece's history from a view about one piece
- 2026-09-21 · PI68: Nothing exercises the file associations an installer writes, so a wrong macro or plist key ships unnoticed
- 2026-09-21 · PI67: Practice history sits unvalidated in browser storage, and nothing in the app exports or deletes it
- 2026-09-21 · PI66: Double-clicking a score in the file manager never reaches the piano: no file type is registered
- 2026-09-21 · PI65: validate_score passes a score with the left hand above the right, a chord no hand can reach, or a bar half full
- 2026-09-21 · PI64: Nothing is published to download: the plugin sends a person without the app to an empty releases page
- 2026-09-21 · PI63: A worked-out arrangement lives for one session: it is derived again at every launch and a correction has nowhere to go
- 2026-09-21 · PI62: The roll says a note was late but not by how much, so a player who is always a hair early cannot see it
- 2026-09-21 · PI61: The synthesised fallback and the recordings are not matched in loudness or onset, so the handover can be heard
- 2026-09-21 · PI60: The format-ownership guard reads a split "type Score," import line as a declaration and fails the lint
- 2026-09-21 · PI59: With the window hidden, Chromium may throttle the timer that wakes the scheduler, and notes then arrive late
- 2026-09-21 · PI58: Nothing in the app saves a score as MIDI, so the way into a DAW that the recording non-goal promises is unreachable
- 2026-09-21 · PI55: A new install opens on an empty library, so there is nothing to hear and nothing to try
- 2026-09-21 · PI54: The sample pack cannot ship inside the installer, and there is no way to fetch it
- 2026-09-21 · PI53: Every setting resets on restart: device, theme, calibration and level are chosen again each time
- 2026-09-21 · PI52: Scores pile up in a folder with no index: nothing lists, searches or filters them
- 2026-09-21 · PI51: There is no way to open a file: a score sitting on disk cannot be loaded into the app at all
- 2026-09-21 · PI50: Nothing proves the premise: no single run goes from a request to a piece actually playing
- 2026-09-21 · PI49: A local port that accepts scores and plays them is an open door on the machine
- 2026-09-21 · PI48: Asking to play a piece fails whenever the app is closed, which is most of the time
- 2026-09-21 · PI47: A rejected score comes back as a validation dump the model cannot act on
- 2026-09-21 · PI46: A model writing a score guesses at the format and produces files that almost validate
- 2026-09-21 · PI45: There is no plugin: the tools only work for someone who wires an MCP server by hand
- 2026-09-21 · PI44: The MCP server and the app are separate processes with no way to find each other
- 2026-09-21 · PI43: Claude Code cannot reach the app: there is no way to send a score or start playback
- 2026-09-21 · PI42: Every session starts from nothing: no record of what was played, what improved or what still fails
- 2026-09-21 · PI41: A hard bar can only be practised by replaying the whole piece and waiting for it to arrive
- 2026-09-21 · PI40: Only scores hand-authored with three arrangements are playable at beginner level
- 2026-09-21 · PI39: Beginner, intermediate and advanced are only words: nothing says what changes between them
- 2026-09-21 · PI38: The player gets no feedback: nothing on screen says which note was right, wrong or late
- 2026-09-21 · PI37: Nothing says how the attempt went: wrong notes, late notes and missed notes all pass unremarked
- 2026-09-21 · PI36: Playback runs away from a beginner, who cannot keep up and has nothing to practise against
- 2026-09-21 · PI35: Input and output latency are unknown, so a player who is in time gets graded late
- 2026-09-21 · PI34: Without a MIDI keyboard there is no way to play at all, so most people cannot try the app
- 2026-09-21 · PI33: A MIDI keyboard plugged into the machine is invisible: nothing receives a single note
- 2026-09-21 · PI32: Colours are chosen ad hoc, so the roll is unreadable in one theme and ambiguous under colour blindness
- 2026-09-21 · PI31: Every part sounds and draws at once, so a learner cannot isolate one hand or one voice
- 2026-09-21 · PI30: There are no controls: playback cannot be started, scrubbed, slowed or transposed from the screen
- 2026-09-21 · PI29: The roll has no structure: nothing shows where a bar starts or which bar is playing
- 2026-09-21 · PI28: Notes reach the keyboard and nothing happens: the moment of contact is invisible
- 2026-09-21 · PI27: A dense passage drops frames, so the roll stutters exactly when the music gets interesting
- 2026-09-21 · PI26: Notes do not fall: there is nothing between the score and the screen
- 2026-09-21 · PI25: There is no keyboard on screen: nothing shows which key a note belongs to or which is sounding
- 2026-09-21 · PI24: Practising without a beat reference is guesswork, and playback starts with no warning
- 2026-09-21 · PI23: There is no transport: nothing plays, pauses, seeks, loops or changes tempo
- 2026-09-21 · PI22: One sample per note sounds like a toy: no dynamics, no pedal resonance, no key release
- 2026-09-21 · PI21: Loading hundreds of megabytes of samples before the first note makes the app feel broken
- 2026-09-21 · PI20: There is no piano sound: raw sample libraries are gigabytes of WAV, unusable as they ship
- 2026-09-21 · PI19: Notes scheduled from timers drift audibly: timing wanders and chords stop landing together
- 2026-09-21 · PI18: There is no way to produce sound, and no seam between the engine and everything that drives it
- 2026-09-21 · PI17: The format exchanges with nothing: MIDI files cannot come in and no score can go out
- 2026-09-20 · PI56: npm run dev opens two identical windows, and an edit to main spawns another instead of replacing it
- 2026-09-20 · PI16: There are no reference scores, so nothing proves a format change kept old files readable
- 2026-09-20 · PI15: Nothing validates a score, so a malformed file fails somewhere deep inside the audio engine
- 2026-09-20 · PI14: The format has no version, so a file written today stops opening the moment a field changes
- 2026-09-20 · PI13: A score carries no title, composer, key or licence, so the library has nothing to list or filter
- 2026-09-20 · PI12: Nothing in the format says what beginner, intermediate and advanced mean for a given piece
- 2026-09-20 · PI11: There is no way to name a passage, so nobody can ask to play the chorus or bars 12 to 20
- 2026-09-20 · PI10: Sustain pedal, dynamics and articulation are unrepresented, so playback sounds mechanical
- 2026-09-20 · PI9: A score is one flat list of notes, so the parts panel has nothing to mute, solo or colour
- 2026-09-20 · PI8: There is no note model: pitch, length, dynamics, hand and fingering have nowhere to live
- 2026-09-20 · PI7: There is no time model: nothing says where a note starts, and seconds break the moment tempo changes
- 2026-09-20 · PI6: There is no installer: the app only runs in development mode, on the machine that built it
- 2026-09-20 · PI5: Nothing checks the code: with no tests, no lint and no gate, a regression only shows up while playing
- 2026-09-20 · PI4: There is no design system: every screen would invent its own colour, spacing and components
- 2026-09-20 · PI3: The renderer can reach Node and the file system, and IPC messages carry no type
- 2026-09-20 · PI2: The score format has to run inside the app and inside the MCP server, with no duplicated code
- 2026-09-20 · PI1: There is no application: nothing opens a window, nothing compiles and there is no way to run it
