merge many 3.x improvements
authormirabilos <tg@debian.org>
Thu, 29 Oct 2020 07:34:26 +0000 (08:34 +0100)
committermirabilos <mirabilos@evolvis.org>
Thu, 29 Oct 2020 07:34:26 +0000 (08:34 +0100)
12 files changed:
debian/changelog
debian/copyright
debian/patches/debian-specific/fixup-AppData.diff
debian/patches/experiments/lyrics-hyphen-5sp.diff [moved from debian/patches/experiments/lyrics-hyphen-max-8sp.diff with 95% similarity]
debian/patches/experiments/revert-restriking-patch.diff
debian/patches/experiments/smufl-typo.diff
debian/patches/experiments/smufl2sym.diff [new file with mode: 0644]
debian/patches/experiments/statusline-concert-transposing-pitch.diff [deleted file]
debian/patches/experiments/upstream-backend-fixes.diff
debian/patches/series
debian/patches/upstream/fix-accidental-paren-pos.diff [new file with mode: 0644]
debian/patches/upstream/statusline-pitch-onofftime.diff [new file with mode: 0644]

index 948fd7d..320d178 100644 (file)
@@ -1,8 +1,17 @@
-musescore2 (2.3.2+dfsg3-11) UNRELEASED; urgency=medium
+musescore2 (2.3.2+dfsg3-11) unstable; urgency=medium
 
   * Update lintian overrides
-
- -- Thorsten Glaser <tg@mirbsd.de>  Sun, 25 Oct 2020 02:06:17 +0200
+  * Fix copypasta in copyright file
+  * Merge improvements from upstream or submitted:
+    - regenerate libmscore/sym.* from SMuFL metadata, here Bravura
+    - indicate also the on/off time and pitch offset (tuning) in the
+      status line; spell octave in B♯ and C♭ correctly while at it
+    - fix rendering of parenthesised accidentals
+    - place lyrics hyphens at a maxumum 5 sp distance
+    - fix AppData
+  * Update patch metadata
+
+ -- Thorsten Glaser <tg@mirbsd.de>  Thu, 29 Oct 2020 08:34:00 +0100
 
 musescore2 (2.3.2+dfsg3-10) unstable; urgency=low
 
index 15a884b..24893c7 100644 (file)
@@ -195,12 +195,13 @@ Copyright: 2014, Werner Schweer and others <http://musescore.org>,
 License: OFL-1.1
 
 Files: fonts/mscore/mscore.*
-Copyright: 2014-2014, Werner Schweer <ws@wschweer.de>
+Copyright:
+ 2013-2014, Werner Schweer <ws@wschweer.de>
  2014, John Pirie <jpirie23@gmail.com>
  2013-2014, Maurizio M. Gavioli <mmg@vistamaresoft.com>
  2013-2015, Nicolas Froment <lasconic@gmail.com>
  parts derived from Emmentaler font, which (in total) is:
- 1997-2012, Han-Wen Nienhuys <hanwen@xs4all.nl
+ 1997-2012, Han-Wen Nienhuys <hanwen@xs4all.nl>
  1997-2012, Jan Nieuwenhuizen <janneke@gnu.org>
  2000-2012, Juergen Reuter <reuter@ipd.uka.de>
  2011-2012, Bertrand Bordage <bordage.bertrand@gmail.com>
index d93799d..06a262a 100644 (file)
@@ -1,4 +1,5 @@
 Description: Exclude undesired AppData entries
+ plus asv-description-has-plaintext-url (Debian QA warning) fix
 Author: mirabilos <tg@debian.org>
 Forwarded: not-needed
 Justification: diff between upstream Flatpak metadata and our regular AppStream one
@@ -18,3 +19,12 @@ Justification: diff between upstream Flatpak metadata and our regular AppStream
    <project_license>GPL-2.0</project_license>
    <metadata_license>CC0-1.0</metadata_license>
    <url type="homepage">https://musescore.org</url>
+@@ -208,7 +210,7 @@
+         <ul>
+           <li>Fix #270496: Add missing elements to incomplete tuplets when reading from a file</li>
+           <li>Fix #272042: Saved preferences override command line options</li>
+-          <li>Debian fix: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=898757. Fix crash when starting with piano open.</li>
++          <li>Debian #898757: Fix crash when starting with piano open.</li>
+           <li>Allow path to be relative to stored album file</li>
+           <li>Fix #273660 : MIDI Keyboard Not Responded when Pressed Before Opening a Score</li>
+         </ul>
@@ -10,7 +10,7 @@ Justification: made configurable in 3.x
        static constexpr qreal  MELISMA_DEFAULT_LINE_THICKNESS      = 0.10;     // for melisma line only;
        static constexpr qreal  MELISMA_DEFAULT_PAD                 = 0.10;     // the empty space before a melisma line
 -      static constexpr qreal  LYRICS_DASH_DEFAULT_STEP            = 16.0;     // the max. distance between dashes
-+      static constexpr qreal  LYRICS_DASH_DEFAULT_STEP            = 8.00;     // the max. distance between dashes
++      static constexpr qreal  LYRICS_DASH_DEFAULT_STEP            = 5.00;     // the max. distance between dashes
        static constexpr qreal  LYRICS_DASH_DEFAULT_PAD             = 0.05;     // the min. empty space before and after a dash
        static constexpr qreal  LYRICS_DASH_MIN_LENGTH              = 0.25;     // below this length, the dash is skipped
        static constexpr qreal  LYRICS_WORD_MIN_DISTANCE            = 0.33;     // min. distance between lyrics from different words
index 6395677..34a6d60 100644 (file)
@@ -1,5 +1,5 @@
 Description: Revert the unison restriking patch
- The restriking patch went into 2.2 (and thus 2.2.1, 2.3, 2.3.1)
+ The restriking patch went into 2.2 (and up), 3.x, and master,
  while it is not unquestioned. It was never meant to last; MIDI
  channel assignment to individual voices must be made user-friendly,
  but then, a reversal was intended by upstream. This diff implements
index 0155df9..b0d18de 100644 (file)
@@ -2,6 +2,7 @@ Description: Fix typo in SMuFL metadata
 Bug-SMuFL: https://github.com/w3c/smufl/issues/127
 From: Klaus Rettinghaus <klaus.rettinghaus@gmail.com>
 Forwarded: https://github.com/w3c/smufl/pull/129
+Applied-Upstream: yes, in SMuFL
 
 --- a/fonts/bravura/glyphnames.json
 +++ b/fonts/bravura/glyphnames.json
