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 Büyük mü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,
