Repository navigation
Releases
Releases · AndiMb/scoreview
v1.30.0
Version 1.30.0 Added: - Step through the score note by note with `Shift+←`/`Shift+→` (#34). A step goes to the next or previous onset of your part - of every part but the drums when none is chosen - and, while stopped, sounds what starts there. During playback it only moves the position. Fixed: - The viewer's keyboard shortcuts work without first clicking a button (#34). After a click into the music the focus stayed on Nextcloud's viewer around the score, and Space or the arrows did nothing. Space on a control reached by keyboard still activates the control; after a mouse click it means playback.
v1.29.2
Version 1.29.2 Security: - scoreview-engine `v4.7.6-engine.4` on the local path, in the sidecar's engine renderer and in the browser fallback. The engine now checks a score before MuseScore reads it - nesting depth, staff and segment numbers, repeat counts, the version string and the zip structure, with every compressed entry unpacked once against its declared size - and refuses a file that fails, with the reason in the conversion error. A crafted `.mscz` could before crash the converter or keep it busy until the timeout. A score can also no longer pick up pictures or text styles from a score converted before it in the same process. The pictures of valid scores are unchanged (570 scores compared against `v4.7.6-engine.3`), so existing conversions are simply redone once with the new engine. Fixed: - A delegated administrator (Administration privileges for ScoreView) can now use the settings page: its diagnostics, self-test and save requests were refused with 403, because the permission attribute was imported from a namespace that does not exist and Nextcloud therefore never saw it. - "My part" is marked again on pages where MuseScore hides an empty staff in a system. Staves were matched to parts by their place in the system, so one missing staff switched the marking off for the whole page and put part stamps and drawings above the system instead; where the picture names its staves (local engine, sidecar with the engine), they are now matched by that number. Changed: - Score conversions in the background run one at a time, also when several cron processes overlap; a local conversion takes 130-250 MB of memory. - The PHP code is checked with Psalm against Nextcloud 31 and 35 in CI; deprecated Nextcloud APIs fail the build. - Score pages and their timing and metadata go out gzip-compressed when the browser accepts it: a page of 174 kB arrives as 22 kB. The stock Apache configuration compresses neither SVG nor JSON. - Status polls queue a pending conversion at most once a minute instead of writing to the job table on every poll. - Requests from the mobile page resolve the score once instead of twice. - The daily cleanup asks the file cache for all known scores in one query and checks only the missing ones one by one. - Suggestions for a new leader take everyone who already has the score mounted without setting up their file system. - Opening a setlist checks the conversions of all its pieces in one query. - The Files page loads the HTTP client only when a setlist is opened. - The practice log starts the week on the first day of the user's locale instead of always on Monday, and dates follow the Nextcloud locale. - Note markers and note texts in the score can be reached and opened with the keyboard; panels are named for screen readers. - Status colours of the tuner needle and shadows follow the theme.
v1.29.1
Version 1.29.1 Fixed: - Chrome on Android shows the own-part band and the bar cursor again: the score frame painted an opaque backdrop over them in system night mode. - "Only my part" for note names and beat numbers works in scores with a hidden part (for example a hidden drum kit); before, they appeared on every staff and the own-part band was missing. - With the screen locked or the tab in the background, a practice loop jumps back at its end and the metronome keeps clicking - both hung on animation frames, which the browser stops for a hidden page while the music plays on. - Administration settings can be delegated to a group (Administration privileges): the page now implements `IDelegatedSettings`, without which Nextcloud never offered it. Changed: - The mobile page extends its access token at most once a minute instead of writing to the database on every request. - "Convert again" is limited to five times in five minutes per person; a further click shows a hint and keeps the score. - The sidecar's SoundFont check gives up after 5 s and serves the cached copy, instead of waiting for the HTTP client's default timeout. - `IQueryBuilder::PARAM_DATE` (deprecated since Nextcloud 31) replaced by `PARAM_DATETIME_MUTABLE`.
v1.29.0
Version 1.29.0 Changed: - Note names are drawn as SVG text in page units instead of HTML labels: they scale with the music, and their placement no longer grows with the square of the notes on a page (about four times faster on a dense choir page, and not recomputed at all within one zoom step). - Zooming with Ctrl + mouse wheel, a trackpad pinch or the zoom slider previews the gesture and lays the pages out once at its end, instead of on every wheel event. - Live intonation: the microphone's audio blocks go straight from the capture worklet to the pitch worker, so a busy main thread no longer makes the needle stutter; marks and targets are looked up by binary search, and only the page under the cursor is updated. - Drawing on the score (E22) appends to the stroke instead of copying it on every pointer move; the scored-singing lane and stage index the lyrics once instead of every frame. - The player (spessasynth) and the panels opened on demand load as separate chunks, in parallel with the first page, which makes the viewer bundle smaller. - Page and measure count are stored with each conversion, so opening a score no longer decodes its `meta.json` on every status request. Fixed: - A conversion that yields no pages reports `no_pages` on every path; the local converter and the sidecar's engine renderer used to report it as `conversion_failed`. The sidecar's own time limit now reports `timeout`. - When several people open a score right after installation, only one request downloads the SoundFont into the server's cache; the others wait for it (HTTP 503 with `Retry-After`, which the viewer honours) instead of each downloading 24–40 MB. - “Show only my part” no longer disappears when the page that loads last has a system its staves cannot be matched to parts on (an interlude for fewer voices, say): one page that can match them is enough, and a page that cannot simply leaves the marking out. - A reconversion that yields fewer pages removes the extra old page files, and the local converter cleans up its output directory after each run. - Note names show on Android phones again: they lay behind the frame that holds the notation, which Chrome on Android draws opaque on screen. They now lie above it, with an outline in the page colour instead of the dark colour of the viewer around it. - In the band view, “Only my part” for note names takes effect wherever a page's staves can be matched to parts; the band never passed that on. - Scored singing shows a refused microphone as a sentence with a link to open the score in the browser (as recording does), instead of raw data. - A note sung flat a semitone above the next one no longer makes the next note's onset “early”. The troughs of its vibrato came closer to the next pitch than to its own, and three of them in a row passed for an onset some 130 ms before the beat – red in scored singing and in the intonation feedback, though the next note came exactly on time. An early onset now has to stay on the new pitch until the note begins.
v1.28.0
Version 1.28.0 Added: - Scored singing: sing your part along with the playback and get points for each run. A lane under the score – or a stage over it with the lyrics – shows your notes as bars and your voice as a line; at the end of each note its bar turns green, yellow or red with a word such as “low −40 ct”, “late” or “too short”. Three levels (Beginner, Choir, Strict). A run sung through from the start of the piece or the loop to its end is stored – the summary only, no audio – with your best score per level and tempo, a chart of your last runs and the measures to practise, each a click away as a loop. Pitch counts 60 %, onset 25 %, length 15 %. Only you see your results. Administrators can switch it off; it needs intonation. - Score → Info and diagnostics shows the app version, as the browser runs it. A browser still holding the scripts of an older version shows that here. Changed: - After an update that brings a newer scoreview-engine, a score converted on the local path is converted again the next time it is opened, once, so layout and timing fixes reach every score without “Convert again”. Scores are not all converted at once, only when opened. Conversions by the sidecar stay as they are; “Convert again” remains the way for them. The first opening of each score after this update converts it again, since older conversions did not record their engine. Fixed: - The update dialog of Nextcloud and the app store now show what changed in a release. The release archive did not contain this changelog, which the store reads from there (#31).
v1.27.2
Version 1.27.2 Fixed: - Tapping a note in the system band now shows its name, as on pages. The tone sounded, but the name was sent to the page view, which the band does not show.
v1.27.1
Version 1.27.1 Changed: - Synthesizer on spessasynth 4.4. Playback, "my voice on the right, the others on the left" and the audio file sound as before (measured against 4.3). - Conversion uses MuseScore 4.7.6 on both paths: scoreview-engine v4.7.6-engine.2 locally and in the browser fallback, the 4.7.6 AppImage in the sidecar. A sidecar built from an older Dockerfile with 4.7.6 fails with exit code 126 - rebuild from this one. - @nextcloud/dialogs 8, @nextcloud/vue 9.14, @nextcloud/files 4.1.1; notices now appear at the bottom of the screen. Fixed: - A volta whose endings all lie beyond the repeats already played no longer cuts the score off. Scores converted before need "Convert again" (Score -> Info and diagnostics).
v1.27.0
Version 1.27.0 New: - Pin the tools you use all the time to the bar: a pin on every menu row, pinned tools sit as buttons next to the menus - one tap instead of two or three. Up to four, stored with your account; by default the mixer, for a leader also "Leaders and Follow me". Changed: - The menus are sorted by topic: Playback and practice, View, Score. Frequent tools first, settings below a line; the mixer no longer hides behind a metronome icon. - "Appearance" and "Layout" are now "Colours" and "Pages and edition"; renderer, "Convert again" and diagnostics moved to Score -> Info and diagnostics.
v1.26.3
Version 1.26.3 Fixes: - The name of a tapped note shows over the notation, no longer hidden behind the neighbouring heads of a chord. - When a part or the phone page format cannot be engraved, the hint can be tried again or dismissed instead of staying on the screen. - Switching scores while a part or page format was loading no longer leaves that hint over the next score.
v1.26.2
Version 1.26.2 Faster on phones: - Menus open in about half the time: the notation sits in a document of its own, out of reach of Nextcloud's style rules. - Playback no longer re-renders the toolbar on every note, and following the cursor reads no layout. - Pinch zoom follows the fingers (Galaxy S23: 50 instead of 37 fps on the pages, 39 instead of 27 in the system band). - Opening a score and turning pages block the screen less; the system band prepares the next systems while idle.