Skip to content

v1.0.13

Choose a tag to compare

@PabloCSScobar PabloCSScobar released this 18 Oct 21:15
· 16 commits to main since this release

What's new in 1.0.13

This release includes everything from 1.0.12 (which was not offered as an update) plus the effects changes below.

New look. The whole app was redesigned: practice hub, song library, practice screen, effects, games and settings. A first-run welcome screen and a device status indicator in the header were added.

Practice mode that follows the score. Repeats, voltas and D.C./D.S./Coda/Fine play the way MuseScore plays them. Grace notes, trills, mordents, turns, arpeggios, fermatas, dynamics and the sustain pedal from the score are now part of practice and playback, with their own LED patterns. A new Chords setting (strict, normal or no time limit) controls how quickly the keys of a chord must go down. "Continue practice" resumes from the bar where you stopped.

Falling notes. A smoother clock and a faster renderer, ornaments, articulations and a pedal strip.

Effects. Saved gradients are now one shared list for keys, background and animations, with a few new presets out of the box. Your own gradients are kept. Animations have their own brightness slider; it starts at your current background brightness, so animations look the same after the update.

Free play. Octave zoom with a mini-map, a settings sheet and a drum kit view.

Games. Reaction Game, LED Keeper, Piano Battle and Tremolo were redesigned. LED Keeper pause now really freezes the game, and the Reaction Game shows its results on the page.

Fixes. The 14-day trial was over right after the first connection to WiFi when the system image was older than two weeks. The trial now counts from the first time the device gets the correct time from the internet. If your trial ended this way after installing the 1.0.10 or 1.0.11 image, it starts again after this update. Also many fixes to the sheet music cursor, playback of measure ranges and the WiFi setup.

Updates. The settings page no longer says "no updates" when the check failed (for example without internet), and it stops offering an update that is already installed. From the next update on, a failed update and the automatic return to the previous version are reported right away. Learning progress, statistics and the trial state are kept when updating from 1.0.11 (the old updater did not copy them).

All changes

New

  • effects: own brightness slider for animations, independent of the background brightness
  • api: accept ornaments, pedal_led and velocity_led; add practice capabilities
  • api: device status and LED strip test endpoints
  • effects: Lighting | Animations switch at the top of the Effects page, remembered, with a dot on what drives the strip now
  • effects: all key and background lighting options on the Effects page with a live key preview; drop the LED settings page
  • effects: tune the selected animation in place, idle options inline, preview/icon view toggle; drop the duplicate animation settings page
  • falling-notes: now/next and loop cards in the tablet side panel, readable hand colours
  • falling-notes: ornaments, articulations, pedal strip and played-note look
  • falling-notes: smooth clock, fast renderer and new practice UI
  • falling-notes: song-notes v2 contract and playback timing fields
  • falling-notes: types for the richer song-notes data
  • free-piano: drop hidden Studio/looper, pinch only over the notes, keep the sequencer
  • free-play: octave zoom with mini-map, settings sheet, drum kit view
  • led-keeper: redesign level picker and game screen, fix result screen
  • license: report trial sessions left in license status
  • parser: dynamics written as text in
  • parser: play repeats, voltas and D.C./D.S./Coda/Fine like MuseScore's RepeatList
  • parser: read volta endings, segno/coda/fine markers and D.C./D.S. jumps
  • piano-battle: redesign, correct key ranges and pause
  • playback: arpeggio rolls the chord note by note
  • playback: articulation gate and accents
  • playback: fermatas and text tempo changes
  • playback: grace notes sound to measure, like MuseScore
  • playback: listen from a given measure to the end (start_at_measure)
  • playback: note velocity from score dynamics and hairpins
  • playback: ornaments, volume and pedal on the LEDs in listening
  • playback: sustain pedal from score
  • playback: trills, mordents and turns play as ornament events
  • practice: Chords setting - strict, normal or no time limit for the keys of a chord
  • practice: LED patterns for hits, ornaments, arpeggio and pedal
  • practice: chord timing (tight / normal / off) comes with the start like the other fidelity fields
  • practice: drop the fullscreen button from the transport bar
  • practice: fidelity settings, hand colours, progress and pedal logic, start parameters, PL/EN texts
  • practice: follow the score pedal when the app plays the other hand
  • practice: heading for the pedal and volume settings card
  • practice: learn or listen from the measure picked on the transport bar
  • practice: live transport and loop/pickup fixes
  • practice: ornament and grace steps, practice_progress and pass summary events
  • practice: ornament and pedal settings, played-note HUD, pass summary card
  • practice: pedal pill asks to release the pedal when the score does not want it
  • practice: score transport bar and practice-mode fixes
  • practice: single-hand waiting state and wrong-note feedback
  • practice: "Continue practice" resumes from the bar where you stopped
  • reaction-game: redesign setup and game screens
  • sheet-music: cursor stands on the grace note of the step
  • songs: expose velocity, playback timing, ornaments, pedal and tempo in song-notes
  • songs: song notes carry the map from the time of the sound to the time on the score
  • tremolo: redesign page, fix speed slider and range wording
  • ui: animated LED strip previews on game tiles, recorded from the real game code
  • ui: device status chip and sheet in header (stage 2)
  • ui: effects hub redesign (stage 6)
  • ui: redesign stage 1 - visual foundation
  • ui: games and more screens redesign (stage 8)
  • ui: games as illustrated tiles instead of a plain list
  • ui: license screen and first-run welcome (stage 7)
  • ui: new practice hub (stage 3)
  • ui: practice session redesign (stage 5)
  • ui: song library redesign (stage 4)
  • wifi: handoff instructions when LEDsplay switches networks, redesign WiFi page

