Skip to content

Releases

v1.30.0

Choose a tag to compare

@github-actions github-actions released this 13 Nov 22:10
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

Choose a tag to compare

@github-actions github-actions released this 10 Nov 20:05
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

Choose a tag to compare

@github-actions github-actions released this 01 Nov 21:18
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

Choose a tag to compare

@github-actions github-actions released this 01 Nov 18:00
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

Choose a tag to compare

@github-actions github-actions released this 31 Oct 21:46
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

Choose a tag to compare

@github-actions github-actions released this 31 Oct 14:12
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

Choose a tag to compare

@github-actions github-actions released this 30 Oct 20:06
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

Choose a tag to compare

@github-actions github-actions released this 29 Oct 21:34
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

Choose a tag to compare

@github-actions github-actions released this 29 Oct 20:44
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

Choose a tag to compare

@github-actions github-actions released this 29 Oct 20:12
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.