@@ -25,14 +26,3 @@ Forwarded: https://github.com/w3c/smufl/pull/129
      }, 
      "ornamentPrecompSlide": {
          "codepoint": "U+E5B0", 
---- a/libmscore/sym.cpp
-+++ b/libmscore/sym.cpp
-@@ -4306,7 +4306,7 @@ QVector<QString> Sym::symUserNames = {
-       "Inverted mordent with upper prefix",
-       "Mordent with release",
-       "Mordent with upper prefix",
--      "Pre-beat port de voix follwed by multiple mordent (Dandrieu)",
-+      "Pre-beat port de voix followed by multiple mordent (Dandrieu)",
-       "Slide",
-       "Slide-trill with two-note suffix (J.S. Bach)",
-       "Slide-trill (D'Anglebert)",
diff --git a/debian/patches/experiments/smufl2sym.diff b/debian/patches/experiments/smufl2sym.diff
new file mode 100644 (file)
index 0000000..7a11442
--- /dev/null
@@ -0,0 +1,643 @@
+Description: regenerate sym.* from SMuFL metadata
+Author: mirabilos <m@mirbsd.org>
+Forwarded: https://github.com/musescore/MuseScore/pull/6742
+
+--- /dev/null
++++ b/fonttools/smufl2sym-cmd-SymId.jq
+@@ -0,0 +1,5 @@
++"      " +
++(keys_unsorted[] |
++      sub("^4string"; "fourString") |
++      sub("^6string"; "sixString")
++) + ","
+--- /dev/null
++++ b/fonttools/smufl2sym-cmd-debug.jq
+@@ -0,0 +1,2 @@
++def pad(s; len): s | until(length >= len; . + " ");
++to_entries | (map(.key | length) | max + 2) as $maxlen | .[] | (pad(.key; $maxlen) + .value.description)
+--- /dev/null
++++ b/fonttools/smufl2sym-cmd-symNames.jq
+@@ -0,0 +1,3 @@
++"      \"" +
++(keys_unsorted[] | gsub("\""; "\\\"")) +
++"\","
+--- /dev/null
++++ b/fonttools/smufl2sym-cmd-symUserNames.jq
+@@ -0,0 +1,7 @@
++to_entries[] | [
++      "      ",
++      if (.key | in($tr[0])) then "QT_TRANSLATE_NOOP(\"symUserNames\", \"" else "\"" end,
++      (.value.description | gsub("\""; "\\\"")),
++      if (.key | startswith("accidentalWyschnegradsky")) then " (Wyschnegradsky)" else "" end,
++      if (.key | in($tr[0])) then "\")," else "\"," end
++] | join("")
+--- /dev/null
++++ b/fonttools/smufl2sym-in-trans.json
+@@ -0,0 +1 @@
++{}
+--- /dev/null
++++ b/fonttools/smufl2sym.bat
+@@ -0,0 +1,31 @@
++@echo off
++
++REM You need JQ for Windows from: https://stedolan.github.io/jq/download/
++REM
++REM Rename jq-win64.exe or jq-win32.exe to jq.exe and place it either in
++REM the %PATH% or in the fonttools directory in the MuseScore tree.
++
++REM You need DOS2UNIX for Windows from: https://waterlan.home.xs4all.nl/dos2unix.html
++REM
++REM Extract bin\dos2unix.exe off dos2unix-*-win64.zip or dos2unix-*-win32.zip
++REM and place it either in the %PATH% or in the fonttools directory.
++
++cd /d "%~dp0"
++
++jq -f smufl2sym-cmd-debug.jq -r <..\fonts\bravura\glyphnames.json >smufl2sym-out-debug
++
++echo       // SMuFL standard symbol IDs {{{>smufl2sym-out-sym.h-SymId
++jq -f smufl2sym-cmd-SymId.jq -r <..\fonts\bravura\glyphnames.json >>smufl2sym-out-sym.h-SymId
++echo       // SMuFL standard symbol IDs }}}>>smufl2sym-out-sym.h-SymId
++
++echo       // SMuFL standard symbol names {{{>smufl2sym-out-sym.cpp-symNames
++jq -f smufl2sym-cmd-symNames.jq -r <..\fonts\bravura\glyphnames.json >>smufl2sym-out-sym.cpp-symNames
++echo       // SMuFL standard symbol names }}}>>smufl2sym-out-sym.cpp-symNames
++
++echo       // SMuFL standard symbol user names {{{>smufl2sym-out-sym.cpp-symUserNames
++jq -f smufl2sym-cmd-symUserNames.jq --slurpfile tr smufl2sym-in-trans.json -r <..\fonts\bravura\glyphnames.json >>smufl2sym-out-sym.cpp-symUserNames
++echo       // SMuFL standard symbol user names }}}>>smufl2sym-out-sym.cpp-symUserNames
++
++dos2unix smufl2sym-out-debug smufl2sym-out-sym.cpp-symNames smufl2sym-out-sym.cpp-symUserNames smufl2sym-out-sym.h-SymId
++
++echo All done!
+--- /dev/null
++++ b/fonttools/smufl2sym.sh
+@@ -0,0 +1,36 @@
++#!/bin/sh
++
++set -e
++LC_ALL=C
++LANGUAGE=C
++unset LANGUAGE
++export LC_ALL
++cd "$(dirname "$0")"
++
++jq -f smufl2sym-cmd-debug.jq \
++    -r <../fonts/bravura/glyphnames.json \
++    >smufl2sym-out-debug
++
++{
++      echo '      // SMuFL standard symbol IDs {{{'
++      jq -f smufl2sym-cmd-SymId.jq \
++          -r <../fonts/bravura/glyphnames.json
++      echo '      // SMuFL standard symbol IDs }}}'
++} >smufl2sym-out-sym.h-SymId
++
++{
++      echo '      // SMuFL standard symbol names {{{'
++      jq -f smufl2sym-cmd-symNames.jq \
++          -r <../fonts/bravura/glyphnames.json
++      echo '      // SMuFL standard symbol names }}}'
++} >smufl2sym-out-sym.cpp-symNames
++
++{
++      echo '      // SMuFL standard symbol user names {{{'
++      jq -f smufl2sym-cmd-symUserNames.jq \
++          --slurpfile tr smufl2sym-in-trans.json \
++          -r <../fonts/bravura/glyphnames.json
++      echo '      // SMuFL standard symbol user names }}}'
++} >smufl2sym-out-sym.cpp-symUserNames
++
++echo 'All done!'
+--- a/libmscore/sym.cpp
++++ b/libmscore/sym.cpp
+@@ -47,6 +47,12 @@ QVector<ScoreFont> ScoreFont::_scoreFont
+ QHash<QString, SymId> Sym::lnhash;
+ QVector<const char*> Sym::symNames = {
+       "noSym",
++
++      // DO NOT edit the SMuFL standard symbol names (see below) manually!
++      // They are generated from fonttools/smufl2sym.{bat,sh} and then
++      // copied into this file!
++
++      // SMuFL standard symbol names {{{
+       "4stringTabClef",
+       "6stringTabClef",
+       "accSagittal11LargeDiesisDown",
+@@ -2490,6 +2496,7 @@ QVector<const char*> Sym::symNames = {
+       "windTrillKey",
+       "windVeryTightEmbouchure",
+       "windWeakAirPressure",
++      // SMuFL standard symbol names }}}
+ //    EXTENSIONS
+ //    SMuFL stylistic alternates which we need to access directly
+@@ -2509,7 +2516,7 @@ QVector<const char*> Sym::symNames = {
+       "unicodeNote128thUp",
+       "unicodeAugmentationDot",
+-//    MuseScore local symbols, precomposed symbols to mimic some emmentaler glyphs
++//    MuseScore-local symbols, precomposed symbols to mimic some Emmentaler glyphs
+       "ornamentPrallMordent",
+       "ornamentUpPrall",
+@@ -2532,12 +2539,18 @@ QVector<const char*> Sym::symNames = {
+ QVector<QString> Sym::symUserNames = {
+       "noSym",
++
++      // DO NOT edit the SMuFL standard symbol user names (see below) manually!
++      // They are generated from fonttools/smufl2sym.{bat,sh} and then
++      // copied into this file!
++
++      // SMuFL standard symbol user names {{{
+       "4-string tab clef",
+       "6-string tab clef",
+-      "11 large diesis down, 3\u00b0 down [46 EDO]",
+-      "11 large diesis up, (11L), (sharp less 11M), 3\u00b0 up [46 EDO]",
+-      "11 medium diesis down, 1\u00b0[17 31] 2\u00b046 down, 1/4-tone down",
+-      "11 medium diesis up, (11M), 1\u00b0[17 31] 2\u00b046 up, 1/4-tone up",
++      "11 large diesis down, 3° down [46 EDO]",
++      "11 large diesis up, (11L), (sharp less 11M), 3° up [46 EDO]",
++      "11 medium diesis down, 1°[17 31] 2°46 down, 1/4-tone down",
++      "11 medium diesis up, (11M), 1°[17 31] 2°46 up, 1/4-tone up",
+       "11:19 large diesis down",
+       "11:19 large diesis up, (11:19L, apotome less 11:19M)",
+       "11:19 medium diesis down",
+@@ -2554,26 +2567,26 @@ QVector<QString> Sym::symUserNames = {
+       "19 comma up, (19C)",
+       "19 schisma down",
+       "19 schisma up, (19s)",
+-      "23 comma down, 2\u00b0 down [96 EDO], 1/8-tone down",
+-      "23 comma up, (23C), 2\u00b0 up [96 EDO], 1/8-tone up",
++      "23 comma down, 2° down [96 EDO], 1/8-tone down",
++      "23 comma up, (23C), 2° up [96 EDO], 1/8-tone up",
+       "23 small diesis down",
+       "23 small diesis up, (23S)",
+-      "25 small diesis down, 2\u00b0 down [53 EDO]",
+-      "25 small diesis up, (25S, ~5:13S, ~37S, 5C\u00a0plus\u00a05C), 2\u00b0 up [53 EDO]",
+-      "35 large diesis down, 2\u00b0 down [50 EDO], 5/18-tone down",
+-      "35 large diesis up, (35L, ~13L, ~125L,  sharp less 35M), 2\u00b050 up",
+-      "35 medium diesis down, 1\u00b0[50] 2\u00b0[27] down, 2/9-tone down",
+-      "35 medium diesis up, (35M, ~13M, ~125M, 5C\u00a0plus\u00a07C), 2/9-tone up",
++      "25 small diesis down, 2° down [53 EDO]",
++      "25 small diesis up, (25S, ~5:13S, ~37S, 5C plus 5C), 2° up [53 EDO]",
++      "35 large diesis down, 2° down [50 EDO], 5/18-tone down",
++      "35 large diesis up, (35L, ~13L, ~125L,  sharp less 35M), 2°50 up",
++      "35 medium diesis down, 1°[50] 2°[27] down, 2/9-tone down",
++      "35 medium diesis up, (35M, ~13M, ~125M, 5C plus 7C), 2/9-tone up",
+       "49 large diesis down",
+       "49 large diesis up, (49L, ~31L, apotome less 49M)",
+       "49 medium diesis down",
+       "49 medium diesis up, (49M, ~31M, 7C plus 7C)",
+       "49 small diesis down",
+       "49 small diesis up, (49S, ~31S)",
+-      "55 comma down, 3\u00b0 down [96 EDO], 3/16-tone down",
+-      "55 comma up, (55C, 11M less 5C), 3\u00b0up [96 EDO], 3/16-tone up",
+-      "5 comma down, 1\u00b0 down [22 27 29 34 41 46 53 96 EDOs], 1/12-tone down",
+-      "5 comma up, (5C), 1\u00b0 up [22 27 29 34 41 46 53 96 EDOs], 1/12-tone up",
++      "55 comma down, 3° down [96 EDO], 3/16-tone down",
++      "55 comma up, (55C, 11M less 5C), 3°up [96 EDO], 3/16-tone up",
++      "5 comma down, 1° down [22 27 29 34 41 46 53 96 EDOs], 1/12-tone down",
++      "5 comma up, (5C), 1° up [22 27 29 34 41 46 53 96 EDOs], 1/12-tone up",
+       "5:11 small diesis down",
+       "5:11 small diesis up, (5:11S, ~7:13S, ~11:17S, 5:7k plus 7:11C)",
+       "5:13 large diesis down",
+@@ -2582,16 +2595,16 @@ QVector<QString> Sym::symUserNames = {
+       "5:13 medium diesis up, (5:13M, ~37M, 5C plus 13C)",
+       "5:19 comma down, 1/20-tone down",
+       "5:19 comma up, (5:19C, 5C plus 19s), 1/20-tone up",
+-      "5:23 small diesis down, 2\u00b0 down [60 EDO], 1/5-tone down",
+-      "5:23 small diesis up, (5:23S, 5C plus 23C), 2\u00b0 up [60 EDO], 1/5-tone up",
++      "5:23 small diesis down, 2° down [60 EDO], 1/5-tone down",
++      "5:23 small diesis up, (5:23S, 5C plus 23C), 2° up [60 EDO], 1/5-tone up",
+       "5:49 medium diesis down",
+       "5:49 medium diesis up, (5:49M, half apotome)",
+       "5:7 kleisma down",
+-      "5:7 kleisma up, (5:7k, ~11:13k, 7C\u00a0less\u00a05C)",
+-      "7 comma down, 1\u00b0 down [43 EDO], 2\u00b0 down [72 EDO], 1/6-tone down",
+-      "7 comma up, (7C), 1\u00b0 up [43 EDO], 2\u00b0 up [72 EDO], 1/6-tone up",
+-      "7:11 comma down, 1\u00b0 down [60 EDO], 1/10-tone down",
+-      "7:11 comma up, (7:11C, ~13:17S, ~29S, 11L less 7C), 1\u00b0 up [60 EDO]",
++      "5:7 kleisma up, (5:7k, ~11:13k, 7C less 5C)",
++      "7 comma down, 1° down [43 EDO], 2° down [72 EDO], 1/6-tone down",
++      "7 comma up, (7C), 1° up [43 EDO], 2° up [72 EDO], 1/6-tone up",
++      "7:11 comma down, 1° down [60 EDO], 1/10-tone down",
++      "7:11 comma up, (7:11C, ~13:17S, ~29S, 11L less 7C), 1° up [60 EDO]",
+       "7:11 kleisma down",
+       "7:11 kleisma up, (7:11k, ~29k)",
+       "7:19 comma down",
+@@ -2604,18 +2617,18 @@ QVector<QString> Sym::symUserNames = {
+       "Double flat 17k-up",
+       "Double flat 19C-up",
+       "Double flat 19s-up",
+-      "Double flat 23C-up, 14\u00b0 down [96 EDO], 7/8-tone down",
++      "Double flat 23C-up, 14° down [96 EDO], 7/8-tone down",
+       "Double flat 23S-up",
+-      "Double flat 25S-up, 8\u00b0down [53 EDO]",
++      "Double flat 25S-up, 8°down [53 EDO]",
+       "Double flat 49S-up",
+-      "Double flat 55C-up, 13\u00b0 down [96 EDO], 13/16-tone down",
+-      "Double flat 5C-up, 5\u00b0[22 29] 7\u00b0[34 41] 9\u00b053 down, 11/12 tone down",
++      "Double flat 55C-up, 13° down [96 EDO], 13/16-tone down",
++      "Double flat 5C-up, 5°[22 29] 7°[34 41] 9°53 down, 11/12 tone down",
+       "Double flat 5:11S-up",
+       "Double flat 5:19C-up, 19/20-tone down",
+-      "Double flat 5:23S-up, 8\u00b0 down  [60 EDO], 4/5-tone down",
++      "Double flat 5:23S-up, 8° down  [60 EDO], 4/5-tone down",
+       "Double flat 5:7k-up",
+-      "Double flat 7C-up, 5\u00b0 down [43 EDO], 10\u00b0 down [72 EDO], 5/6-tone down",
+-      "Double flat 7:11C-up, 9\u00b0 down [60 EDO], 9/10-tone down",
++      "Double flat 7C-up, 5° down [43 EDO], 10° down [72 EDO], 5/6-tone down",
++      "Double flat 7:11C-up, 9° down [60 EDO], 9/10-tone down",
+       "Double flat 7:11k-up",
+       "Double flat 7:19C-up",
+       "Double sharp, (2 apotomes up)[almost all EDOs], whole-tone up",
+@@ -2625,23 +2638,23 @@ QVector<QString> Sym::symUserNames = {
+       "Double sharp 17k-down",
+       "Double sharp 19C-down",
+       "Double sharp 19s-down",
+-      "Double sharp 23C-down, 14\u00b0up [96 EDO], 7/8-tone up",
++      "Double sharp 23C-down, 14°up [96 EDO], 7/8-tone up",
+       "Double sharp 23S-down",
+-      "Double sharp 25S-down, 8\u00b0up [53 EDO]",
++      "Double sharp 25S-down, 8°up [53 EDO]",
+       "Double sharp 49S-down",
+-      "Double sharp 55C-down, 13\u00b0 up [96 EDO], 13/16-tone up",
+-      "Double sharp 5C-down, 5\u00b0[22 29] 7\u00b0[34 41] 9\u00b053 up, 11/12 tone up",
++      "Double sharp 55C-down, 13° up [96 EDO], 13/16-tone up",
++      "Double sharp 5C-down, 5°[22 29] 7°[34 41] 9°53 up, 11/12 tone up",
+       "Double sharp 5:11S-down",
+       "Double sharp 5:19C-down, 19/20-tone up",
+-      "Double sharp 5:23S-down, 8\u00b0 up [60 EDO], 4/5-tone up",
++      "Double sharp 5:23S-down, 8° up [60 EDO], 4/5-tone up",
+       "Double sharp 5:7k-down",
+-      "Double sharp 7C-down, 5\u00b0[43] 10\u00b0[72] up, 5/6-tone up",
+-      "Double sharp 7:11C-down, 9\u00b0 up [60 EDO], 9/10-tone up",
++      "Double sharp 7C-down, 5°[43] 10°[72] up, 5/6-tone up",
++      "Double sharp 7:11C-down, 9° up [60 EDO], 9/10-tone up",
+       "Double sharp 7:11k-down",
+       "Double sharp 7:19C-down",
+       "Flat, (apotome down)[almost all EDOs], 1/2-tone down",
+-      "Flat 11L-down, 8\u00b0 up [46 EDO]",
+-      "Flat 11M-down, 3\u00b0 down [17 31 EDOs], 7\u00b0 down [46 EDO], 3/4-tone down",
++      "Flat 11L-down, 8° up [46 EDO]",
++      "Flat 11M-down, 3° down [17 31 EDOs], 7° down [46 EDO], 3/4-tone down",
+       "Flat 11:19L-down",
+       "Flat 11:19M-down",
+       "Flat 11:49C-down",
+@@ -2656,37 +2669,37 @@ QVector<QString> Sym::symUserNames = {
+       "Flat 19C-up",
+       "Flat 19s-down",
+       "Flat 19s-up",
+-      "Flat 23C-down, 10\u00b0 down [96 EDO], 5/8-tone down",
+-      "Flat 23C-up, 6\u00b0 down [96 EDO], 3/8-tone down",
++      "Flat 23C-down, 10° down [96 EDO], 5/8-tone down",
++      "Flat 23C-up, 6° down [96 EDO], 3/8-tone down",
+       "Flat 23S-down",
+       "Flat 23S-up",
+-      "Flat 25S-down, 7\u00b0 down [53 EDO]",
+-      "Flat 25S-up, 3\u00b0 down [53 EDO]",
+-      "Flat 35L-down, 5\u00b0 down [50 EDO]",
+-      "Flat 35M-down, 4\u00b0 down [50 EDO], 6\u00b0 down [27 EDO], 13/18-tone down",
++      "Flat 25S-down, 7° down [53 EDO]",
++      "Flat 25S-up, 3° down [53 EDO]",
++      "Flat 35L-down, 5° down [50 EDO]",
++      "Flat 35M-down, 4° down [50 EDO], 6° down [27 EDO], 13/18-tone down",
+       "Flat 49L-down",
+       "Flat 49M-down",
+       "Flat 49S-down",
+       "Flat 49S-up",
+-      "Flat 55C-down, 11\u00b0 down [96 EDO], 11/16-tone down",
+-      "Flat 55C-up, 5\u00b0 down [96 EDO], 5/16-tone down",
+-      "Flat 5C-down, 4\u00b0[22 29] 5\u00b0[27 34 41] 6\u00b0[39 46 53] down, 7/12-tone down",
+-      "Flat 5C-up, 2\u00b0[22,29] 3\u00b0[34 41] 4\u00b0[46 53 60] down, 5/12-tone down",
++      "Flat 55C-down, 11° down [96 EDO], 11/16-tone down",
++      "Flat 55C-up, 5° down [96 EDO], 5/16-tone down",
++      "Flat 5C-down, 4°[22 29] 5°[27 34 41] 6°[39 46 53] down, 7/12-tone down",
++      "Flat 5C-up, 2°[22,29] 3°[34 41] 4°[46 53 60] down, 5/12-tone down",
+       "Flat 5:11S-down",
+       "Flat 5:11S-up",
+       "Flat 5:13L-down",
+       "Flat 5:13M-down",
+       "Flat 5:19C-down, 11/20-tone down",
+       "Flat 5:19C-up, 9/20-tone down",
+-      "Flat 5:23S-down, 7\u00b0 down [60 EDO], 7/10-tone down",
+-      "Flat 5:23S-up, 3\u00b0 down [60 EDO], 3/10-tone down",
++      "Flat 5:23S-down, 7° down [60 EDO], 7/10-tone down",
++      "Flat 5:23S-up, 3° down [60 EDO], 3/10-tone down",
+       "Flat 5:49M-down",
+       "Flat 5:7k-down",
+       "Flat 5:7k-up",
+-      "Flat 7C-down, 4\u00b0 down [43 EDO], 8\u00b0 down [72 EDO], 2/3-tone down",
+-      "Flat 7C-up, 2\u00b0 down [43 EDO], 4\u00b0 down [72 EDO], 1/3-tone down",
+-      "Flat 7:11C-down, 6\u00b0 down [60 EDO], 3/5- tone down",
+-      "Flat 7:11C-up, 4\u00b0 down [60 EDO], 2/5-tone down",
++      "Flat 7C-down, 4° down [43 EDO], 8° down [72 EDO], 2/3-tone down",
++      "Flat 7C-up, 2° down [43 EDO], 4° down [72 EDO], 1/3-tone down",
++      "Flat 7:11C-down, 6° down [60 EDO], 3/5- tone down",
++      "Flat 7:11C-up, 4° down [60 EDO], 2/5-tone down",
+       "Flat 7:11k-down",
+       "Flat 7:11k-up",
+       "Flat 7:19C-down",
+@@ -2695,8 +2708,8 @@ QVector<QString> Sym::symUserNames = {
+       "Shaft down, (natural for use with only diacritics down)",
+       "Shaft up, (natural for use with only diacritics up)",
+       "Sharp, (apotome up)[almost all EDOs], 1/2-tone up",
+-      "Sharp 11L-up, 8\u00b0 up [46 EDO]",
+-      "Sharp 11M-up, 3\u00b0 up [17 31 EDOs], 7\u00b0 up [46 EDO], 3/4-tone up",
++      "Sharp 11L-up, 8° up [46 EDO]",
++      "Sharp 11M-up, 3° up [17 31 EDOs], 7° up [46 EDO], 3/4-tone up",
+       "Sharp 11:19L-up",
+       "Sharp 11:19M-up",
+       "Sharp 11:49C-down",
+@@ -2711,37 +2724,37 @@ QVector<QString> Sym::symUserNames = {
+       "Sharp 19C-up",
+       "Sharp 19s-down",
+       "Sharp 19s-up",
+-      "Sharp 23C-down, 6\u00b0 up [96 EDO], 3/8-tone up",
+-      "Sharp 23C-up, 10\u00b0 up [96 EDO], 5/8-tone up",
++      "Sharp 23C-down, 6° up [96 EDO], 3/8-tone up",
++      "Sharp 23C-up, 10° up [96 EDO], 5/8-tone up",
+       "Sharp 23S-down",
+       "Sharp 23S-up",
+-      "Sharp 25S-down, 3\u00b0 up [53 EDO]",
+-      "Sharp 25S-up, 7\u00b0 up [53 EDO]",
+-      "Sharp 35L-up, 5\u00b0 up [50 EDO]",
+-      "Sharp 35M-up, 4\u00b0 up [50 EDO], 6\u00b0 up [27 EDO], 13/18-tone up",
++      "Sharp 25S-down, 3° up [53 EDO]",
++      "Sharp 25S-up, 7° up [53 EDO]",
++      "Sharp 35L-up, 5° up [50 EDO]",
++      "Sharp 35M-up, 4° up [50 EDO], 6° up [27 EDO], 13/18-tone up",
+       "Sharp 49L-up",
+       "Sharp 49M-up",
+       "Sharp 49S-down",
+       "Sharp 49S-up",
+-      "Sharp 55C-down, 5\u00b0 up [96 EDO], 5/16-tone up",
+-      "Sharp 55C-up, 11\u00b0 up [96 EDO], 11/16-tone up",
+-      "Sharp 5C-down, 2\u00b0[22 29] 3\u00b0[34 41] 4\u00b0[46 53 60] up, 5/12-tone up",
+-      "Sharp 5C-up, 4\u00b0[22 29] 5\u00b0[27 34 41] 6\u00b0[39 46 53] up, 7/12-tone up",
++      "Sharp 55C-down, 5° up [96 EDO], 5/16-tone up",
++      "Sharp 55C-up, 11° up [96 EDO], 11/16-tone up",
++      "Sharp 5C-down, 2°[22 29] 3°[34 41] 4°[46 53 60] up, 5/12-tone up",
++      "Sharp 5C-up, 4°[22 29] 5°[27 34 41] 6°[39 46 53] up, 7/12-tone up",
+       "Sharp 5:11S-down",
+       "Sharp 5:11S-up",
+       "Sharp 5:13L-up",
+       "Sharp 5:13M-up",
+       "Sharp 5:19C-down, 9/20-tone up",
+       "Sharp 5:19C-up, 11/20-tone up",
+-      "Sharp 5:23S-down, 3\u00b0 up [60 EDO], 3/10-tone up",
+-      "Sharp 5:23S-up, 7\u00b0 up [60 EDO], 7/10-tone up",
++      "Sharp 5:23S-down, 3° up [60 EDO], 3/10-tone up",
++      "Sharp 5:23S-up, 7° up [60 EDO], 7/10-tone up",
+       "Sharp 5:49M-up, (one and a half apotomes)",
+       "Sharp 5:7k-down",
+       "Sharp 5:7k-up",
+-      "Sharp 7C-down, 2\u00b0 up [43 EDO], 4\u00b0 up [72 EDO], 1/3-tone up",
+-      "Sharp 7C-up, 4\u00b0 up [43 EDO], 8\u00b0 up [72 EDO], 2/3-tone up",
+-      "Sharp 7:11C-down, 4\u00b0 up [60 EDO], 2/5-tone up",
+-      "Sharp 7:11C-up, 6\u00b0 up [60 EDO], 3/5- tone up",
++      "Sharp 7C-down, 2° up [43 EDO], 4° up [72 EDO], 1/3-tone up",
++      "Sharp 7C-up, 4° up [43 EDO], 8° up [72 EDO], 2/3-tone up",
++      "Sharp 7:11C-down, 4° up [60 EDO], 2/5-tone up",
++      "Sharp 7:11C-up, 6° up [60 EDO], 3/5- tone up",
+       "Sharp 7:11k-down",
+       "Sharp 7:11k-up",
+       "Sharp 7:19C-down",
+@@ -2771,7 +2784,7 @@ QVector<QString> Sym::symUserNames = {
+       "Push",
+       "Right hand, 3 ranks, 8' stop + upper tremolo 8' stop + 16' stop (accordion)",
+       "Right hand, 3 ranks, lower tremolo 8' stop + 8' stop + upper tremolo 8' stop (authentic musette)",
+-      "Right hand, 3 ranks, 8' stop + 16' stop (bandone\u00f3n)",
++      "Right hand, 3 ranks, 8' stop + 16' stop (bandoneón)",
+       "Right hand, 3 ranks, 16' stop (bassoon)",
+       "Right hand, 3 ranks, 8' stop (clarinet)",
+       "Right hand, 3 ranks, lower tremolo 8' stop + 8' stop + upper tremolo 8' stop + 16' stop",
+@@ -2818,8 +2831,8 @@ QVector<QString> Sym::symUserNames = {
+       "Arrow up (raise by one quarter-tone)",
+       "Bakiye (flat)",
+       "Bakiye (sharp)",
+-      "B\u00fcy\u00fck m\u00fccenneb (flat)",
+-      "B\u00fcy\u00fck m\u00fccenneb (sharp)",
++      "Büyük mücenneb (flat)",
++      "Büyük mücenneb (sharp)",
+       "Combining close curly brace",
+       "Combining lower by one 17-limit schisma",
+       "Combining lower by one 19-limit schisma",
+@@ -2879,8 +2892,8 @@ QVector<QString> Sym::symUserNames = {
+       "Koma (flat)",
+       "Koma (sharp)",
+       "Koron (quarter tone flat)",
+-      "K\u00fc\u00e7\u00fck m\u00fccenneb (flat)",
+-      "K\u00fc\u00e7\u00fck m\u00fccenneb (sharp)",
++      "Küçük mücenneb (flat)",
++      "Küçük mücenneb (sharp)",
+       "Large double sharp",
+       "Lower by one septimal comma",
+       "Lower by one tridecimal quartertone",
+@@ -2945,7 +2958,7 @@ QVector<QString> Sym::symUserNames = {
+       "1/6 tone high",
+       "Sori (quarter tone sharp)",
+       "Byzantine-style Bakiye flat (Tavener)",
+-      "Byzantine-style Bu\u0308yu\u0308k mu\u0308cenneb sharp (Tavener)",
++      "Byzantine-style Büyük mücenneb sharp (Tavener)",
+       "Three-quarter-tones flat",
+       "Three-quarter-tones flat",
+       "Three-quarter-tones flat (Couper)",
+@@ -2962,28 +2975,28 @@ QVector<QString> Sym::symUserNames = {
+       "Two-third-tones sharp (Ferneyhough)",
+       "Wilson minus (5 comma down)",
+       "Wilson plus (5 comma up)",
+-      "5/6 tone flat",
+-      "5/6 tone sharp",
+-      "11/12 tone flat",
+-      "11/12 tone sharp",
+-      "1/12 tone flat",
+-      "1/12 tone sharp",
+-      "1/6 tone flat",
+-      "1/6 tone sharp",
+-      "1/4 tone flat",
+-      "1/4 tone sharp",
+-      "1/3 tone flat",
+-      "1/3 tone sharp",
+-      "5/12 tone flat",
+-      "5/12 tone sharp",
+-      "1/2 tone flat",
+-      "1/2 tone sharp",
+-      "7/12 tone flat",
+-      "7/12 tone sharp",
+-      "2/3 tone flat",
+-      "2/3 tone sharp",
+-      "3/4 tone flat",
+-      "3/4 tone sharp",
++      "5/6 tone flat (Wyschnegradsky)",
++      "5/6 tone sharp (Wyschnegradsky)",
++      "11/12 tone flat (Wyschnegradsky)",
++      "11/12 tone sharp (Wyschnegradsky)",
++      "1/12 tone flat (Wyschnegradsky)",
++      "1/12 tone sharp (Wyschnegradsky)",
++      "1/6 tone flat (Wyschnegradsky)",
++      "1/6 tone sharp (Wyschnegradsky)",
++      "1/4 tone flat (Wyschnegradsky)",
++      "1/4 tone sharp (Wyschnegradsky)",
++      "1/3 tone flat (Wyschnegradsky)",
++      "1/3 tone sharp (Wyschnegradsky)",
++      "5/12 tone flat (Wyschnegradsky)",
++      "5/12 tone sharp (Wyschnegradsky)",
++      "1/2 tone flat (Wyschnegradsky)",
++      "1/2 tone sharp (Wyschnegradsky)",
++      "7/12 tone flat (Wyschnegradsky)",
++      "7/12 tone sharp (Wyschnegradsky)",
++      "2/3 tone flat (Wyschnegradsky)",
++      "2/3 tone sharp (Wyschnegradsky)",
++      "3/4 tone flat (Wyschnegradsky)",
++      "3/4 tone sharp (Wyschnegradsky)",
+       "One-third-tone sharp (Xenakis)",
+       "Two-third-tones sharp (Xenakis)",
+       "Choralmelodie (Berg)",
+@@ -3074,8 +3087,8 @@ QVector<QString> Sym::symUserNames = {
+       "Tenuto-accent above",
+       "Tenuto-accent below",
+       "Tenuto below",
+-      "Lour\u00e9 (tenuto-staccato) above",
+-      "Lour\u00e9 (tenuto-staccato) below",
++      "Louré (tenuto-staccato) above",
++      "Louré (tenuto-staccato) below",
+       "Unstress above",
+       "Unstress below",
+       "Augmentation dot",
+@@ -3749,7 +3762,7 @@ QVector<QString> Sym::symUserNames = {
+       "Very slow indication (de Narvaez)",
+       "Triple time indication",
+       "Single-finger tremolo or mordent",
+-      "Vibrato (verre cass\u00e9)",
++      "Vibrato (verre cassé)",
+       "Lute tablature staff, 6 courses",
+       "Lute tablature staff, 6 courses (narrow)",
+       "Lute tablature staff, 6 courses (wide)",
+@@ -4291,7 +4304,7 @@ QVector<QString> Sym::symUserNames = {
+       "Oblique straight line tilted NW-SE",
+       "Oblique straight line tilted SW-NE",
+       "Oriscus",
+-      "Pinc\u00e9 (Couperin)",
++      "Pincé (Couperin)",
+       "Port de voix",
+       "Supported appoggiatura trill",
+       "Supported appoggiatura trill with two-note suffix",
+@@ -4306,7 +4319,7 @@ QVector<QString> Sym::symUserNames = {
+       "Inverted mordent with upper prefix",
+       "Mordent with release",
+       "Mordent with upper prefix",
+-      "Pre-beat port de voix follwed by multiple mordent (Dandrieu)",
++      "Pre-beat port de voix followed by multiple mordent (Dandrieu)",
+       "Slide",
+       "Slide-trill with two-note suffix (J.S. Bach)",
+       "Slide-trill (D'Anglebert)",
+@@ -4332,7 +4345,7 @@ QVector<QString> Sym::symUserNames = {
+       "Ornament top right concave stroke",
+       "Ornament top right convex stroke",
+       "Tremblement",
+-      "Tremblement appuy\u00e9 (Couperin)",
++      "Tremblement appuyé (Couperin)",
+       "Trill",
+       "Turn",
+       "Inverted turn",
+@@ -4671,10 +4684,10 @@ QVector<QString> Sym::symUserNames = {
+       "Reversed bracket bottom",
+       "Reversed bracket top",
+       "Right repeat sign within bar",
+-      "Sch\u00e4ffer clef",
+-      "Sch\u00e4ffer F clef to G clef change",
+-      "Sch\u00e4ffer G clef to F clef change",
+-      "Sch\u00e4ffer previous clef",
++      "Schäffer clef",
++      "Schäffer F clef to G clef change",
++      "Schäffer G clef to F clef change",
++      "Schäffer previous clef",
+       "Segno",
+       "Segno (serpent)",
+       "Segno (serpent with vertical lines)",
+@@ -4751,11 +4764,11 @@ QVector<QString> Sym::symUserNames = {
+       "Change bow direction, indeterminate",
+       "Down bow",
+       "Turned down bow",
+-      "Fouett\u00e9",
++      "Fouetté",
+       "Half-harmonic",
+       "Harmonic",
+-      "Jet\u00e9 (gettato) above",
+-      "Jet\u00e9 (gettato) below",
++      "Jeté (gettato) above",
++      "Jeté (gettato) below",
+       "Mute off",
+       "Mute on",
+       "Overpressure, down bow",
+@@ -4812,11 +4825,11 @@ QVector<QString> Sym::symUserNames = {
+       "Cut time (Bach)",
+       "Cut time",
+       "Time signature equals",
+-      "Time signature fraction \u00bd",
+-      "Time signature fraction \u2153",
+-      "Time signature fraction \u00bc",
+-      "Time signature fraction \u00be",
+-      "Time signature fraction \u2154",
++      "Time signature fraction ½",
++      "Time signature fraction ⅓",
++      "Time signature fraction ¼",
++      "Time signature fraction ¾",
++      "Time signature fraction ⅔",
+       "Time signature fraction slash",
+       "Time signature minus",
+       "Time signature multiply",
+@@ -4975,6 +4988,7 @@ QVector<QString> Sym::symUserNames = {
+       "Trill key",
+       "Very tight embouchure",
+       "Very relaxed embouchure / weak air-pressure",
++      // SMuFL standard symbol user names }}}
+ //    EXTENSIONS
+ //    SMuFL stylistic alternates which we need to access directly
+@@ -4994,7 +5008,7 @@ QVector<QString> Sym::symUserNames = {
+       "unicodeNote128thUp",
+       "unicodeAugmentationDot",
+-//    MuseScore local symbols, precomposed symbols to mimic some emmentaler glyphs
++//    MuseScore-local symbols, precomposed symbols to mimic some Emmentaler glyphs
+       "ornamentPrallMordent",
+       "ornamentUpPrall",
+--- a/libmscore/sym.h
++++ b/libmscore/sym.h
+@@ -31,10 +31,13 @@ class TextStyle;
+ //---------------------------------------------------------
+ enum class SymId {
++      noSym,
+-      // SMuFL standard symbol ID's
++      // DO NOT edit the SMuFL standard symbol IDs (see below) manually!
++      // They are generated from fonttools/smufl2sym.{bat,sh} and then
++      // copied into this file!
+-      noSym,
++      // SMuFL standard symbol IDs {{{
+       fourStringTabClef,
+       sixStringTabClef,
+       accSagittal11LargeDiesisDown,
+@@ -2478,6 +2481,7 @@ enum class SymId {
+       windTrillKey,
+       windVeryTightEmbouchure,
+       windWeakAirPressure,
++      // SMuFL standard symbol IDs }}}
+ //    EXTENSIONS
+ //    SMuFL stylistic alternates which we need to access directly
+@@ -2497,7 +2501,7 @@ enum class SymId {
+       unicodeNote128thUp,
+       unicodeAugmentationDot,
+-//    MuseScore local symbols, precomposed symbols to mimic some emmentaler glyphs
++//    MuseScore-local symbols, precomposed symbols to mimic some Emmentaler glyphs
+       ornamentPrallMordent,
+       ornamentUpPrall,
diff --git a/debian/patches/experiments/statusline-concert-transposing-pitch.diff b/debian/patches/experiments/statusline-concert-transposing-pitch.diff
deleted file mode 100644 (file)
index f398b60..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Description: Indicate the sounding pitch in the status line if…
-  * the current instrument has an actual pitch
-    (not beat/rhythm slashes or drums)
-  * the Concert Pitch (global) toggle is off
- .
- This will show the same pitch twice for nōn-transposing
- instruments; that’s by design, to show we’re currently
- in transposing pitch mode but that instrument does not
- transpose (helps debugging).
- .
- Partially addresses node #283120.
-Author: mirabilos <m@mirbsd.org>
-Forwarded: https://github.com/musescore/MuseScore/pull/5036
-
---- a/libmscore/note.cpp
-+++ b/libmscore/note.cpp
-@@ -2665,6 +2665,13 @@ QString Note::accessibleInfoConst() cons
-             pitchName = chord()->noStem() ? tr("Beat Slash") : tr("Rhythm Slash");
-       else if (staff()->isDrumStaff() && drumset)
-             pitchName = qApp->translate("drumset", drumset->name(pitch()).toUtf8().constData());
-+      else if (!concertPitch()) {
-+            pitchName = tpcUserName(false);
-+            // tpcUserName equivalent for getting the sounding pitch
-+            QString soundingPitch = tpc2name(_tpc[0], NoteSpellingType::STANDARD, NoteCaseType::AUTO, false) + QString::number((_pitch / 12) - 1);
-+            // almost the same string as below
-+            return tr("%1; Pitch: %2 (sounding as %3); Duration: %4%5").arg(noteTypeUserName()).arg(pitchName).arg(soundingPitch).arg(duration).arg((chord()->isGrace() ? "" : QString("; %1").arg(voice)));
-+            }
-       else
-             pitchName = tpcUserName(false);
-       return tr("%1; Pitch: %2; Duration: %3%4").arg(noteTypeUserName()).arg(pitchName).arg(duration).arg((chord()->isGrace() ? "" : QString("; %1").arg(voice)));
index e9c3952..18c6c2d 100644 (file)
@@ -1,5 +1,5 @@
 # DP: some changes from the branch upstream/musescore_232_go_backend
-# DP: up to commit 24f97154cc114599a61a1307b8848bb9d336c0d0
+# DP: up to commit c1cbe9b0c4d0bef25d0323804bd54305cc30c081
 # DP: but without the experimental exports for musescore.com
 
 --- a/libmscore/score.cpp
index 3842f29..1d6a255 100644 (file)
@@ -26,12 +26,14 @@ upstream/prefs-radio.diff
 upstream/pitch-Cb-B#.diff
 upstream/crash-fontname.diff
 upstream/wmclass.diff
+upstream/fix-accidental-paren-pos.diff
+upstream/statusline-pitch-onofftime.diff
 debian-specific/fixup-AppData.diff
 experiments/upstream-backend-fixes.diff
-experiments/lyrics-hyphen-max-8sp.diff
+experiments/lyrics-hyphen-5sp.diff
 experiments/musescore-2.1.0-qt-5.12.patch
-experiments/statusline-concert-transposing-pitch.diff
 experiments/element-barbeat.diff
 experiments/smufl-typo.diff
+experiments/smufl2sym.diff
 experiments/revert-restriking-patch.diff
 experiments/log-collisions.diff
diff --git a/debian/patches/upstream/fix-accidental-paren-pos.diff b/debian/patches/upstream/fix-accidental-paren-pos.diff
new file mode 100644 (file)
index 0000000..9a58b45
--- /dev/null
@@ -0,0 +1,37 @@
+Description: honour symbol advance width from font when drawing accidentals
+ more specifically, accidentals in parenthesēs (or other enclosing
+ symbols) now have the advance width of the enclosing glyph and the
+ glyph from the accidental itself honoured fixing asymmetric render
+ of a parenthesised ♭
+Author: mirabilos <m@mirbsd.org>
+Forwarded: https://github.com/musescore/MuseScore/pull/6759
+Applied-Upstream: v3.6, commit:1d81510cdaa67d8787067c0774674bcbaedbb11c
+
+--- a/libmscore/accidental.cpp
++++ b/libmscore/accidental.cpp
+@@ -331,22 +331,23 @@ void Accidental::layout()
+       if (_small)
+             m *= score()->styleD(StyleIdx::smallNoteMag);
+       setMag(m);
++      qreal x = 0;
+       m = magS();
+       if (_hasBracket) {
+             SymElement e(SymId::accidentalParensLeft, 0.0);
+             el.append(e);
+             r |= symBbox(SymId::accidentalParensLeft);
++            x += symAdvance(SymId::accidentalParensLeft);
+             }
+       SymId s = symbol();
+-      qreal x = r.x()+r.width();
+       SymElement e(s, x);
+       el.append(e);
+       r |= symBbox(s).translated(x, 0.0);
+       if (_hasBracket) {
+-            x = r.x()+r.width();
++            x += symAdvance(s);
+             SymElement e(SymId::accidentalParensRight, x);
+             el.append(e);
+             r |= symBbox(SymId::accidentalParensRight).translated(x, 0.0);
diff --git a/debian/patches/upstream/statusline-pitch-onofftime.diff b/debian/patches/upstream/statusline-pitch-onofftime.diff
new file mode 100644 (file)
index 0000000..6ecc23d
--- /dev/null
@@ -0,0 +1,55 @@
+Description: indicate pitch and on/off time in the status line
+ - indicate sounding pitch if the global concert pitch toggle
+   is off and the current instrument has an actual pitch,
+   i.e. not beat/rhythm slashes or drums; this will show the
+   identical pitch for nōn-transposing instruments by design
+   (to show we’re currently in transposing pitch mode, but the
+   current instrument is not transposing) which helps debugging
+ - indicate tuning (if any) after the sounding pitch (either mode)
+ - show on/off times if at least one of them is nōn-standard
+ .
+ The first change partially addresses node #283120.
+ The on/off time was requested in node #290900#comment-927933
+ (velocity is too hard, sorry about that).
+Author: mirabilos <m@mirbsd.org>
+Forwarded: https://github.com/musescore/MuseScore/pull/6750
+Applied-Upstream: v3.6, commit:d2de6bf4f409f552f4af4b856a545ff9811c398a
+
+--- a/libmscore/note.cpp
++++ b/libmscore/note.cpp
+@@ -2660,14 +2660,33 @@ QString Note::accessibleInfoConst() cons
+       QString duration = chord()->durationUserName();
+       QString voice = tr("Voice: %1").arg(QString::number(track() % VOICES + 1));
+       QString pitchName;
++      QString pitchOffset;
++      QString onofftime;
++      if (!_playEvents.empty()) {
++            int on = _playEvents[0].ontime();
++            int off = _playEvents[0].offtime();
++            if (on != 0 || off != 1000)
++                  onofftime = tr(" (on %1‰ off %2‰)").arg(on).arg(off);
++            }
+       const Drumset* drumset = part()->instrument()->drumset();
+       if (fixed() && headGroup() == NoteHead::Group::HEAD_SLASH)
+             pitchName = chord()->noStem() ? tr("Beat Slash") : tr("Rhythm Slash");
+       else if (staff()->isDrumStaff() && drumset)
+             pitchName = qApp->translate("drumset", drumset->name(pitch()).toUtf8().constData());
+-      else
++      else {
+             pitchName = tpcUserName(false);
+-      return tr("%1; Pitch: %2; Duration: %3%4").arg(noteTypeUserName()).arg(pitchName).arg(duration).arg((chord()->isGrace() ? "" : QString("; %1").arg(voice)));
++            if (tuning() != 0)
++                  pitchOffset.sprintf("%+.3f", tuning());
++            if (tuning() != 0)
++                  pitchOffset.sprintf("%+.3f", tuning());
++            if (!concertPitch()) {
++                  // tpcUserName equivalent for getting the sounding pitch
++                  QString soundingPitch = tpc2name(_tpc[0], NoteSpellingType::STANDARD, NoteCaseType::AUTO, false) + QString::number(((_pitch + ottaveCapoFret() - int(tpc2alter(tpc()))) / 12) - 1);
++                  // almost the same string as below
++                  return tr("%1; Pitch: %2 (sounding as %3%4); Duration: %5%6%7").arg(noteTypeUserName()).arg(pitchName).arg(soundingPitch).arg(pitchOffset).arg(duration).arg(onofftime).arg((chord()->isGrace() ? "" : QString("; %1").arg(voice)));
++                  }
++            }
++      return tr("%1; Pitch: %2%3; Duration: %4%5%6").arg(noteTypeUserName()).arg(pitchName).arg(pitchOffset).arg(duration).arg(onofftime).arg((chord()->isGrace() ? "" : QString("; %1").arg(voice)));
+       }
+ QString Note::accessibleInfo()