Fixes

  • effects: one gradient library shared by keys, background and animations; every list refreshes after a change

  • updater: keep learning progress, stats and trial when updating from 1.0.11

  • updater: install requirements into the new venv on every update

  • updater: install only the versioned tarball with a verified checksum, report update status to the app, refuse a second concurrent update

  • updates: drop stale update offers, show failed checks and failed/rolled-back updates

  • effects: autoplay visible previews and speed up longer cycles

  • effects: record Tetris as a full-cycle timelapse instead of speeding up a 12 s clip

  • falling-notes: practiced hand wins on keys shared by both hands

  • falling-notes: use settings hand colours and keep transport popover above canvas buttons

  • free-piano: remember zoom, scroll position and visualization across refresh; keep the view centred when zooming

  • free-play: drum kit drawn in portrait after Piano -> Kit in landscape

  • games: pause/stop use the game's own ID, Reaction Game results on the page instead of a dialog

  • i18n: plain hyphen instead of em dash in all visible texts

  • i18n: plain hyphen instead of em dash in pedal and optional ornament texts

  • led-keeper: pause freezes the game time

  • leds: the same key struck again goes dark for 80 ms first

  • license: trial counts 14 days from the first NTP sync, not from the image clock

  • license: trial of a customer who installed the 1.0.10 or 1.0.11 image starts again

  • optimize practice views and LED settings

  • parser: a repeat walk over its limit falls back to the plain measure order

  • parser: display timeline in score position, independent of tempo

  • parser: do not play cue notes

  • parser: grace notes written one after another get their own times

  • parser: match each of a direction on its own for D.C./D.S./Fine

  • parser: measure lengths and numbering follow OSMD

  • parser: public measure number follows the MusicXML number like the sheet music

  • parser: read volta numbers written with a trailing dot ("1.")

  • parser: repeat_list compiles with Cython again

  • parser: take pitch from only and apply attributes in document order

  • playback: close ties at repeat jumps

  • playback: honor measure ranges and preserve position on stop

  • playback: play a leading grace note before the first beat

  • playback: range window ends before the first measure played by a D.C./D.S. jump

  • playback: report current measure on the expanded timeline

  • playback: sound a tied note that starts before the chosen measure

  • playback: treat staff 3+ as left hand

  • point in-app purchase link to /checkout instead of bare domain

  • practice: HUD and key hints show the key of the ornament sub-step, not the main note

  • practice: accept slowly rolled chords

  • practice: build chords in time order so a grace note does not split them

  • practice: cursor of a grace note step stands on the note it leads into

  • practice: do not replay voltas after a D.C./D.S. jump in a measure range

  • practice: fit the session screen on phones with the transport bar

  • practice: grace note line names the main note during the grace step

  • practice: highlight the chosen measure numbers without shifting them for a pickup

  • practice: keep chord notes after a mistake and while the student holds the pedal

  • practice: light shared keys in the practiced hand colour

  • practice: persist zoom and synchronize playback and navigation

  • practice: release accompaniment notes after their written length

  • practice: staff 3+ falls back to left hand

  • practice: the keys of a chord must go down within 250 ms again; a rolled chord of the score stays free

  • sheet-music-page: no resize listener per OSMD instance, release OSMD on destroy

  • sheet-music: debounce zoom re-render with a CSS scale preview

  • sheet-music: keep cursor colour and alpha after re-render

  • sheet-music: keep the cursor on the sounding note during playback

  • sheet-music: practice cursor no longer one step behind when the backend rounds the time to whole ms

  • sheet-music: remove cursor step limits and avoid double redraw on rewind

  • sheet-music: reuse one OSMD instance when the song changes

  • sheet-music: state the measure number settings explicitly

  • sheet-music: use MusicXML measure numbers instead of OSMD pickup renumbering

  • sheet-music: watch only the cursor and its page instead of the whole score

  • sheet: cursor keeps its OSMD width after a grace note step

  • sheet: listening cursor follows the playback clock instead of 100 ms positions

  • sheet: listening cursor stops with the playback

  • songs: do not tie notes across a repeat jump in song-notes

  • ui: play LED previews also with reduced motion (Windows with animation effects off)