MuseScore/libmscore/sym.cpp
Maurizio M. Gavioli 91692b5852 Fix mapping of Emmentaler double whole.
The double whole shapes with single and double side lines were exchanged.
2013-11-20 00:38:49 +01:00

3678 lines
119 KiB
C++

//=============================================================================
// MuseScore
// Music Composition & Notation
//
// Copyright (C) 2002-2011 Werner Schweer
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2
// as published by the Free Software Foundation and appearing in
// the file LICENCE.GPL
//=============================================================================
#include "style.h"
#include "sym.h"
#include "utils.h"
#include "score.h"
#include "xml.h"
#include "mscore.h"
namespace Ms {
//---------------------------------------------------------
// scoreFonts
// this is the list of available score fonts
//---------------------------------------------------------
QVector<ScoreFont> ScoreFont::_scoreFonts = {
ScoreFont("Emmentaler", "MScore", ":/fonts/mscore/", "mscore.ttf"),
// ScoreFont("Goneville", "Gonville-20", ":/fonts/gonville/", "gonville-20.ttf"),
ScoreFont("Bravura", "Bravura", ":/fonts/bravura/", "Bravura.otf")
};
//---------------------------------------------------------
// table of symbol names
// symNames must be in sync with enum class SymId
//---------------------------------------------------------
QHash<QString, SymId> Sym::lnhash;
QVector<const char*> Sym::symNames = {
"noSym",
"4stringTabClef",
"4stringTabClefSerif",
"4stringTabClefTall",
"6stringTabClef",
"6stringTabClefSerif",
"6stringTabClefTall",
"accdnLH2Ranks16Round",
"accdnLH2Ranks8Plus16Round",
"accdnLH2Ranks8Round",
"accdnLH2RanksFullMasterRound",
"accdnLH2RanksMasterPlus16Round",
"accdnLH2RanksMasterRound",
"accdnLH3Ranks2Plus8Square",
"accdnLH3Ranks2Square",
"accdnLH3Ranks8Square",
"accdnLH3RanksDouble8Square",
"accdnLH3RanksTuttiSquare",
"accdnRH3RanksAccordion",
"accdnRH3RanksAuthenticMusette",
"accdnRH3RanksBandoneon",
"accdnRH3RanksBassoon",
"accdnRH3RanksClarinet",
"accdnRH3RanksHarmonium",
"accdnRH3RanksImitationMusette",
"accdnRH3RanksLowerTremolo8",
"accdnRH3RanksMaster",
"accdnRH3RanksOboe",
"accdnRH3RanksOrgan",
"accdnRH3RanksPiccolo",
"accdnRH3RanksUpperTremolo8",
"accdnRH3RanksViolin",
"accdnRH4RanksAlto",
"accdnRH4RanksBassAlto",
"accdnRH4RanksMaster",
"accdnRH4RanksSoftBass",
"accdnRH4RanksSoftTenor",
"accdnRH4RanksSoprano",
"accdnRH4RanksTenor",
"accidental1CommaFlat",
"accidental1CommaSharp",
"accidental2CommaFlat",
"accidental2CommaSharp",
"accidental3CommaFlat",
"accidental3CommaSharp",
"accidental4CommaFlat",
"accidental5CommaSharp",
"accidentalArrowDown",
"accidentalArrowUp",
"accidentalBakiyeFlat",
"accidentalBakiyeSharp",
"accidentalBuyukMucennebFlat",
"accidentalBuyukMucennebSharp",
"accidentalCombiningCloseCurlyBrace",
"accidentalCombiningLower17Schisma",
"accidentalCombiningLower19Schisma",
"accidentalCombiningLower23Limit29LimitComma",
"accidentalCombiningLower31Schisma",
"accidentalCombiningOpenCurlyBrace",
"accidentalCombiningRaise17Schisma",
"accidentalCombiningRaise19Schisma",
"accidentalCombiningRaise23Limit29LimitComma",
"accidentalCombiningRaise31Schisma",
"accidentalDoubleFlat",
"accidentalDoubleFlatArrowDown",
"accidentalDoubleFlatArrowUp",
"accidentalDoubleFlatEqualTempered",
"accidentalDoubleFlatInverted",
"accidentalDoubleFlatOneArrowDown",
"accidentalDoubleFlatOneArrowUp",
"accidentalDoubleFlatReversed",
"accidentalDoubleFlatThreeArrowsDown",
"accidentalDoubleFlatThreeArrowsUp",
"accidentalDoubleFlatTwoArrowsDown",
"accidentalDoubleFlatTwoArrowsUp",
"accidentalDoubleSharp",
"accidentalDoubleSharpArrowDown",
"accidentalDoubleSharpArrowUp",
"accidentalDoubleSharpEqualTempered",
"accidentalDoubleSharpOneArrowDown",
"accidentalDoubleSharpOneArrowUp",
"accidentalDoubleSharpThreeArrowsDown",
"accidentalDoubleSharpThreeArrowsUp",
"accidentalDoubleSharpTwoArrowsDown",
"accidentalDoubleSharpTwoArrowsUp",
"accidentalFilledReversedFlatAndFlat",
"accidentalFilledReversedFlatAndFlatArrowDown",
"accidentalFilledReversedFlatAndFlatArrowUp",
"accidentalFilledReversedFlatArrowDown",
"accidentalFilledReversedFlatArrowUp",
"accidentalFlat",
"accidentalFlatEqualTempered",
"accidentalFlatInverted",
"accidentalFlatOneArrowDown",
"accidentalFlatOneArrowUp",
"accidentalFlatThreeArrowsDown",
"accidentalFlatThreeArrowsUp",
"accidentalFlatTwoArrowsDown",
"accidentalFlatTwoArrowsUp",
"accidentalHalfSharpArrowDown",
"accidentalHalfSharpArrowUp",
"accidentalJohnston13",
"accidentalJohnston31",
"accidentalJohnstonArrowDown",
"accidentalJohnstonArrowUp",
"accidentalJohnstonEl",
"accidentalJohnstonMinus",
"accidentalJohnstonPlus",
"accidentalJohnstonSeven",
"accidentalKomaFlat",
"accidentalKomaSharp",
"accidentalKoron",
"accidentalKucukMucennebFlat",
"accidentalKucukMucennebSharp",
"accidentalLowerOneSeptimalComma",
"accidentalLowerOneTridecimalQuartertone",
"accidentalLowerOneUndecimalQuartertone",
"accidentalLowerTwoSeptimalCommas",
"accidentalManeriSims12Down",
"accidentalManeriSims12Up",
"accidentalManeriSims4Down",
"accidentalManeriSims4Up",
"accidentalManeriSims6Down",
"accidentalManeriSims6Up",
"accidentalNatural",
"accidentalNaturalEqualTempered",
"accidentalNaturalFlat",
"accidentalNaturalOneArrowDown",
"accidentalNaturalOneArrowUp",
"accidentalNaturalReversed",
"accidentalNaturalSharp",
"accidentalNaturalThreeArrowsDown",
"accidentalNaturalThreeArrowsUp",
"accidentalNaturalTwoArrowsDown",
"accidentalNaturalTwoArrowsUp",
"accidentalOneAndAHalfSharpsArrowDown",
"accidentalOneAndAHalfSharpsArrowUp",
"accidentalQuarterFlat3",
"accidentalQuarterFlat4",
"accidentalQuarterFlat5",
"accidentalQuarterFlatArrowUp",
"accidentalQuarterFlatNaturalArrowDown",
"accidentalQuarterFlatTartini",
"accidentalQuarterSharp3",
"accidentalQuarterSharp4",
"accidentalQuarterSharpArrowDown",
"accidentalQuarterSharpNaturalArrowUp",
"accidentalRaiseOneSeptimalComma",
"accidentalRaiseOneTridecimalQuartertone",
"accidentalRaiseOneUndecimalQuartertone",
"accidentalRaiseTwoSeptimalCommas",
"accidentalReversedFlatAndFlatArrowDown",
"accidentalReversedFlatAndFlatArrowUp",
"accidentalReversedFlatArrowDown",
"accidentalReversedFlatArrowUp",
"accidentalSharp",
"accidentalSharpEqualTempered",
"accidentalSharpOneArrowDown",
"accidentalSharpOneArrowUp",
"accidentalSharpReversed",
"accidentalSharpSharp",
"accidentalSharpThreeArrowsDown",
"accidentalSharpThreeArrowsUp",
"accidentalSharpTwoArrowsDown",
"accidentalSharpTwoArrowsUp",
"accidentalSori",
"accidentalThreeQuartersFlat2",
"accidentalThreeQuartersFlatArrowDown",
"accidentalThreeQuartersFlatCouper",
"accidentalThreeQuartersFlatGrisey",
"accidentalThreeQuartersFlatTartini",
"accidentalThreeQuartersSharp2",
"accidentalThreeQuartersSharpArrowUp",
"accidentalTripleFlat",
"accidentalTripleSharp",
"accidentalXenakisOneThirdSharp",
"accidentalXenakisTwoThirdsSharp",
"analyticsEndStimme",
"analyticsHauptstimme",
"analyticsInversion1",
"analyticsNebenstimme",
"analyticsStartStimme",
"analyticsTheme",
"analyticsTheme1",
"analyticsThemeInversion",
"analyticsThemeRetrograde",
"analyticsThemeRetrogradeInversion",
"arpeggiatoDown",
"arpeggiatoUp",
"arrowBlackDown",
"arrowBlackDownLeft",
"arrowBlackDownRight",
"arrowBlackLeft",
"arrowBlackRight",
"arrowBlackUp",
"arrowBlackUpLeft",
"arrowBlackUpRight",
"arrowWhiteDown",
"arrowWhiteDownLeft",
"arrowWhiteDownRight",
"arrowWhiteLeft",
"arrowWhiteRight",
"arrowWhiteUp",
"arrowWhiteUpLeft",
"arrowWhiteUpRight",
"arrowheadBlackDown",
"arrowheadBlackDownLeft",
"arrowheadBlackDownRight",
"arrowheadBlackLeft",
"arrowheadBlackRight",
"arrowheadBlackUp",
"arrowheadBlackUpLeft",
"arrowheadBlackUpRight",
"arrowheadWhiteDown",
"arrowheadWhiteDownLeft",
"arrowheadWhiteDownRight",
"arrowheadWhiteLeft",
"arrowheadWhiteRight",
"arrowheadWhiteUp",
"arrowheadWhiteUpLeft",
"arrowheadWhiteUpRight",
"articAccent",
"articAccentLarge",
"articAccentStaccatoAbove",
"articAccentStaccatoBelow",
"articLaissezVibrerAbove",
"articLaissezVibrerBelow",
"articMarcatoAbove",
"articMarcatoBelow",
"articMarcatoStaccatoAbove",
"articMarcatoStaccatoBelow",
"articStaccatissimoAbove",
"articStaccatissimoBelow",
"articStaccatissimoStrokeAbove",
"articStaccatissimoStrokeBelow",
"articStaccatissimoWedgeAbove",
"articStaccatissimoWedgeBelow",
"articStaccato",
"articStressAbove",
"articStressBelow",
"articTenuto",
"articTenutoSlurAbove",
"articTenutoSlurBelow",
"articUnstressAbove",
"articUnstressBelow",
"augmentationDot",
"barlineDashed",
"barlineDotted",
"barlineDouble",
"barlineFinal",
"barlineHeavy",
"barlineHeavyHeavy",
"barlineReverseFinal",
"barlineShort",
"barlineSingle",
"barlineTick",
"brace",
"bracket",
"bracketBottom",
"bracketTop",
"brassBend",
"brassDoitLong",
"brassDoitMedium",
"brassDoitShort",
"brassFallLipLong",
"brassFallLipMedium",
"brassFallLipShort",
"brassFallRoughLong",
"brassFallRoughMedium",
"brassFallRoughShort",
"brassFallSmoothLong",
"brassFallSmoothMedium",
"brassFallSmoothShort",
"brassFlip",
"brassHarmonMuteClosed",
"brassHarmonMuteStemHalfLeft",
"brassHarmonMuteStemHalfRight",
"brassHarmonMuteStemOpen",
"brassJazzTurn",
"brassLiftLong",
"brassLiftMedium",
"brassLiftShort",
"brassMuteClosed",
"brassMuteHalfClosed",
"brassMuteOpen",
"brassPlop",
"brassScoop",
"brassSmear",
"breathMark",
"breathMarkSalzedo",
"bridgeClef",
"buzzRoll",
"cClef",
"cClefArrowDown",
"cClefArrowUp",
"cClefCombining",
"cClefReversed",
"cClefTriangular",
"cClefTriangularToFClef",
"caesura",
"caesuraShort",
"caesuraThick",
"coda",
"codaJapanese",
"codaSquare",
"conductorBeat2Compound",
"conductorBeat2Simple",
"conductorBeat3Compound",
"conductorBeat3Simple",
"conductorBeat4Compound",
"conductorBeat4Simple",
"conductorLeftBeat",
"conductorRightBeat",
"conductorStrongBeat",
"conductorWeakBeat",
"controlBeginBeam",
"controlBeginPhrase",
"controlBeginSlur",
"controlBeginTie",
"controlEndBeam",
"controlEndPhrase",
"controlEndSlur",
"controlEndTie",
"csymAugmented",
"csymDiminished",
"csymHalfDiminished",
"csymMajorSeventh",
"csymMinor",
"daCapo",
"dalSegno",
"doubleTongueAbove",
"doubleTongueBelow",
"dynamicCrescendoHairpin",
"dynamicDiminuendoHairpin",
"dynamicFF",
"dynamicFFF",
"dynamicFFFF",
"dynamicFFFFF",
"dynamicFFFFFF",
"dynamicForte",
"dynamicFortePiano",
"dynamicForzando",
"dynamicMF",
"dynamicMP",
"dynamicMezzo",
"dynamicNiente",
"dynamicNienteForHairpin",
"dynamicPP",
"dynamicPPP",
"dynamicPPPP",
"dynamicPPPPP",
"dynamicPPPPPP",
"dynamicPiano",
"dynamicRinforzando",
"dynamicRinforzando1",
"dynamicRinforzando2",
"dynamicSforzando",
"dynamicSforzandoPianissimo",
"dynamicSforzandoPiano",
"dynamicSforzato",
"dynamicSforzatoFF",
"dynamicSubito",
"dynamicZ",
"elecLoop",
"elecLoudspeaker",
"elecMIDIController0",
"elecMIDIController100",
"elecMIDIController20",
"elecMIDIController40",
"elecMIDIController60",
"elecMIDIController80",
"elecMIDIIn",
"elecMIDIOut",
"elecMicrophone",
"elecPause",
"elecPlay",
"elecSkipBackwards",
"elecSkipForwards",
"elecStop",
"elecVolumeLevel0",
"elecVolumeLevel100",
"elecVolumeLevel20",
"elecVolumeLevel40",
"elecVolumeLevel60",
"elecVolumeLevel80",
"fClef",
"fClef15ma",
"fClef15mb",
"fClef8va",
"fClef8vb",
"fClefArrowDown",
"fClefArrowUp",
"fClefReversed",
"fClefTriangular",
"fClefTriangularToCClef",
"fClefUpsideDown",
"fermataAbove",
"fermataBelow",
"fermataLongAbove",
"fermataLongBelow",
"fermataShortAbove",
"fermataShortBelow",
"fermataVeryLongAbove",
"fermataVeryLongBelow",
"fermataVeryShortAbove",
"fermataVeryShortBelow",
"figbass0",
"figbass1",
"figbass2",
"figbass2Raised",
"figbass3",
"figbass4",
"figbass4Raised",
"figbass5",
"figbass5Raised1",
"figbass5Raised2",
"figbass5Raised3",
"figbass6",
"figbass6Raised",
"figbass7",
"figbass7Raised",
"figbass8",
"figbass9",
"figbass9Raised",
"figbassBracketLeft",
"figbassBracketRight",
"figbassCombiningLowering",
"figbassCombiningRaising",
"figbassDoubleFlat",
"figbassDoubleSharp",
"figbassFlat",
"figbassNatural",
"figbassParensLeft",
"figbassParensRight",
"figbassPlus",
"figbassSharp",
"flag128thDown",
"flag128thDownStraight",
"flag128thUp",
"flag128thUpStraight",
"flag16thDown",
"flag16thDownStraight",
"flag16thUp",
"flag16thUpStraight",
"flag256thDown",
"flag256thDownStraight",
"flag256thUp",
"flag256thUpStraight",
"flag32ndDown",
"flag32ndDownStraight",
"flag32ndUp",
"flag32ndUpStraight",
"flag512thDown",
"flag512thDownStraight",
"flag512thUp",
"flag512thUpStraight",
"flag64thDown",
"flag64thDownStraight",
"flag64thUp",
"flag64thUpStraight",
"flag8thDown",
"flag8thDownStraight",
"flag8thUp",
"flag8thUpStraight",
"flagInternalDown",
"flagInternalUp",
"flags1024thDown",
"flags1024thDownStraight",
"flags1024thUp",
"flags1024thUpStraight",
"fretboard3String",
"fretboard3StringNut",
"fretboard4String",
"fretboard4StringNut",
"fretboard5String",
"fretboard5StringNut",
"fretboard6String",
"fretboard6StringNut",
"fretboardFilledCircle",
"fretboardO",
"fretboardX",
"functionAngleLeft",
"functionAngleRight",
"functionBracketLeft",
"functionBracketRight",
"functionD",
"functionDD",
"functionEight",
"functionFive",
"functionFour",
"functionG",
"functionGreaterThan",
"functionLessThan",
"functionMinus",
"functionN",
"functionNine",
"functionOne",
"functionP",
"functionParensLeft",
"functionParensRight",
"functionPlus",
"functionRepetition1",
"functionRepetition2",
"functionRing",
"functionS",
"functionSS",
"functionSeven",
"functionSix",
"functionSlashedDD",
"functionT",
"functionThree",
"functionTwo",
"functionV",
"functionZero",
"gClef",
"gClef15ma",
"gClef15mb",
"gClef8va",
"gClef8vb",
"gClef8vbCclef",
"gClef8vbOld",
"gClefArrowDown",
"gClefArrowUp",
"gClefLigatedNumberAbove",
"gClefLigatedNumberBelow",
"gClefReversed",
"gClefUpsideDown",
"glissandoDown",
"glissandoUp",
"graceNoteAcciaccaturaStemDown",
"graceNoteAcciaccaturaStemUp",
"graceNoteAppoggiaturaStemDown",
"graceNoteAppoggiaturaStemUp",
"graceNoteSlashStemDown",
"graceNoteSlashStemUp",
"gregorianCClef",
"gregorianClimacus",
"gregorianClivis",
"gregorianFClef",
"gregorianPesSubpunctis",
"gregorianPodatus",
"gregorianPorrectus",
"gregorianPorrectusFlexus",
"gregorianScandicus",
"gregorianScandicusFlexus",
"gregorianSquareB",
"gregorianTorculus",
"gregorianTorculusResupinus",
"gregorianVirga",
"guitarClosePedal",
"guitarHalfOpenPedal",
"guitarLeftHandTapping",
"guitarOpenPedal",
"guitarRightHandTapping",
"guitarShake",
"guitarString0",
"guitarString1",
"guitarString2",
"guitarString3",
"guitarString4",
"guitarString5",
"guitarString6",
"guitarString7",
"guitarString8",
"guitarString9",
"guitarVibratoBarDip",
"guitarVibratoBarScoop",
"guitarVibratoStroke",
"guitarWideVibratoStroke",
"handbellsBelltree",
"handbellsDamp3",
"handbellsEcho1",
"handbellsEcho2",
"handbellsGyro",
"handbellsHandMartellato",
"handbellsMalletBellOnTable",
"handbellsMalletBellSuspended",
"handbellsMalletLft",
"handbellsMartellato",
"handbellsMartellatoLift",
"handbellsMutedMartellato",
"handbellsPluckLift",
"handbellsSwing",
"handbellsSwingDown",
"handbellsSwingUp",
"harpMetalRod",
"harpPedalCentered",
"harpPedalDivider",
"harpPedalLowered",
"harpPedalRaised",
"harpSalzedoFluidicSoundsLeft",
"harpSalzedoFluidicSoundsRight",
"harpSalzedoMetallicSounds",
"harpSalzedoMuffleTotally",
"harpSalzedoOboicFlux",
"harpSalzedoPlayUpperEnd",
"harpSalzedoSlideWithSuppleness",
"harpSalzedoTamTamSounds",
"harpSalzedoThunderEffect",
"harpSalzedoTimpanicSounds",
"harpSalzedoWhistlingSounds",
"harpTuningKey",
"keyboardLeftPedalPictogram",
"keyboardMiddlePedalPictogram",
"keyboardPedalHalf",
"keyboardPedalHalf2",
"keyboardPedalHalf3",
"keyboardPedalHeel1",
"keyboardPedalHeel2",
"keyboardPedalP",
"keyboardPedalPed",
"keyboardPedalS",
"keyboardPedalSost",
"keyboardPedalToe1",
"keyboardPedalToe2",
"keyboardPedalUp",
"keyboardPedalUpNotch",
"keyboardPedalUpSpecial",
"keyboardPluckInside",
"keyboardRightPedalPictogram",
"leftRepeat",
"leftRepeatSmall",
"mensuralBrevis",
"mensuralCroix",
"mensuralCustosDown",
"mensuralCustosUp",
"mensuralFusaBlackDown",
"mensuralFusaBlackUp",
"mensuralFusaWhiteDown",
"mensuralFusaWhiteUp",
"mensuralLongaDownLeft",
"mensuralLongaDownRight",
"mensuralLongaUpLeft",
"mensuralLongaUpRight",
"mensuralMaximaDownLeft",
"mensuralMaximaDownRight",
"mensuralMaximaUpLeft",
"mensuralMaximaUpRight",
"mensuralMinimaBlackDown",
"mensuralMinimaBlackUp",
"mensuralMinimaWhiteDown",
"mensuralMinimaWhiteUp",
"mensuralProportion1",
"mensuralProportion2",
"mensuralProportion3",
"mensuralProportion4",
"mensuralProportion4Old",
"mensuralRestBrevis",
"mensuralRestLongaImperfecta",
"mensuralRestLongaPerfecta",
"mensuralRestMinima",
"mensuralRestSemibrevis",
"mensuralRestSemiminima",
"mensuralSemibrevisBlack",
"mensuralSemibrevisWhite",
"mensuralSemiminimaBlackDown",
"mensuralSemiminimaBlackUp",
"mensuralSemiminimaWhiteDown",
"mensuralSemiminimaWhiteUp",
"mensuralSignum",
"mensuralTempPerfProlPerf",
"mensuralTempPerfProlImp",
"mensuralTempPerfProlImpDimin",
"mensuralTempPerfProlPerfDimin",
"mensuralTempImpProlPerf",
"mensuralTempImpProlImp",
"mensuralTempImpProlImpRev",
"mensuralTempImpProlPerfDimin",
"mensuralTempImpProlImpDimin",
"mensuralTempImpProlImpDiminRev",
"mensuralTempImpProlPerfRev",
"miscDoNotCopy",
"miscDoNotPhotocopy",
"miscEyeglasses",
"miscStaffDivideArrowDown",
"miscStaffDivideArrowUp",
"miscStaffDivideArrowUpDown",
"miscSwish",
"note1024thDown",
"note1024thUp",
"note128thDown",
"note128thUp",
"note16thDown",
"note16thUp",
"note256thDown",
"note256thUp",
"note32ndDown",
"note32ndUp",
"note512thDown",
"note512thUp",
"note64thDown",
"note64thUp",
"noteABlack",
"noteAFlatBlack",
"noteAFlatHalf",
"noteAFlatWhole",
"noteAHalf",
"noteASharpBlack",
"noteASharpHalf",
"noteASharpWhole",
"noteAWhole",
"noteBBlack",
"noteBFlatBlack",
"noteBFlatHalf",
"noteBFlatWhole",
"noteBHalf",
"noteBSharpBlack",
"noteBSharpHalf",
"noteBSharpWhole",
"noteBWhole",
"noteCBlack",
"noteCFlatBlack",
"noteCFlatHalf",
"noteCFlatWhole",
"noteCHalf",
"noteCSharpBlack",
"noteCSharpHalf",
"noteCSharpWhole",
"noteCWhole",
"noteDBlack",
"noteDFlatBlack",
"noteDFlatHalf",
"noteDFlatWhole",
"noteDHalf",
"noteDSharpBlack",
"noteDSharpHalf",
"noteDSharpWhole",
"noteDWhole",
"noteDoBlack",
"noteDoHalf",
"noteDoWhole",
"noteDoubleWhole",
"noteDoubleWholeAlt",
"noteEBlack",
"noteEFlatBlack",
"noteEFlatHalf",
"noteEFlatWhole",
"noteEHalf",
"noteESharpBlack",
"noteESharpHalf",
"noteESharpWhole",
"noteEWhole",
"noteEighthDown",
"noteEighthUp",
"noteEmptyBlack",
"noteEmptyHalf",
"noteEmptyWhole",
"noteFBlack",
"noteFFlatBlack",
"noteFFlatHalf",
"noteFFlatWhole",
"noteFHalf",
"noteFSharpBlack",
"noteFSharpHalf",
"noteFSharpWhole",
"noteFWhole",
"noteFaBlack",
"noteFaHalf",
"noteFaWhole",
"noteGBlack",
"noteGFlatBlack",
"noteGFlatHalf",
"noteGFlatWhole",
"noteGHalf",
"noteGSharpBlack",
"noteGSharpHalf",
"noteGSharpWhole",
"noteGWhole",
"noteHBlack",
"noteHHalf",
"noteHSharpBlack",
"noteHSharpHalf",
"noteHSharpWhole",
"noteHWhole",
"noteHalfDown",
"noteHalfUp",
"noteLaBlack",
"noteLaHalf",
"noteLaWhole",
"noteMiBlack",
"noteMiHalf",
"noteMiWhole",
"noteQuarterDown",
"noteQuarterUp",
"noteReBlack",
"noteReHalf",
"noteReWhole",
"noteShapeDiamondBlack",
"noteShapeDiamondWhite",
"noteShapeMoonBlack",
"noteShapeMoonWhite",
"noteShapeRoundBlack",
"noteShapeRoundWhite",
"noteShapeSquareBlack",
"noteShapeSquareWhite",
"noteShapeTriangleLeftBlack",
"noteShapeTriangleLeftWhite",
"noteShapeTriangleRightBlack",
"noteShapeTriangleRightWhite",
"noteShapeTriangleRoundBlack",
"noteShapeTriangleRoundWhite",
"noteShapeTriangleUpBlack",
"noteShapeTriangleUpWhite",
"noteSiBlack",
"noteSiHalf",
"noteSiWhole",
"noteSoBlack",
"noteSoHalf",
"noteSoWhole",
"noteTiBlack",
"noteTiHalf",
"noteTiWhole",
"noteWhole",
"noteheadBlack",
"noteheadCircleSlash",
"noteheadCircleX",
"noteheadCircleXDoubleWhole",
"noteheadCircleXHalf",
"noteheadCircleXWhole",
"noteheadCircledBlack",
"noteheadCircledDoubleWhole",
"noteheadCircledHalf",
"noteheadCircledWhole",
"noteheadClusterDoubleWhole2nd",
"noteheadClusterDoubleWhole3rd",
"noteheadClusterDoubleWholeBottom",
"noteheadClusterDoubleWholeMiddle",
"noteheadClusterDoubleWholeTop",
"noteheadClusterHalf2nd",
"noteheadClusterHalf3rd",
"noteheadClusterHalfBottom",
"noteheadClusterHalfMiddle",
"noteheadClusterHalfTop",
"noteheadClusterQuarter2nd",
"noteheadClusterQuarter3rd",
"noteheadClusterQuarterBottom",
"noteheadClusterQuarterMiddle",
"noteheadClusterQuarterTop",
"noteheadClusterRoundBlack",
"noteheadClusterRoundWhite",
"noteheadClusterSquareBlack",
"noteheadClusterSquareWhite",
"noteheadClusterWhole2nd",
"noteheadClusterWhole3rd",
"noteheadClusterWholeBottom",
"noteheadClusterWholeMiddle",
"noteheadClusterWholeTop",
"noteheadDiamondBlack",
"noteheadDiamondBlackOld",
"noteheadDiamondClusterBlack2nd",
"noteheadDiamondClusterBlack3rd",
"noteheadDiamondClusterBlackBottom",
"noteheadDiamondClusterBlackMiddle",
"noteheadDiamondClusterBlackTop",
"noteheadDiamondClusterWhite2nd",
"noteheadDiamondClusterWhite3rd",
"noteheadDiamondClusterWhiteBottom",
"noteheadDiamondClusterWhiteMiddle",
"noteheadDiamondClusterWhiteTop",
"noteheadDiamondDoubleWhole",
"noteheadDiamondDoubleWholeOld",
"noteheadDiamondHalf",
"noteheadDiamondHalfFilled",
"noteheadDiamondHalfOld",
"noteheadDiamondWhole",
"noteheadDiamondWholeOld",
"noteheadDoubleWhole",
"noteheadDoubleWholeWithX",
"noteheadHalf",
"noteheadHalfWithX",
"noteheadHeavyX",
"noteheadHeavyXHat",
"noteheadLargeArrowDownBlack",
"noteheadLargeArrowDownDoubleWhole",
"noteheadLargeArrowDownHalf",
"noteheadLargeArrowDownWhole",
"noteheadLargeArrowUpBlack",
"noteheadLargeArrowUpDoubleWhole",
"noteheadLargeArrowUpHalf",
"noteheadLargeArrowUpWhole",
"noteheadMoonBlack",
"noteheadMoonWhite",
"noteheadNull",
"noteheadParenthesis",
"noteheadParenthesisLeft",
"noteheadParenthesisRight",
"noteheadPlusBlack",
"noteheadPlusDoubleWhole",
"noteheadPlusHalf",
"noteheadPlusWhole",
"noteheadRoundBlack",
"noteheadRoundBlackLarge",
"noteheadRoundBlackSlashed",
"noteheadRoundBlackSlashedLarge",
"noteheadRoundWhite",
"noteheadRoundWhiteLarge",
"noteheadRoundWhiteSlashed",
"noteheadRoundWhiteSlashedLarge",
"noteheadRoundWhiteWithDot",
"noteheadRoundWhiteWithDotLarge",
"noteheadSlashDiamondWhite",
"noteheadSlashHorizontalEnds",
"noteheadSlashHorizontalEndsMuted",
"noteheadSlashVerticalEnds",
"noteheadSlashVerticalEndsMuted",
"noteheadSlashVerticalEndsSmall",
"noteheadSlashWhite",
"noteheadSlashWhiteMuted",
"noteheadSlashX",
"noteheadSlashedBlack1",
"noteheadSlashedBlack2",
"noteheadSlashedDoubleWhole1",
"noteheadSlashedDoubleWhole2",
"noteheadSlashedHalf1",
"noteheadSlashedHalf2",
"noteheadSlashedWhole1",
"noteheadSlashedWhole2",
"noteheadSquareBlack",
"noteheadSquareBlackLarge",
"noteheadSquareBlackWhite",
"noteheadSquareWhite",
"noteheadTriangleDownBlack",
"noteheadTriangleDownDoubleWhole",
"noteheadTriangleDownHalf",
"noteheadTriangleDownWhite",
"noteheadTriangleDownWhole",
"noteheadTriangleLeftBlack",
"noteheadTriangleLeftWhite",
"noteheadTriangleRightBlack",
"noteheadTriangleRightWhite",
"noteheadTriangleRoundDownBlack",
"noteheadTriangleRoundDownWhite",
"noteheadTriangleUpBlack",
"noteheadTriangleUpDoubleWhole",
"noteheadTriangleUpHalf",
"noteheadTriangleUpRightBlack",
"noteheadTriangleUpRightWhite",
"noteheadTriangleUpWhite",
"noteheadTriangleUpWhole",
"noteheadVoidWithX",
"noteheadWhole",
"noteheadWholeWithX",
"noteheadXBlack",
"noteheadXDoubleWhole",
"noteheadXHalf",
"noteheadXOrnate",
"noteheadXWhole",
"ornamentBottomLeftConcaveStroke",
"ornamentBottomLeftConcaveStrokeLarge",
"ornamentBottomLeftConvexStroke",
"ornamentBottomRightConcaveStroke",
"ornamentBottomRightConvexStroke",
"ornamentComma",
"ornamentDoubleObliqueLinesAfterNote",
"ornamentDoubleObliqueLinesBeforeNote",
"ornamentDownCurve",
"ornamentHaydn",
"ornamentHighLeftConcaveStroke",
"ornamentHighLeftConvexStroke",
"ornamentHighRightConcaveStroke",
"ornamentHighRightConvexStroke",
"ornamentHookAfterNote",
"ornamentHookBeforeNote",
"ornamentLeftFacingHalfCircle",
"ornamentLeftFacingHook",
"ornamentLeftPlus",
"ornamentLeftShakeT",
"ornamentLeftVerticalStroke",
"ornamentLeftVerticalStrokeWithCross",
"ornamentLowLeftConcaveStroke",
"ornamentLowLeftConvexStroke",
"ornamentLowRightConcaveStroke",
"ornamentLowRightConvexStroke",
"ornamentMiddleVerticalStroke",
"ornamentMordent",
"ornamentMordentInverted",
"ornamentObliqueLineAfterNote",
"ornamentObliqueLineBeforeNote",
"ornamentObliqueLineHorizAfterNote",
"ornamentObliqueLineHorizBeforeNote",
"ornamentOriscus",
"ornamentPortDeVoixV",
"ornamentPrecompAppoggTrill",
"ornamentPrecompAppoggTrillSuffix",
"ornamentPrecompDescendingSlide",
"ornamentPrecompPortDeVoixMordent",
"ornamentPrecompSlide",
"ornamentPrecompSlideTrillBach",
"ornamentPrecompSlideTrillDAnglebert",
"ornamentPrecompSlideTrillMarpurg",
"ornamentPrecompSlideTrillMuffat",
"ornamentPrecompSlideTrillSuffixMuffat",
"ornamentPrecompTrillSuffixDandrieu",
"ornamentPrecompTurnTrillBach",
"ornamentPrecompTurnTrillDAnglebert",
"ornamentQuilisma",
"ornamentRightFacingHalfCircle",
"ornamentRightFacingHook",
"ornamentRightVerticalStroke",
"ornamentSchleifer",
"ornamentShake3",
"ornamentShakeMuffat1",
"ornamentShortObliqueLineAfterNote",
"ornamentShortObliqueLineBeforeNote",
"ornamentTopLeftConcaveStroke",
"ornamentTopLeftConvexStroke",
"ornamentTopRightConcaveStroke",
"ornamentTopRightConvexStroke",
"ornamentTremblement",
"ornamentTrill",
"ornamentTurn",
"ornamentTurnInverted",
"ornamentTurnSlash",
"ornamentTurnUp",
"ornamentTurnUpS",
"ornamentUpCurve",
"ornamentVerticalLine",
"ornamentZigZagLineNoRightEnd",
"ornamentZigZagLineWithRightEnd",
"ottava",
"ottavaAlta",
"ottavaBassa",
"ottavaBassaBa",
"pendereckiTremolo",
"pictAlmglocken",
"pictAnvil",
"pictBassDrum",
"pictBassDrumOnSide",
"pictBeaterBow",
"pictBeaterBrassMalletsDown",
"pictBeaterBrassMalletsUp",
"pictBeaterDoubleBassDrumDown",
"pictBeaterDoubleBassDrumUp",
"pictBeaterFinger",
"pictBeaterFingernails",
"pictBeaterFist",
"pictBeaterGuiroScraper",
"pictBeaterHammer",
"pictBeaterHand",
"pictBeaterHardBassDrumDown",
"pictBeaterHardBassDrumUp",
"pictBeaterHardGlockenspielDown",
"pictBeaterHardGlockenspielLeft",
"pictBeaterHardGlockenspielRight",
"pictBeaterHardGlockenspielUp",
"pictBeaterHardTimpaniDown",
"pictBeaterHardTimpaniLeft",
"pictBeaterHardTimpaniRight",
"pictBeaterHardTimpaniUp",
"pictBeaterHardXylophoneDown",
"pictBeaterHardXylophoneLeft",
"pictBeaterHardXylophoneRight",
"pictBeaterHardXylophoneUp",
"pictBeaterHardYarnDown",
"pictBeaterHardYarnLeft",
"pictBeaterHardYarnRight",
"pictBeaterHardYarnUp",
"pictBeaterJazzSticksDown",
"pictBeaterJazzSticksUp",
"pictBeaterKnittingNeedle",
"pictBeaterMallet",
"pictBeaterMediumBassDrumDown",
"pictBeaterMediumBassDrumUp",
"pictBeaterMediumTimpaniDown",
"pictBeaterMediumTimpaniLeft",
"pictBeaterMediumTimpaniRight",
"pictBeaterMediumTimpaniUp",
"pictBeaterMediumXylophoneDown",
"pictBeaterMediumXylophoneLeft",
"pictBeaterMediumXylophoneRight",
"pictBeaterMediumXylophoneUp",
"pictBeaterMediumYarnDown",
"pictBeaterMediumYarnLeft",
"pictBeaterMediumYarnRight",
"pictBeaterMediumYarnUp",
"pictBeaterMetalHammer",
"pictBeaterSnareSticksDown",
"pictBeaterSnareSticksUp",
"pictBeaterSoftBassDrumDown",
"pictBeaterSoftBassDrumUp",
"pictBeaterSoftGlockenspielDown",
"pictBeaterSoftGlockenspielLeft",
"pictBeaterSoftGlockenspielRight",
"pictBeaterSoftGlockenspielUp",
"pictBeaterSoftTimpaniDown",
"pictBeaterSoftTimpaniLeft",
"pictBeaterSoftTimpaniRight",
"pictBeaterSoftTimpaniUp",
"pictBeaterSoftXylophone",
"pictBeaterSoftXylophoneDown",
"pictBeaterSoftXylophoneLeft",
"pictBeaterSoftXylophoneRight",
"pictBeaterSoftXylophoneUp",
"pictBeaterSoftYarnDown",
"pictBeaterSoftYarnLeft",
"pictBeaterSoftYarnRight",
"pictBeaterSoftYarnUp",
"pictBeaterSpoonWoodenMallet",
"pictBeaterSuperballDown",
"pictBeaterSuperballLeft",
"pictBeaterSuperballRight",
"pictBeaterSuperballUp",
"pictBeaterTriangleDown",
"pictBeaterTriangleUp",
"pictBeaterWireBrushesDown",
"pictBeaterWireBrushesUp",
"pictBeaterWoodTimpaniDown",
"pictBeaterWoodTimpaniLeft",
"pictBeaterWoodTimpaniRight",
"pictBeaterWoodTimpaniUp",
"pictBeaterWoodXylophoneDown",
"pictBeaterWoodXylophoneLeft",
"pictBeaterWoodXylophoneRight",
"pictBeaterWoodXylophoneUp",
"pictBell",
"pictBellOfCymbal",
"pictBellPlate",
"pictBirdWhistle",
"pictBoardClapper",
"pictBongos",
"pictBrakeDrum",
"pictCabasa",
"pictCannon",
"pictCarHorn",
"pictCastanets",
"pictCastanetsSmithBrindle",
"pictCenter1",
"pictCenter2",
"pictCenter3",
"pictChimes",
"pictChineseCymbal",
"pictChokeCymbal",
"pictClaves",
"pictCoins",
"pictConga",
"pictCowBell",
"pictCowBellBerio",
"pictCrashCymbals",
"pictCrotales",
"pictCymbalTongs",
"pictDamp1",
"pictDamp2",
"pictDamp3",
"pictDamp4",
"pictDrumStick",
"pictDuckCall",
"pictEdgeOfCymbal",
"pictEmptyTrap",
"pictFingerCymbals",
"pictFlexatone",
"pictFootballRatchet",
"pictGlsp",
"pictGlspSmithBrindle",
"pictGobletDrum",
"pictGong",
"pictGongWithButton",
"pictGuiro",
"pictGumHardDown",
"pictGumHardLeft",
"pictGumHardRight",
"pictGumHardUp",
"pictGumMediumDown",
"pictGumMediumLeft",
"pictGumMediumRight",
"pictGumMediumUp",
"pictGumSoftDown",
"pictGumSoftLeft",
"pictGumSoftRight",
"pictGumSoftUp",
"pictHalfOpen1",
"pictHalfOpen2",
"pictHandbell",
"pictHiHat",
"pictHiHatOnStand",
"pictKlaxonHorn",
"pictLionsRoar",
"pictLogDrum",
"pictMar",
"pictMarSmithBrindle",
"pictMaraca",
"pictMaracaSmithBrindle",
"pictMaracas",
"pictMegaphone",
"pictNormalPosition",
"pictOnRim",
"pictOpen",
"pictOpenRimShot",
"pictPistolShot",
"pictPoliceWhistle",
"pictRainstick",
"pictRatchet",
"pictRim1",
"pictRim2",
"pictRim3",
"pictRimShotOnStem",
"pictSandpaperBlocks",
"pictScrapeAroundRim",
"pictScrapeCenterToEdge",
"pictScrapeEdgeToCenter",
"pictSiren",
"pictSistrum",
"pictSizzleCymbal",
"pictSleighBell",
"pictSleighBellSmithBrindle",
"pictSlideBrushOnGong",
"pictSlideWhistle",
"pictSlitDrum",
"pictSnareDrum",
"pictSnareDrumMilitary",
"pictSnareDrumSnaresOff",
"pictStickShot",
"pictSuperball",
"pictSuspendedCymbal",
"pictTabla",
"pictTamTam",
"pictTamTamWithBeater",
"pictTambourine",
"pictTambourineStockhausen",
"pictTempleBlocks",
"pictTenorDrum",
"pictThundersheet",
"pictTimbales",
"pictTimpani",
"pictTomTom",
"pictTriangle",
"pictTubularBells",
"pictVib",
"pictVibSmithBrindle",
"pictVibraslap",
"pictVietnameseHat",
"pictWhip",
"pictWindChimesGlass",
"pictWindMachine",
"pictWindWhistle",
"pictWoodBlock",
"pictWoundHardDown",
"pictWoundHardLeft",
"pictWoundHardRight",
"pictWoundHardUp",
"pictWoundSoftDown",
"pictWoundSoftLeft",
"pictWoundSoftRight",
"pictWoundSoftUp",
"pictXyl",
"pictXylSmithBrindle",
"pluckedBuzzPizzicato",
"pluckedDamp",
"pluckedDampAll",
"pluckedDampOnStem",
"pluckedFingernailFlick",
"pluckedPlectrum",
"pluckedSnapPizzicatoAbove",
"pluckedSnapPizzicatoAboveGerman",
"pluckedSnapPizzicatoBelow",
"pluckedSnapPizzicatoBelowGerman",
"pluckedWithFingernails",
"quindicesima",
"quindicesimaAlta",
"quindicesimaBassa",
"repeat1Bar",
"repeat2Bars",
"repeat4Bars",
"repeatDots",
"rest1024th",
"rest128th",
"rest16th",
"rest256th",
"rest32nd",
"rest512th",
"rest64th",
"rest8th",
"restDoubleWhole",
"restHBar",
"restHBarLeft",
"restHBarRight",
"restHalf",
"restLonga",
"restQuarter",
"restQuarterOld",
"restWhole",
"reversedBrace",
"reversedBracketBottom",
"reversedBracketTop",
"rightRepeat",
"rightRepeatSmall",
"segno",
"segnoJapanese",
"segnoSerpent1",
"segnoSerpent2",
"semipitchedPercussionClef1",
"semipitchedPercussionClef2",
"staff1Line",
"staff2Lines",
"staff3Lines",
"staff4Lines",
"staff5Lines",
"staff6Lines",
"stem",
"stemBowOnBridge",
"stemBowOnTailpiece",
"stemBuzzRoll",
"stemDamp",
"stemMultiphonicsBlack",
"stemMultiphonicsBlackWhite",
"stemMultiphonicsWhite",
"stemPendereckiTremolo",
"stemRimShot",
"stemSprechgesang",
"stemSulPonticello",
"stemSussurando",
"stemSwished",
"stemVibratoPulse",
"stringsBowBehindBridge",
"stringsBowOnBridge",
"stringsBowOnTailpiece",
"stringsChangeBowDirection",
"stringsDownBow",
"stringsFouetté",
"stringsHalfHarmonic",
"stringsHarmonic",
"stringsJeteAbove",
"stringsJeteBelow",
"stringsMuteOff",
"stringsMuteOn",
"stringsOverpressureDownBow",
"stringsOverpressureNoDirection",
"stringsOverpressurePossibileDownBow",
"stringsOverpressurePossibileUpBow",
"stringsOverpressureUpBow",
"stringsThumbPizzicato",
"stringsThumbPosition",
"stringsUpBow",
"stringsVibratoPulse",
"systemDivider",
"systemDividerExtraLong",
"systemDividerLong",
"timeSig0",
"timeSig1",
"timeSig2",
"timeSig3",
"timeSig4",
"timeSig5",
"timeSig6",
"timeSig7",
"timeSig8",
"timeSig9",
"timeSigComma",
"timeSigCommon",
"timeSigCutCommon",
"timeSigEquals",
"timeSigFractionHalf",
"timeSigFractionOneThird",
"timeSigFractionQuarter",
"timeSigFractionThreeQuarters",
"timeSigFractionTwoThirds",
"timeSigFractionalSlash",
"timeSigMinus",
"timeSigMultiply",
"timeSigOpenPenderecki",
"timeSigParensLeft",
"timeSigParensLeftSmall",
"timeSigParensRight",
"timeSigParensRightSmall",
"timeSigPlus",
"timeSigPlusSmall",
"timeSigX",
"tremolo1",
"tremolo2",
"tremolo3",
"tremolo4",
"tremolo5",
"tremoloFingered1",
"tremoloFingered2",
"tremoloFingered3",
"tremoloFingered4",
"tremoloFingered5",
"tripleTongueAbove",
"tripleTongueBelow",
"tuplet0",
"tuplet1",
"tuplet2",
"tuplet3",
"tuplet4",
"tuplet5",
"tuplet6",
"tuplet7",
"tuplet8",
"tuplet9",
"tupletColon",
"unmeasuredTremolo",
"unmeasuredTremoloSimple",
"unpitchedPercussionClef1",
"unpitchedPercussionClef1Alt",
"unpitchedPercussionClef2",
"ventiduesima",
"ventiduesimaAlta",
"ventiduesimaBassa",
"vocalBreathMark",
"vocalMouthClosed",
"vocalMouthOpen",
"vocalMouthPursed",
"vocalMouthSlightlyOpen",
"vocalMouthWideOpen",
"vocalSprechgesang",
"vocalsSussurando",
"wiggleArpeggiatoDown",
"wiggleArpeggiatoDownArrow",
"wiggleArpeggiatoDownSwash",
"wiggleArpeggiatoUp",
"wiggleArpeggiatoUpArrow",
"wiggleArpeggiatoUpSwash",
"wiggleCircular",
"wiggleCircularConstant",
"wiggleCircularEnd",
"wiggleCircularLarge",
"wiggleCircularLarger",
"wiggleCircularLargerStill",
"wiggleCircularLargest",
"wiggleCircularSmall",
"wiggleCircularStart",
"wiggleGlissando",
"wiggleGlissandoGroup1",
"wiggleGlissandoGroup2",
"wiggleGlissandoGroup3",
"wiggleSawtooth",
"wiggleSquaretooth",
"wiggleTrill",
"wiggleTrillFast",
"wiggleTrillFaster",
"wiggleTrillFasterStill",
"wiggleTrillFastest",
"wiggleTrillSlow",
"wiggleTrillSlower",
"wiggleTrillSlowerStill",
"wiggleTrillSlowest",
"wiggleVIbratoLargestSlower",
"wiggleVIbratoMediumSlower",
"wiggleVibrato",
"wiggleVibratoLargeFast",
"wiggleVibratoLargeFaster",
"wiggleVibratoLargeFasterStill",
"wiggleVibratoLargeFastest",
"wiggleVibratoLargeSlow",
"wiggleVibratoLargeSlower",
"wiggleVibratoLargeSlowest",
"wiggleVibratoLargestFast",
"wiggleVibratoLargestFaster",
"wiggleVibratoLargestFasterStill",
"wiggleVibratoLargestFastest",
"wiggleVibratoLargestSlow",
"wiggleVibratoLargestSlowest",
"wiggleVibratoMediumFast",
"wiggleVibratoMediumFaster",
"wiggleVibratoMediumFasterStill",
"wiggleVibratoMediumFastest",
"wiggleVibratoMediumSlow",
"wiggleVibratoMediumSlowest",
"wiggleVibratoSmallFast",
"wiggleVibratoSmallFaster",
"wiggleVibratoSmallFasterStill",
"wiggleVibratoSmallFastest",
"wiggleVibratoSmallSlow",
"wiggleVibratoSmallSlower",
"wiggleVibratoSmallSlowest",
"wiggleVibratoSmallestFast",
"wiggleVibratoSmallestFaster",
"wiggleVibratoSmallestFasterStill",
"wiggleVibratoSmallestFastest",
"wiggleVibratoSmallestSlow",
"wiggleVibratoSmallestSlower",
"wiggleVibratoSmallestSlowest",
"wiggleVibratoStart",
"wiggleVibratoWide",
"wiggleWavy",
"windClosedHole",
"windFlatEmbouchure",
"windHalfClosedHole1",
"windHalfClosedHole2",
"windHalfClosedHole3",
"windLessRelaxedEmbouchure",
"windLessTightEmbouchure",
"windMultiphonicsBlackStem",
"windMultiphonicsBlackWhiteStem",
"windMultiphonicsWhiteStem",
"windOpenHole",
"windReedPositionIn",
"windReedPositionNormal",
"windReedPositionOut",
"windRelaxedEmbouchure",
"windSharpEmbouchure",
"windThreeQuartersClosedHole",
"windTightEmbouchure",
"windTrillKey",
"windVeryRelaxedEmbouchure",
"windVeryTightEmbouchure",
// MuseScore local symbols
"ornamentPrallMordent",
"ornamentUpPrall",
"ornamentUpMordent",
"ornamentPrallDown",
"ornamentDownPrall",
"ornamentDownMordent",
"ornamentPrallUp",
"ornamentLinePrall"
};
QVector<QString> Sym::symUserNames = {
"noSym",
"4stringTabClef",
"4stringTabClefSerif",
"4stringTabClefTall",
"6stringTabClef",
"6stringTabClefSerif",
"6stringTabClefTall",
"accdnLH2Ranks16Round",
"accdnLH2Ranks8Plus16Round",
"accdnLH2Ranks8Round",
"accdnLH2RanksFullMasterRound",
"accdnLH2RanksMasterPlus16Round",
"accdnLH2RanksMasterRound",
"accdnLH3Ranks2Plus8Square",
"accdnLH3Ranks2Square",
"accdnLH3Ranks8Square",
"accdnLH3RanksDouble8Square",
"accdnLH3RanksTuttiSquare",
"accdnRH3RanksAccordion",
"accdnRH3RanksAuthenticMusette",
"accdnRH3RanksBandoneon",
"accdnRH3RanksBassoon",
"accdnRH3RanksClarinet",
"accdnRH3RanksHarmonium",
"accdnRH3RanksImitationMusette",
"accdnRH3RanksLowerTremolo8",
"accdnRH3RanksMaster",
"accdnRH3RanksOboe",
"accdnRH3RanksOrgan",
"accdnRH3RanksPiccolo",
"accdnRH3RanksUpperTremolo8",
"accdnRH3RanksViolin",
"accdnRH4RanksAlto",
"accdnRH4RanksBassAlto",
"accdnRH4RanksMaster",
"accdnRH4RanksSoftBass",
"accdnRH4RanksSoftTenor",
"accdnRH4RanksSoprano",
"accdnRH4RanksTenor",
"accidental1CommaFlat",
"accidental1CommaSharp",
"accidental2CommaFlat",
"accidental2CommaSharp",
"accidental3CommaFlat",
"accidental3CommaSharp",
"accidental4CommaFlat",
"accidental5CommaSharp",
"accidentalArrowDown",
"accidentalArrowUp",
"accidentalBakiyeFlat",
"accidentalBakiyeSharp",
"accidentalBuyukMucennebFlat",
"accidentalBuyukMucennebSharp",
"accidentalCombiningCloseCurlyBrace",
"accidentalCombiningLower17Schisma",
"accidentalCombiningLower19Schisma",
"accidentalCombiningLower23Limit29LimitComma",
"accidentalCombiningLower31Schisma",
"accidentalCombiningOpenCurlyBrace",
"accidentalCombiningRaise17Schisma",
"accidentalCombiningRaise19Schisma",
"accidentalCombiningRaise23Limit29LimitComma",
"accidentalCombiningRaise31Schisma",
"accidentalDoubleFlat",
"accidentalDoubleFlatArrowDown",
"accidentalDoubleFlatArrowUp",
"accidentalDoubleFlatEqualTempered",
"accidentalDoubleFlatInverted",
"accidentalDoubleFlatOneArrowDown",
"accidentalDoubleFlatOneArrowUp",
"accidentalDoubleFlatReversed",
"accidentalDoubleFlatThreeArrowsDown",
"accidentalDoubleFlatThreeArrowsUp",
"accidentalDoubleFlatTwoArrowsDown",
"accidentalDoubleFlatTwoArrowsUp",
"accidentalDoubleSharp",
"accidentalDoubleSharpArrowDown",
"accidentalDoubleSharpArrowUp",
"accidentalDoubleSharpEqualTempered",
"accidentalDoubleSharpOneArrowDown",
"accidentalDoubleSharpOneArrowUp",
"accidentalDoubleSharpThreeArrowsDown",
"accidentalDoubleSharpThreeArrowsUp",
"accidentalDoubleSharpTwoArrowsDown",
"accidentalDoubleSharpTwoArrowsUp",
"accidentalFilledReversedFlatAndFlat",
"accidentalFilledReversedFlatAndFlatArrowDown",
"accidentalFilledReversedFlatAndFlatArrowUp",
"accidentalFilledReversedFlatArrowDown",
"accidentalFilledReversedFlatArrowUp",
"accidentalFlat",
"accidentalFlatEqualTempered",
"accidentalFlatInverted",
"accidentalFlatOneArrowDown",
"accidentalFlatOneArrowUp",
"accidentalFlatThreeArrowsDown",
"accidentalFlatThreeArrowsUp",
"accidentalFlatTwoArrowsDown",
"accidentalFlatTwoArrowsUp",
"accidentalHalfSharpArrowDown",
"accidentalHalfSharpArrowUp",
"accidentalJohnston13",
"accidentalJohnston31",
"accidentalJohnstonArrowDown",
"accidentalJohnstonArrowUp",
"accidentalJohnstonEl",
"accidentalJohnstonMinus",
"accidentalJohnstonPlus",
"accidentalJohnstonSeven",
"accidentalKomaFlat",
"accidentalKomaSharp",
"accidentalKoron",
"accidentalKucukMucennebFlat",
"accidentalKucukMucennebSharp",
"accidentalLowerOneSeptimalComma",
"accidentalLowerOneTridecimalQuartertone",
"accidentalLowerOneUndecimalQuartertone",
"accidentalLowerTwoSeptimalCommas",
"accidentalManeriSims12Down",
"accidentalManeriSims12Up",
"accidentalManeriSims4Down",
"accidentalManeriSims4Up",
"accidentalManeriSims6Down",
"accidentalManeriSims6Up",
"accidentalNatural",
"accidentalNaturalEqualTempered",
"accidentalNaturalFlat",
"accidentalNaturalOneArrowDown",
"accidentalNaturalOneArrowUp",
"accidentalNaturalReversed",
"accidentalNaturalSharp",
"accidentalNaturalThreeArrowsDown",
"accidentalNaturalThreeArrowsUp",
"accidentalNaturalTwoArrowsDown",
"accidentalNaturalTwoArrowsUp",
"accidentalOneAndAHalfSharpsArrowDown",
"accidentalOneAndAHalfSharpsArrowUp",
"accidentalQuarterFlat3",
"accidentalQuarterFlat4",
"accidentalQuarterFlat5",
"accidentalQuarterFlatArrowUp",
"accidentalQuarterFlatNaturalArrowDown",
"accidentalQuarterFlatTartini",
"accidentalQuarterSharp3",
"accidentalQuarterSharp4",
"accidentalQuarterSharpArrowDown",
"accidentalQuarterSharpNaturalArrowUp",
"accidentalRaiseOneSeptimalComma",
"accidentalRaiseOneTridecimalQuartertone",
"accidentalRaiseOneUndecimalQuartertone",
"accidentalRaiseTwoSeptimalCommas",
"accidentalReversedFlatAndFlatArrowDown",
"accidentalReversedFlatAndFlatArrowUp",
"accidentalReversedFlatArrowDown",
"accidentalReversedFlatArrowUp",
"accidentalSharp",
"accidentalSharpEqualTempered",
"accidentalSharpOneArrowDown",
"accidentalSharpOneArrowUp",
"accidentalSharpReversed",
"accidentalSharpSharp",
"accidentalSharpThreeArrowsDown",
"accidentalSharpThreeArrowsUp",
"accidentalSharpTwoArrowsDown",
"accidentalSharpTwoArrowsUp",
"accidentalSori",
"accidentalThreeQuartersFlat2",
"accidentalThreeQuartersFlatArrowDown",
"accidentalThreeQuartersFlatCouper",
"accidentalThreeQuartersFlatGrisey",
"accidentalThreeQuartersFlatTartini",
"accidentalThreeQuartersSharp2",
"accidentalThreeQuartersSharpArrowUp",
"accidentalTripleFlat",
"accidentalTripleSharp",
"accidentalXenakisOneThirdSharp",
"accidentalXenakisTwoThirdsSharp",
"analyticsEndStimme",
"analyticsHauptstimme",
"analyticsInversion1",
"analyticsNebenstimme",
"analyticsStartStimme",
"analyticsTheme",
"analyticsTheme1",
"analyticsThemeInversion",
"analyticsThemeRetrograde",
"analyticsThemeRetrogradeInversion",
"arpeggiatoDown",
"arpeggiatoUp",
"arrowBlackDown",
"arrowBlackDownLeft",
"arrowBlackDownRight",
"arrowBlackLeft",
"arrowBlackRight",
"arrowBlackUp",
"arrowBlackUpLeft",
"arrowBlackUpRight",
"arrowWhiteDown",
"arrowWhiteDownLeft",
"arrowWhiteDownRight",
"arrowWhiteLeft",
"arrowWhiteRight",
"arrowWhiteUp",
"arrowWhiteUpLeft",
"arrowWhiteUpRight",
"arrowheadBlackDown",
"arrowheadBlackDownLeft",
"arrowheadBlackDownRight",
"arrowheadBlackLeft",
"arrowheadBlackRight",
"arrowheadBlackUp",
"arrowheadBlackUpLeft",
"arrowheadBlackUpRight",
"arrowheadWhiteDown",
"arrowheadWhiteDownLeft",
"arrowheadWhiteDownRight",
"arrowheadWhiteLeft",
"arrowheadWhiteRight",
"arrowheadWhiteUp",
"arrowheadWhiteUpLeft",
"arrowheadWhiteUpRight",
"articAccent",
"articAccentLarge",
"articAccentStaccatoAbove",
"articAccentStaccatoBelow",
"articLaissezVibrerAbove",
"articLaissezVibrerBelow",
"articMarcatoAbove",
"articMarcatoBelow",
"articMarcatoStaccatoAbove",
"articMarcatoStaccatoBelow",
"articStaccatissimoAbove",
"articStaccatissimoBelow",
"articStaccatissimoStrokeAbove",
"articStaccatissimoStrokeBelow",
"articStaccatissimoWedgeAbove",
"articStaccatissimoWedgeBelow",
"articStaccato",
"articStressAbove",
"articStressBelow",
"articTenuto",
"articTenutoSlurAbove",
"articTenutoSlurBelow",
"articUnstressAbove",
"articUnstressBelow",
"augmentationDot",
"barlineDashed",
"barlineDotted",
"barlineDouble",
"barlineFinal",
"barlineHeavy",
"barlineHeavyHeavy",
"barlineReverseFinal",
"barlineShort",
"barlineSingle",
"barlineTick",
"brace",
"bracket",
"bracketBottom",
"bracketTop",
"brassBend",
"brassDoitLong",
"brassDoitMedium",
"brassDoitShort",
"brassFallLipLong",
"brassFallLipMedium",
"brassFallLipShort",
"brassFallRoughLong",
"brassFallRoughMedium",
"brassFallRoughShort",
"brassFallSmoothLong",
"brassFallSmoothMedium",
"brassFallSmoothShort",
"brassFlip",
"brassHarmonMuteClosed",
"brassHarmonMuteStemHalfLeft",
"brassHarmonMuteStemHalfRight",
"brassHarmonMuteStemOpen",
"brassJazzTurn",
"brassLiftLong",
"brassLiftMedium",
"brassLiftShort",
"brassMuteClosed",
"brassMuteHalfClosed",
"brassMuteOpen",
"brassPlop",
"brassScoop",
"brassSmear",
"breathMark",
"breathMarkSalzedo",
"bridgeClef",
"buzzRoll",
"cClef",
"cClefArrowDown",
"cClefArrowUp",
"cClefCombining",
"cClefReversed",
"cClefTriangular",
"cClefTriangularToFClef",
"caesura",
"caesuraShort",
"caesuraThick",
"coda",
"codaJapanese",
"codaSquare",
"conductorBeat2Compound",
"conductorBeat2Simple",
"conductorBeat3Compound",
"conductorBeat3Simple",
"conductorBeat4Compound",
"conductorBeat4Simple",
"conductorLeftBeat",
"conductorRightBeat",
"conductorStrongBeat",
"conductorWeakBeat",
"controlBeginBeam",
"controlBeginPhrase",
"controlBeginSlur",
"controlBeginTie",
"controlEndBeam",
"controlEndPhrase",
"controlEndSlur",
"controlEndTie",
"csymAugmented",
"csymDiminished",
"csymHalfDiminished",
"csymMajorSeventh",
"csymMinor",
"daCapo",
"dalSegno",
"doubleTongueAbove",
"doubleTongueBelow",
"dynamicCrescendoHairpin",
"dynamicDiminuendoHairpin",
"dynamicFF",
"dynamicFFF",
"dynamicFFFF",
"dynamicFFFFF",
"dynamicFFFFFF",
"dynamicForte",
"dynamicFortePiano",
"dynamicForzando",
"dynamicMF",
"dynamicMP",
"dynamicMezzo",
"dynamicNiente",
"dynamicNienteForHairpin",
"dynamicPP",
"dynamicPPP",
"dynamicPPPP",
"dynamicPPPPP",
"dynamicPPPPPP",
"dynamicPiano",
"dynamicRinforzando",
"dynamicRinforzando1",
"dynamicRinforzando2",
"dynamicSforzando",
"dynamicSforzandoPianissimo",
"dynamicSforzandoPiano",
"dynamicSforzato",
"dynamicSforzatoFF",
"dynamicSubito",
"dynamicZ",
"elecLoop",
"elecLoudspeaker",
"elecMIDIController0",
"elecMIDIController100",
"elecMIDIController20",
"elecMIDIController40",
"elecMIDIController60",
"elecMIDIController80",
"elecMIDIIn",
"elecMIDIOut",
"elecMicrophone",
"elecPause",
"elecPlay",
"elecSkipBackwards",
"elecSkipForwards",
"elecStop",
"elecVolumeLevel0",
"elecVolumeLevel100",
"elecVolumeLevel20",
"elecVolumeLevel40",
"elecVolumeLevel60",
"elecVolumeLevel80",
"fClef",
"fClef15ma",
"fClef15mb",
"fClef8va",
"fClef8vb",
"fClefArrowDown",
"fClefArrowUp",
"fClefReversed",
"fClefTriangular",
"fClefTriangularToCClef",
"fClefUpsideDown",
"fermataAbove",
"fermataBelow",
"fermataLongAbove",
"fermataLongBelow",
"fermataShortAbove",
"fermataShortBelow",
"fermataVeryLongAbove",
"fermataVeryLongBelow",
"fermataVeryShortAbove",
"fermataVeryShortBelow",
"figbass0",
"figbass1",
"figbass2",
"figbass2Raised",
"figbass3",
"figbass4",
"figbass4Raised",
"figbass5",
"figbass5Raised1",
"figbass5Raised2",
"figbass5Raised3",
"figbass6",
"figbass6Raised",
"figbass7",
"figbass7Raised",
"figbass8",
"figbass9",
"figbass9Raised",
"figbassBracketLeft",
"figbassBracketRight",
"figbassCombiningLowering",
"figbassCombiningRaising",
"figbassDoubleFlat",
"figbassDoubleSharp",
"figbassFlat",
"figbassNatural",
"figbassParensLeft",
"figbassParensRight",
"figbassPlus",
"figbassSharp",
"flag128thDown",
"flag128thDownStraight",
"flag128thUp",
"flag128thUpStraight",
"flag16thDown",
"flag16thDownStraight",
"flag16thUp",
"flag16thUpStraight",
"flag256thDown",
"flag256thDownStraight",
"flag256thUp",
"flag256thUpStraight",
"flag32ndDown",
"flag32ndDownStraight",
"flag32ndUp",
"flag32ndUpStraight",
"flag512thDown",
"flag512thDownStraight",
"flag512thUp",
"flag512thUpStraight",
"flag64thDown",
"flag64thDownStraight",
"flag64thUp",
"flag64thUpStraight",
"flag8thDown",
"flag8thDownStraight",
"flag8thUp",
"flag8thUpStraight",
"flagInternalDown",
"flagInternalUp",
"flags1024thDown",
"flags1024thDownStraight",
"flags1024thUp",
"flags1024thUpStraight",
"fretboard3String",
"fretboard3StringNut",
"fretboard4String",
"fretboard4StringNut",
"fretboard5String",
"fretboard5StringNut",
"fretboard6String",
"fretboard6StringNut",
"fretboardFilledCircle",
"fretboardO",
"fretboardX",
"functionAngleLeft",
"functionAngleRight",
"functionBracketLeft",
"functionBracketRight",
"functionD",
"functionDD",
"functionEight",
"functionFive",
"functionFour",
"functionG",
"functionGreaterThan",
"functionLessThan",
"functionMinus",
"functionN",
"functionNine",
"functionOne",
"functionP",
"functionParensLeft",
"functionParensRight",
"functionPlus",
"functionRepetition1",
"functionRepetition2",
"functionRing",
"functionS",
"functionSS",
"functionSeven",
"functionSix",
"functionSlashedDD",
"functionT",
"functionThree",
"functionTwo",
"functionV",
"functionZero",
"gClef",
"gClef15ma",
"gClef15mb",
"gClef8va",
"gClef8vb",
"gClef8vbCclef",
"gClef8vbOld",
"gClefArrowDown",
"gClefArrowUp",
"gClefLigatedNumberAbove",
"gClefLigatedNumberBelow",
"gClefReversed",
"gClefUpsideDown",
"glissandoDown",
"glissandoUp",
"graceNoteAcciaccaturaStemDown",
"graceNoteAcciaccaturaStemUp",
"graceNoteAppoggiaturaStemDown",
"graceNoteAppoggiaturaStemUp",
"graceNoteSlashStemDown",
"graceNoteSlashStemUp",
"gregorianCClef",
"gregorianClimacus",
"gregorianClivis",
"gregorianFClef",
"gregorianPesSubpunctis",
"gregorianPodatus",
"gregorianPorrectus",
"gregorianPorrectusFlexus",
"gregorianScandicus",
"gregorianScandicusFlexus",
"gregorianSquareB",
"gregorianTorculus",
"gregorianTorculusResupinus",
"gregorianVirga",
"guitarClosePedal",
"guitarHalfOpenPedal",
"guitarLeftHandTapping",
"guitarOpenPedal",
"guitarRightHandTapping",
"guitarShake",
"guitarString0",
"guitarString1",
"guitarString2",
"guitarString3",
"guitarString4",
"guitarString5",
"guitarString6",
"guitarString7",
"guitarString8",
"guitarString9",
"guitarVibratoBarDip",
"guitarVibratoBarScoop",
"guitarVibratoStroke",
"guitarWideVibratoStroke",
"handbellsBelltree",
"handbellsDamp3",
"handbellsEcho1",
"handbellsEcho2",
"handbellsGyro",
"handbellsHandMartellato",
"handbellsMalletBellOnTable",
"handbellsMalletBellSuspended",
"handbellsMalletLft",
"handbellsMartellato",
"handbellsMartellatoLift",
"handbellsMutedMartellato",
"handbellsPluckLift",
"handbellsSwing",
"handbellsSwingDown",
"handbellsSwingUp",
"harpMetalRod",
"harpPedalCentered",
"harpPedalDivider",
"harpPedalLowered",
"harpPedalRaised",
"harpSalzedoFluidicSoundsLeft",
"harpSalzedoFluidicSoundsRight",
"harpSalzedoMetallicSounds",
"harpSalzedoMuffleTotally",
"harpSalzedoOboicFlux",
"harpSalzedoPlayUpperEnd",
"harpSalzedoSlideWithSuppleness",
"harpSalzedoTamTamSounds",
"harpSalzedoThunderEffect",
"harpSalzedoTimpanicSounds",
"harpSalzedoWhistlingSounds",
"harpTuningKey",
"keyboardLeftPedalPictogram",
"keyboardMiddlePedalPictogram",
"keyboardPedalHalf",
"keyboardPedalHalf2",
"keyboardPedalHalf3",
"keyboardPedalHeel1",
"keyboardPedalHeel2",
"keyboardPedalP",
"keyboardPedalPed",
"keyboardPedalS",
"keyboardPedalSost",
"keyboardPedalToe1",
"keyboardPedalToe2",
"keyboardPedalUp",
"keyboardPedalUpNotch",
"keyboardPedalUpSpecial",
"keyboardPluckInside",
"keyboardRightPedalPictogram",
"leftRepeat",
"leftRepeatSmall",
"mensuralBrevis",
"mensuralCroix",
"mensuralCustosDown",
"mensuralCustosUp",
"mensuralFusaBlackDown",
"mensuralFusaBlackUp",
"mensuralFusaWhiteDown",
"mensuralFusaWhiteUp",
"mensuralLongaDownLeft",
"mensuralLongaDownRight",
"mensuralLongaUpLeft",
"mensuralLongaUpRight",
"mensuralMaximaDownLeft",
"mensuralMaximaDownRight",
"mensuralMaximaUpLeft",
"mensuralMaximaUpRight",
"mensuralMinimaBlackDown",
"mensuralMinimaBlackUp",
"mensuralMinimaWhiteDown",
"mensuralMinimaWhiteUp",
"mensuralProportion1",
"mensuralProportion2",
"mensuralProportion3",
"mensuralProportion4",
"mensuralProportion4Old",
"mensuralRestBrevis",
"mensuralRestLongaImperfecta",
"mensuralRestLongaPerfecta",
"mensuralRestMinima",
"mensuralRestSemibrevis",
"mensuralRestSemiminima",
"mensuralSemibrevisBlack",
"mensuralSemibrevisWhite",
"mensuralSemiminimaBlackDown",
"mensuralSemiminimaBlackUp",
"mensuralSemiminimaWhiteDown",
"mensuralSemiminimaWhiteUp",
"mensuralSignum",
"mensuralTempPerfProlPerf",
"mensuralTempPerfProlImp",
"mensuralTempPerfProlImpDimin",
"mensuralTempPerfProlPerfDimin",
"mensuralTempImpProlPerf",
"mensuralTempImpProlImp",
"mensuralTempImpProlImpRev",
"mensuralTempImpProlPerfDimin",
"mensuralTempImpProlImpDimin",
"mensuralTempImpProlImpDiminRev",
"mensuralTempImpProlPerfRev",
"miscDoNotCopy",
"miscDoNotPhotocopy",
"miscEyeglasses",
"miscStaffDivideArrowDown",
"miscStaffDivideArrowUp",
"miscStaffDivideArrowUpDown",
"miscSwish",
"note1024thDown",
"note1024thUp",
"note128thDown",
"note128thUp",
"note16thDown",
"note16thUp",
"note256thDown",
"note256thUp",
"note32ndDown",
"note32ndUp",
"note512thDown",
"note512thUp",
"note64thDown",
"note64thUp",
"noteABlack",
"noteAFlatBlack",
"noteAFlatHalf",
"noteAFlatWhole",
"noteAHalf",
"noteASharpBlack",
"noteASharpHalf",
"noteASharpWhole",
"noteAWhole",
"noteBBlack",
"noteBFlatBlack",
"noteBFlatHalf",
"noteBFlatWhole",
"noteBHalf",
"noteBSharpBlack",
"noteBSharpHalf",
"noteBSharpWhole",
"noteBWhole",
"noteCBlack",
"noteCFlatBlack",
"noteCFlatHalf",
"noteCFlatWhole",
"noteCHalf",
"noteCSharpBlack",
"noteCSharpHalf",
"noteCSharpWhole",
"noteCWhole",
"noteDBlack",
"noteDFlatBlack",
"noteDFlatHalf",
"noteDFlatWhole",
"noteDHalf",
"noteDSharpBlack",
"noteDSharpHalf",
"noteDSharpWhole",
"noteDWhole",
"noteDoBlack",
"noteDoHalf",
"noteDoWhole",
"noteDoubleWhole",
"noteDoubleWholeAlt",
"noteEBlack",
"noteEFlatBlack",
"noteEFlatHalf",
"noteEFlatWhole",
"noteEHalf",
"noteESharpBlack",
"noteESharpHalf",
"noteESharpWhole",
"noteEWhole",
"noteEighthDown",
"noteEighthUp",
"noteEmptyBlack",
"noteEmptyHalf",
"noteEmptyWhole",
"noteFBlack",
"noteFFlatBlack",
"noteFFlatHalf",
"noteFFlatWhole",
"noteFHalf",
"noteFSharpBlack",
"noteFSharpHalf",
"noteFSharpWhole",
"noteFWhole",
"noteFaBlack",
"noteFaHalf",
"noteFaWhole",
"noteGBlack",
"noteGFlatBlack",
"noteGFlatHalf",
"noteGFlatWhole",
"noteGHalf",
"noteGSharpBlack",
"noteGSharpHalf",
"noteGSharpWhole",
"noteGWhole",
"noteHBlack",
"noteHHalf",
"noteHSharpBlack",
"noteHSharpHalf",
"noteHSharpWhole",
"noteHWhole",
"noteHalfDown",
"noteHalfUp",
"noteLaBlack",
"noteLaHalf",
"noteLaWhole",
"noteMiBlack",
"noteMiHalf",
"noteMiWhole",
"noteQuarterDown",
"noteQuarterUp",
"noteReBlack",
"noteReHalf",
"noteReWhole",
"noteShapeDiamondBlack",
"noteShapeDiamondWhite",
"noteShapeMoonBlack",
"noteShapeMoonWhite",
"noteShapeRoundBlack",
"noteShapeRoundWhite",
"noteShapeSquareBlack",
"noteShapeSquareWhite",
"noteShapeTriangleLeftBlack",
"noteShapeTriangleLeftWhite",
"noteShapeTriangleRightBlack",
"noteShapeTriangleRightWhite",
"noteShapeTriangleRoundBlack",
"noteShapeTriangleRoundWhite",
"noteShapeTriangleUpBlack",
"noteShapeTriangleUpWhite",
"noteSiBlack",
"noteSiHalf",
"noteSiWhole",
"noteSoBlack",
"noteSoHalf",
"noteSoWhole",
"noteTiBlack",
"noteTiHalf",
"noteTiWhole",
"noteWhole",
"noteheadBlack",
"noteheadCircleSlash",
"noteheadCircleX",
"noteheadCircleXDoubleWhole",
"noteheadCircleXHalf",
"noteheadCircleXWhole",
"noteheadCircledBlack",
"noteheadCircledDoubleWhole",
"noteheadCircledHalf",
"noteheadCircledWhole",
"noteheadClusterDoubleWhole2nd",
"noteheadClusterDoubleWhole3rd",
"noteheadClusterDoubleWholeBottom",
"noteheadClusterDoubleWholeMiddle",
"noteheadClusterDoubleWholeTop",
"noteheadClusterHalf2nd",
"noteheadClusterHalf3rd",
"noteheadClusterHalfBottom",
"noteheadClusterHalfMiddle",
"noteheadClusterHalfTop",
"noteheadClusterQuarter2nd",
"noteheadClusterQuarter3rd",
"noteheadClusterQuarterBottom",
"noteheadClusterQuarterMiddle",
"noteheadClusterQuarterTop",
"noteheadClusterRoundBlack",
"noteheadClusterRoundWhite",
"noteheadClusterSquareBlack",
"noteheadClusterSquareWhite",
"noteheadClusterWhole2nd",
"noteheadClusterWhole3rd",
"noteheadClusterWholeBottom",
"noteheadClusterWholeMiddle",
"noteheadClusterWholeTop",
"noteheadDiamondBlack",
"noteheadDiamondBlackOld",
"noteheadDiamondClusterBlack2nd",
"noteheadDiamondClusterBlack3rd",
"noteheadDiamondClusterBlackBottom",
"noteheadDiamondClusterBlackMiddle",
"noteheadDiamondClusterBlackTop",
"noteheadDiamondClusterWhite2nd",
"noteheadDiamondClusterWhite3rd",
"noteheadDiamondClusterWhiteBottom",
"noteheadDiamondClusterWhiteMiddle",
"noteheadDiamondClusterWhiteTop",
"noteheadDiamondDoubleWhole",
"noteheadDiamondDoubleWholeOld",
"noteheadDiamondHalf",
"noteheadDiamondHalfFilled",
"noteheadDiamondHalfOld",
"noteheadDiamondWhole",
"noteheadDiamondWholeOld",
"noteheadDoubleWhole",
"noteheadDoubleWholeWithX",
"noteheadHalf",
"noteheadHalfWithX",
"noteheadHeavyX",
"noteheadHeavyXHat",
"noteheadLargeArrowDownBlack",
"noteheadLargeArrowDownDoubleWhole",
"noteheadLargeArrowDownHalf",
"noteheadLargeArrowDownWhole",
"noteheadLargeArrowUpBlack",
"noteheadLargeArrowUpDoubleWhole",
"noteheadLargeArrowUpHalf",
"noteheadLargeArrowUpWhole",
"noteheadMoonBlack",
"noteheadMoonWhite",
"noteheadNull",
"noteheadParenthesis",
"noteheadParenthesisLeft",
"noteheadParenthesisRight",
"noteheadPlusBlack",
"noteheadPlusDoubleWhole",
"noteheadPlusHalf",
"noteheadPlusWhole",
"noteheadRoundBlack",
"noteheadRoundBlackLarge",
"noteheadRoundBlackSlashed",
"noteheadRoundBlackSlashedLarge",
"noteheadRoundWhite",
"noteheadRoundWhiteLarge",
"noteheadRoundWhiteSlashed",
"noteheadRoundWhiteSlashedLarge",
"noteheadRoundWhiteWithDot",
"noteheadRoundWhiteWithDotLarge",
"noteheadSlashDiamondWhite",
"noteheadSlashHorizontalEnds",
"noteheadSlashHorizontalEndsMuted",
"noteheadSlashVerticalEnds",
"noteheadSlashVerticalEndsMuted",
"noteheadSlashVerticalEndsSmall",
"noteheadSlashWhite",
"noteheadSlashWhiteMuted",
"noteheadSlashX",
"noteheadSlashedBlack1",
"noteheadSlashedBlack2",
"noteheadSlashedDoubleWhole1",
"noteheadSlashedDoubleWhole2",
"noteheadSlashedHalf1",
"noteheadSlashedHalf2",
"noteheadSlashedWhole1",
"noteheadSlashedWhole2",
"noteheadSquareBlack",
"noteheadSquareBlackLarge",
"noteheadSquareBlackWhite",
"noteheadSquareWhite",
"noteheadTriangleDownBlack",
"noteheadTriangleDownDoubleWhole",
"noteheadTriangleDownHalf",
"noteheadTriangleDownWhite",
"noteheadTriangleDownWhole",
"noteheadTriangleLeftBlack",
"noteheadTriangleLeftWhite",
"noteheadTriangleRightBlack",
"noteheadTriangleRightWhite",
"noteheadTriangleRoundDownBlack",
"noteheadTriangleRoundDownWhite",
"noteheadTriangleUpBlack",
"noteheadTriangleUpDoubleWhole",
"noteheadTriangleUpHalf",
"noteheadTriangleUpRightBlack",
"noteheadTriangleUpRightWhite",
"noteheadTriangleUpWhite",
"noteheadTriangleUpWhole",
"noteheadVoidWithX",
"noteheadWhole",
"noteheadWholeWithX",
"noteheadXBlack",
"noteheadXDoubleWhole",
"noteheadXHalf",
"noteheadXOrnate",
"noteheadXWhole",
"ornamentBottomLeftConcaveStroke",
"ornamentBottomLeftConcaveStrokeLarge",
"ornamentBottomLeftConvexStroke",
"ornamentBottomRightConcaveStroke",
"ornamentBottomRightConvexStroke",
"ornamentComma",
"ornamentDoubleObliqueLinesAfterNote",
"ornamentDoubleObliqueLinesBeforeNote",
"ornamentDownCurve",
"ornamentHaydn",
"ornamentHighLeftConcaveStroke",
"ornamentHighLeftConvexStroke",
"ornamentHighRightConcaveStroke",
"ornamentHighRightConvexStroke",
"ornamentHookAfterNote",
"ornamentHookBeforeNote",
"ornamentLeftFacingHalfCircle",
"ornamentLeftFacingHook",
"ornamentLeftPlus",
"ornamentLeftShakeT",
"ornamentLeftVerticalStroke",
"ornamentLeftVerticalStrokeWithCross",
"ornamentLowLeftConcaveStroke",
"ornamentLowLeftConvexStroke",
"ornamentLowRightConcaveStroke",
"ornamentLowRightConvexStroke",
"ornamentMiddleVerticalStroke",
"ornamentMordent",
"ornamentMordentInverted",
"ornamentObliqueLineAfterNote",
"ornamentObliqueLineBeforeNote",
"ornamentObliqueLineHorizAfterNote",
"ornamentObliqueLineHorizBeforeNote",
"ornamentOriscus",
"ornamentPortDeVoixV",
"ornamentPrecompAppoggTrill",
"ornamentPrecompAppoggTrillSuffix",
"ornamentPrecompDescendingSlide",
"ornamentPrecompPortDeVoixMordent",
"ornamentPrecompSlide",
"ornamentPrecompSlideTrillBach",
"ornamentPrecompSlideTrillDAnglebert",
"ornamentPrecompSlideTrillMarpurg",
"ornamentPrecompSlideTrillMuffat",
"ornamentPrecompSlideTrillSuffixMuffat",
"ornamentPrecompTrillSuffixDandrieu",
"ornamentPrecompTurnTrillBach",
"ornamentPrecompTurnTrillDAnglebert",
"ornamentQuilisma",
"ornamentRightFacingHalfCircle",
"ornamentRightFacingHook",
"ornamentRightVerticalStroke",
"ornamentSchleifer",
"ornamentShake3",
"ornamentShakeMuffat1",
"ornamentShortObliqueLineAfterNote",
"ornamentShortObliqueLineBeforeNote",
"ornamentTopLeftConcaveStroke",
"ornamentTopLeftConvexStroke",
"ornamentTopRightConcaveStroke",
"ornamentTopRightConvexStroke",
"ornamentTremblement",
"ornamentTrill",
"ornamentTurn",
"ornamentTurnInverted",
"ornamentTurnSlash",
"ornamentTurnUp",
"ornamentTurnUpS",
"ornamentUpCurve",
"ornamentVerticalLine",
"ornamentZigZagLineNoRightEnd",
"ornamentZigZagLineWithRightEnd",
"ottava",
"ottavaAlta",
"ottavaBassa",
"ottavaBassaBa",
"pendereckiTremolo",
"pictAlmglocken",
"pictAnvil",
"pictBassDrum",
"pictBassDrumOnSide",
"pictBeaterBow",
"pictBeaterBrassMalletsDown",
"pictBeaterBrassMalletsUp",
"pictBeaterDoubleBassDrumDown",
"pictBeaterDoubleBassDrumUp",
"pictBeaterFinger",
"pictBeaterFingernails",
"pictBeaterFist",
"pictBeaterGuiroScraper",
"pictBeaterHammer",
"pictBeaterHand",
"pictBeaterHardBassDrumDown",
"pictBeaterHardBassDrumUp",
"pictBeaterHardGlockenspielDown",
"pictBeaterHardGlockenspielLeft",
"pictBeaterHardGlockenspielRight",
"pictBeaterHardGlockenspielUp",
"pictBeaterHardTimpaniDown",
"pictBeaterHardTimpaniLeft",
"pictBeaterHardTimpaniRight",
"pictBeaterHardTimpaniUp",
"pictBeaterHardXylophoneDown",
"pictBeaterHardXylophoneLeft",
"pictBeaterHardXylophoneRight",
"pictBeaterHardXylophoneUp",
"pictBeaterHardYarnDown",
"pictBeaterHardYarnLeft",
"pictBeaterHardYarnRight",
"pictBeaterHardYarnUp",
"pictBeaterJazzSticksDown",
"pictBeaterJazzSticksUp",
"pictBeaterKnittingNeedle",
"pictBeaterMallet",
"pictBeaterMediumBassDrumDown",
"pictBeaterMediumBassDrumUp",
"pictBeaterMediumTimpaniDown",
"pictBeaterMediumTimpaniLeft",
"pictBeaterMediumTimpaniRight",
"pictBeaterMediumTimpaniUp",
"pictBeaterMediumXylophoneDown",
"pictBeaterMediumXylophoneLeft",
"pictBeaterMediumXylophoneRight",
"pictBeaterMediumXylophoneUp",
"pictBeaterMediumYarnDown",
"pictBeaterMediumYarnLeft",
"pictBeaterMediumYarnRight",
"pictBeaterMediumYarnUp",
"pictBeaterMetalHammer",
"pictBeaterSnareSticksDown",
"pictBeaterSnareSticksUp",
"pictBeaterSoftBassDrumDown",
"pictBeaterSoftBassDrumUp",
"pictBeaterSoftGlockenspielDown",
"pictBeaterSoftGlockenspielLeft",
"pictBeaterSoftGlockenspielRight",
"pictBeaterSoftGlockenspielUp",
"pictBeaterSoftTimpaniDown",
"pictBeaterSoftTimpaniLeft",
"pictBeaterSoftTimpaniRight",
"pictBeaterSoftTimpaniUp",
"pictBeaterSoftXylophone",
"pictBeaterSoftXylophoneDown",
"pictBeaterSoftXylophoneLeft",
"pictBeaterSoftXylophoneRight",
"pictBeaterSoftXylophoneUp",
"pictBeaterSoftYarnDown",
"pictBeaterSoftYarnLeft",
"pictBeaterSoftYarnRight",
"pictBeaterSoftYarnUp",
"pictBeaterSpoonWoodenMallet",
"pictBeaterSuperballDown",
"pictBeaterSuperballLeft",
"pictBeaterSuperballRight",
"pictBeaterSuperballUp",
"pictBeaterTriangleDown",
"pictBeaterTriangleUp",
"pictBeaterWireBrushesDown",
"pictBeaterWireBrushesUp",
"pictBeaterWoodTimpaniDown",
"pictBeaterWoodTimpaniLeft",
"pictBeaterWoodTimpaniRight",
"pictBeaterWoodTimpaniUp",
"pictBeaterWoodXylophoneDown",
"pictBeaterWoodXylophoneLeft",
"pictBeaterWoodXylophoneRight",
"pictBeaterWoodXylophoneUp",
"pictBell",
"pictBellOfCymbal",
"pictBellPlate",
"pictBirdWhistle",
"pictBoardClapper",
"pictBongos",
"pictBrakeDrum",
"pictCabasa",
"pictCannon",
"pictCarHorn",
"pictCastanets",
"pictCastanetsSmithBrindle",
"pictCenter1",
"pictCenter2",
"pictCenter3",
"pictChimes",
"pictChineseCymbal",
"pictChokeCymbal",
"pictClaves",
"pictCoins",
"pictConga",
"pictCowBell",
"pictCowBellBerio",
"pictCrashCymbals",
"pictCrotales",
"pictCymbalTongs",
"pictDamp1",
"pictDamp2",
"pictDamp3",
"pictDamp4",
"pictDrumStick",
"pictDuckCall",
"pictEdgeOfCymbal",
"pictEmptyTrap",
"pictFingerCymbals",
"pictFlexatone",
"pictFootballRatchet",
"pictGlsp",
"pictGlspSmithBrindle",
"pictGobletDrum",
"pictGong",
"pictGongWithButton",
"pictGuiro",
"pictGumHardDown",
"pictGumHardLeft",
"pictGumHardRight",
"pictGumHardUp",
"pictGumMediumDown",
"pictGumMediumLeft",
"pictGumMediumRight",
"pictGumMediumUp",
"pictGumSoftDown",
"pictGumSoftLeft",
"pictGumSoftRight",
"pictGumSoftUp",
"pictHalfOpen1",
"pictHalfOpen2",
"pictHandbell",
"pictHiHat",
"pictHiHatOnStand",
"pictKlaxonHorn",
"pictLionsRoar",
"pictLogDrum",
"pictMar",
"pictMarSmithBrindle",
"pictMaraca",
"pictMaracaSmithBrindle",
"pictMaracas",
"pictMegaphone",
"pictNormalPosition",
"pictOnRim",
"pictOpen",
"pictOpenRimShot",
"pictPistolShot",
"pictPoliceWhistle",
"pictRainstick",
"pictRatchet",
"pictRim1",
"pictRim2",
"pictRim3",
"pictRimShotOnStem",
"pictSandpaperBlocks",
"pictScrapeAroundRim",
"pictScrapeCenterToEdge",
"pictScrapeEdgeToCenter",
"pictSiren",
"pictSistrum",
"pictSizzleCymbal",
"pictSleighBell",
"pictSleighBellSmithBrindle",
"pictSlideBrushOnGong",
"pictSlideWhistle",
"pictSlitDrum",
"pictSnareDrum",
"pictSnareDrumMilitary",
"pictSnareDrumSnaresOff",
"pictStickShot",
"pictSuperball",
"pictSuspendedCymbal",
"pictTabla",
"pictTamTam",
"pictTamTamWithBeater",
"pictTambourine",
"pictTambourineStockhausen",
"pictTempleBlocks",
"pictTenorDrum",
"pictThundersheet",
"pictTimbales",
"pictTimpani",
"pictTomTom",
"pictTriangle",
"pictTubularBells",
"pictVib",
"pictVibSmithBrindle",
"pictVibraslap",
"pictVietnameseHat",
"pictWhip",
"pictWindChimesGlass",
"pictWindMachine",
"pictWindWhistle",
"pictWoodBlock",
"pictWoundHardDown",
"pictWoundHardLeft",
"pictWoundHardRight",
"pictWoundHardUp",
"pictWoundSoftDown",
"pictWoundSoftLeft",
"pictWoundSoftRight",
"pictWoundSoftUp",
"pictXyl",
"pictXylSmithBrindle",
"pluckedBuzzPizzicato",
"pluckedDamp",
"pluckedDampAll",
"pluckedDampOnStem",
"pluckedFingernailFlick",
"pluckedPlectrum",
"pluckedSnapPizzicatoAbove",
"pluckedSnapPizzicatoAboveGerman",
"pluckedSnapPizzicatoBelow",
"pluckedSnapPizzicatoBelowGerman",
"pluckedWithFingernails",
"quindicesima",
"quindicesimaAlta",
"quindicesimaBassa",
"repeat1Bar",
"repeat2Bars",
"repeat4Bars",
"repeatDots",
"rest1024th",
"rest128th",
"rest16th",
"rest256th",
"rest32nd",
"rest512th",
"rest64th",
"rest8th",
"restDoubleWhole",
"restHBar",
"restHBarLeft",
"restHBarRight",
"restHalf",
"restLonga",
"restQuarter",
"restQuarterOld",
"restWhole",
"reversedBrace",
"reversedBracketBottom",
"reversedBracketTop",
"rightRepeat",
"rightRepeatSmall",
"segno",
"segnoJapanese",
"segnoSerpent1",
"segnoSerpent2",
"semipitchedPercussionClef1",
"semipitchedPercussionClef2",
"staff1Line",
"staff2Lines",
"staff3Lines",
"staff4Lines",
"staff5Lines",
"staff6Lines",
"stem",
"stemBowOnBridge",
"stemBowOnTailpiece",
"stemBuzzRoll",
"stemDamp",
"stemMultiphonicsBlack",
"stemMultiphonicsBlackWhite",
"stemMultiphonicsWhite",
"stemPendereckiTremolo",
"stemRimShot",
"stemSprechgesang",
"stemSulPonticello",
"stemSussurando",
"stemSwished",
"stemVibratoPulse",
"stringsBowBehindBridge",
"stringsBowOnBridge",
"stringsBowOnTailpiece",
"stringsChangeBowDirection",
"stringsDownBow",
"stringsFouetté",
"stringsHalfHarmonic",
"stringsHarmonic",
"stringsJeteAbove",
"stringsJeteBelow",
"stringsMuteOff",
"stringsMuteOn",
"stringsOverpressureDownBow",
"stringsOverpressureNoDirection",
"stringsOverpressurePossibileDownBow",
"stringsOverpressurePossibileUpBow",
"stringsOverpressureUpBow",
"stringsThumbPizzicato",
"stringsThumbPosition",
"stringsUpBow",
"stringsVibratoPulse",
"systemDivider",
"systemDividerExtraLong",
"systemDividerLong",
"timeSig0",
"timeSig1",
"timeSig2",
"timeSig3",
"timeSig4",
"timeSig5",
"timeSig6",
"timeSig7",
"timeSig8",
"timeSig9",
"timeSigComma",
"timeSigCommon",
"timeSigCutCommon",
"timeSigEquals",
"timeSigFractionHalf",
"timeSigFractionOneThird",
"timeSigFractionQuarter",
"timeSigFractionThreeQuarters",
"timeSigFractionTwoThirds",
"timeSigFractionalSlash",
"timeSigMinus",
"timeSigMultiply",
"timeSigOpenPenderecki",
"timeSigParensLeft",
"timeSigParensLeftSmall",
"timeSigParensRight",
"timeSigParensRightSmall",
"timeSigPlus",
"timeSigPlusSmall",
"timeSigX",
"tremolo1",
"tremolo2",
"tremolo3",
"tremolo4",
"tremolo5",
"tremoloFingered1",
"tremoloFingered2",
"tremoloFingered3",
"tremoloFingered4",
"tremoloFingered5",
"tripleTongueAbove",
"tripleTongueBelow",
"tuplet0",
"tuplet1",
"tuplet2",
"tuplet3",
"tuplet4",
"tuplet5",
"tuplet6",
"tuplet7",
"tuplet8",
"tuplet9",
"tupletColon",
"unmeasuredTremolo",
"unmeasuredTremoloSimple",
"unpitchedPercussionClef1",
"unpitchedPercussionClef1Alt",
"unpitchedPercussionClef2",
"ventiduesima",
"ventiduesimaAlta",
"ventiduesimaBassa",
"vocalBreathMark",
"vocalMouthClosed",
"vocalMouthOpen",
"vocalMouthPursed",
"vocalMouthSlightlyOpen",
"vocalMouthWideOpen",
"vocalSprechgesang",
"vocalsSussurando",
"wiggleArpeggiatoDown",
"wiggleArpeggiatoDownArrow",
"wiggleArpeggiatoDownSwash",
"wiggleArpeggiatoUp",
"wiggleArpeggiatoUpArrow",
"wiggleArpeggiatoUpSwash",
"wiggleCircular",
"wiggleCircularConstant",
"wiggleCircularEnd",
"wiggleCircularLarge",
"wiggleCircularLarger",
"wiggleCircularLargerStill",
"wiggleCircularLargest",
"wiggleCircularSmall",
"wiggleCircularStart",
"wiggleGlissando",
"wiggleGlissandoGroup1",
"wiggleGlissandoGroup2",
"wiggleGlissandoGroup3",
"wiggleSawtooth",
"wiggleSquaretooth",
"wiggleTrill",
"wiggleTrillFast",
"wiggleTrillFaster",
"wiggleTrillFasterStill",
"wiggleTrillFastest",
"wiggleTrillSlow",
"wiggleTrillSlower",
"wiggleTrillSlowerStill",
"wiggleTrillSlowest",
"wiggleVIbratoLargestSlower",
"wiggleVIbratoMediumSlower",
"wiggleVibrato",
"wiggleVibratoLargeFast",
"wiggleVibratoLargeFaster",
"wiggleVibratoLargeFasterStill",
"wiggleVibratoLargeFastest",
"wiggleVibratoLargeSlow",
"wiggleVibratoLargeSlower",
"wiggleVibratoLargeSlowest",
"wiggleVibratoLargestFast",
"wiggleVibratoLargestFaster",
"wiggleVibratoLargestFasterStill",
"wiggleVibratoLargestFastest",
"wiggleVibratoLargestSlow",
"wiggleVibratoLargestSlowest",
"wiggleVibratoMediumFast",
"wiggleVibratoMediumFaster",
"wiggleVibratoMediumFasterStill",
"wiggleVibratoMediumFastest",
"wiggleVibratoMediumSlow",
"wiggleVibratoMediumSlowest",
"wiggleVibratoSmallFast",
"wiggleVibratoSmallFaster",
"wiggleVibratoSmallFasterStill",
"wiggleVibratoSmallFastest",
"wiggleVibratoSmallSlow",
"wiggleVibratoSmallSlower",
"wiggleVibratoSmallSlowest",
"wiggleVibratoSmallestFast",
"wiggleVibratoSmallestFaster",
"wiggleVibratoSmallestFasterStill",
"wiggleVibratoSmallestFastest",
"wiggleVibratoSmallestSlow",
"wiggleVibratoSmallestSlower",
"wiggleVibratoSmallestSlowest",
"wiggleVibratoStart",
"wiggleVibratoWide",
"wiggleWavy",
"windClosedHole",
"windFlatEmbouchure",
"windHalfClosedHole1",
"windHalfClosedHole2",
"windHalfClosedHole3",
"windLessRelaxedEmbouchure",
"windLessTightEmbouchure",
"windMultiphonicsBlackStem",
"windMultiphonicsBlackWhiteStem",
"windMultiphonicsWhiteStem",
"windOpenHole",
"windReedPositionIn",
"windReedPositionNormal",
"windReedPositionOut",
"windRelaxedEmbouchure",
"windSharpEmbouchure",
"windThreeQuartersClosedHole",
"windTightEmbouchure",
"windTrillKey",
"windVeryRelaxedEmbouchure",
"windVeryTightEmbouchure",
// MuseScore local symbols
"ornamentPrallMordent",
"ornamentUpPrall",
"ornamentUpMordent",
"ornamentPrallDown",
"ornamentDownPrall",
"ornamentDownMordent",
"ornamentPrallUp",
"ornamentLinePrall"
};
//---------------------------------------------------------
// Conversion table of old symbol names (1.3)
// The mapping corresponds to fonts/mscore/glyphnames.json and must be in sync with it
// symNames must be in sync with enum class SymId
//---------------------------------------------------------
struct oldName {
const char* name;
SymId symId;
};
QHash<QString, SymId> Sym::lonhash;
QVector<oldName> oldNames = {
{"rests.0", SymId::restWhole },
{"rests.1", SymId::restHalf },
{"rests.0o", SymId::restWhole }, // whole rest outside staff missing in SMuFL
{"rests.1o", SymId::restHalf }, // half rest outside staff missing in SMuFL
// {"rests.M3", SymId::noSym }, // double longa rest missing in SMuFL
{"rests.M1", SymId::restDoubleWhole },
{"rests.M2", SymId::restLonga },
{"rests.2", SymId::restQuarter },
{"rests.2classical", SymId::restQuarterOld },
{"rests.3", SymId::rest8th },
{"rests.4", SymId::rest16th },
{"rests.5", SymId::rest32nd },
{"rests.6", SymId::rest64th },
{"rests.7", SymId::rest128th },
{"accidentals.sharp", SymId::accidentalSharp },
{"accidentals.sharp.arrowup", SymId::accidentalSharpOneArrowUp },
{"accidentals.sharp.arrowdown", SymId::accidentalSharpOneArrowDown },
// {"accidentals.sharp.arrowboth", SymId::noSym }, // sharp with both arrows missing in SMuFL
{"accidentals.sharp.slashslash.stem", SymId::accidentalQuarterSharp4 },
// {"accidentals.sharp.slashslashslash.stemstem", SymId::noSym }, // sharp with 3 slashes missing in SMULF
// {"accidentals.sharp.slashslashslash.stem", SymId::noSym }, // sharp with 3 slashes - 1 stem missing inSMULF
{"accidentals.sharp.slashslash.stemstemstem", SymId::accidentalThreeQuartersSharp2 },
{"accidentals.natural", SymId::accidentalNatural },
{"accidentals.natural.arrowup", SymId::accidentalNaturalOneArrowUp },
{"accidentals.natural.arrowdown", SymId::accidentalNaturalOneArrowUp },
// {"accidentals.natural.arrowboth", SymId::noSym }, // natural with both arrows missing in SMuFL
{"accidentals.flat", SymId::accidentalFlat },
{"accidentals.flat.arrowup", SymId::accidentalFlatOneArrowUp },
{"accidentals.flat.arrowdown", SymId::accidentalFlatOneArrowDown },
// {"accidentals.flat.arrowboth", SymId::noSym }, // flat with both arrows missing in SMuFL
// {"accidentals.flat.slash", SymId::noSym }, // flat with slash missing in SMuFL
// {"accidentals.flat.slashslash", SymId::noSym }, // flat with 2 slashes missing in SMuFL
{"accidentals.mirroredflat.flat", SymId::accidentalThreeQuartersFlatCouper },
{"accidentals.mirroredflat", SymId::accidentalQuarterFlat4 }, // more than one candidate in SMuFL: first occurring chosen
// {"accidentals.mirroredflat.backslash", SymId::noSym }, // mirrored-slashed flat missing in SMuFL
{"accidentals.flatflat", SymId::accidentalDoubleFlat },
// {"accidentals.flatflat.slash", SymId::noSym }, // slashes double falt missing in SMuFL
{"accidentals.doublesharp", SymId::accidentalDoubleSharp },
{"accidentals.sori", SymId::accidentalSori },
{"accidentals.koron", SymId::accidentalKoron },
{"accidentals.rightparen", SymId::noteheadParenthesisRight }, // SMULF parenth. for note heads used instead
{"accidentals.leftparen", SymId::noteheadParenthesisLeft }, // "
{"arrowheads.open.01", SymId::arrowheadWhiteRight }, // similar, not identical in SMuFL
{"arrowheads.open.0M1", SymId::arrowheadWhiteLeft }, // "
{"arrowheads.open.11", SymId::arrowheadWhiteUp }, // "
{"arrowheads.open.1M1", SymId::arrowheadWhiteDown }, // "
{"arrowheads.close.01", SymId::arrowheadBlackRight },
{"arrowheads.close.0M1", SymId::arrowheadBlackLeft },
{"arrowheads.close.11", SymId::arrowheadBlackUp },
{"arrowheads.close.1M1", SymId::arrowheadBlackDown },
{"dots.dot", SymId::augmentationDot },
{"noteheads.uM2", SymId::mensuralLongaUpRight },
{"noteheads.dM2", SymId::mensuralLongaDownLeft },
{"noteheads.sM1", SymId::noteheadDoubleWhole },
{"noteheads.sM1double", SymId::noteDoubleWholeAlt },
{"noteheads.s0", SymId::noteheadWhole },
{"noteheads.s1", SymId::noteheadHalf },
{"noteheads.s2", SymId::noteheadBlack },
{"noteheads.s0diamond", SymId::noteheadDiamondWhole },
{"noteheads.s1diamond", SymId::noteheadDiamondHalf },
{"noteheads.s2diamond", SymId::noteheadDiamondBlack },
{"noteheads.s0triangle", SymId::noteheadTriangleDownWhole },
{"noteheads.d1triangle", SymId::noteheadTriangleDownHalf },
{"noteheads.u1triangle", SymId::noteheadTriangleDownHalf },
{"noteheads.u2triangle", SymId::noteheadTriangleDownBlack },
{"noteheads.d2triangle", SymId::noteheadTriangleDownBlack },
{"noteheads.s0slash", SymId::noteheadSlashDiamondWhite },
{"noteheads.s1slash", SymId::noteheadSlashWhite },
{"noteheads.s2slash", SymId::noteheadSlashHorizontalEnds },
{"noteheads.s0cross", SymId::noteheadXWhole },
{"noteheads.s1cross", SymId::noteheadXHalf },
{"noteheads.s2cross", SymId::noteheadXBlack },
{"noteheads.s2xcircle", SymId::noteheadCircleX },
// {"noteheads.s0do", SymId::noSym }, // Whole DO triangle up missing in SMuFL
{"noteheads.d1do", SymId::noteShapeTriangleUpWhite },
{"noteheads.u1do", SymId::noteShapeTriangleUpWhite },
{"noteheads.d2do", SymId::noteShapeTriangleUpBlack },
{"noteheads.u2do", SymId::noteShapeTriangleUpBlack },
// {"noteheads.s0re", SymId::noSym }, // Whole moon-shaped RE missing in SMuFL
{"noteheads.u1re", SymId::noteShapeMoonWhite },
{"noteheads.d1re", SymId::noteShapeMoonWhite },
{"noteheads.u2re", SymId::noteShapeMoonBlack },
{"noteheads.d2re", SymId::noteShapeMoonBlack },
// {"noteheads.s0mi", SymId::noSym }, // Whole diamond-shaped MI missing in SMuFL
{"noteheads.s1mi", SymId::noteShapeDiamondWhite },
{"noteheads.s2mi", SymId::noteShapeDiamondBlack },
// {"noteheads.u0fa", SymId::noSym }, // Whole triangle-left shaped (up) FA missing in SMuFL
// {"noteheads.d0fa", SymId::noSym }, // Whole triangle-left shaped (dn) FA missing in SMuFL
{"noteheads.u1fa", SymId::noteheadTriangleUpRightWhite },
{"noteheads.d1fa", SymId::noteShapeTriangleRightWhite },
{"noteheads.u2fa", SymId::noteheadTriangleUpRightBlack },
{"noteheads.d2fa", SymId::noteheadTriangleLeftBlack },
// {"noteheads.s0la", SymId::noSym }, // Whole rectangle shaped LA missing in SMuFL
{"noteheads.s1la", SymId::noteShapeSquareWhite },
{"noteheads.s2la", SymId::noteShapeSquareBlack },
// {"noteheads.s0ti", SymId::noSym }, // Whole rounded-triangle shaped TI missing in SMuFL
{"noteheads.u1ti", SymId::noteShapeTriangleRoundWhite },
{"noteheads.d1ti", SymId::noteShapeTriangleRoundWhite },
{"noteheads.u2ti", SymId::noteShapeTriangleRoundBlack },
{"noteheads.d2ti", SymId::noteShapeTriangleRoundBlack },
// {"noteheads.s0sol", SymId::noSym }, // Whole rounded shaped SOL missing in SMuFL
{"noteheads.s1sol", SymId::noteShapeRoundWhite },
{"noteheads.s2sol", SymId::noteShapeRoundBlack },
{"scripts.ufermata", SymId::fermataAbove },
{"scripts.dfermata", SymId::fermataBelow },
{"scripts.snappizzicato", SymId::pluckedSnapPizzicatoAbove },
{"scripts.ushortfermata", SymId::fermataShortAbove },
{"scripts.dshortfermata", SymId::fermataShortBelow },
{"scripts.ulongfermata", SymId::fermataLongAbove },
{"scripts.dlongfermata", SymId::fermataLongBelow },
{"scripts.uverylongfermata", SymId::fermataVeryLongAbove },
{"scripts.dverylongfermata", SymId::fermataVeryLongBelow },
{"scripts.thumb", SymId::stringsThumbPosition },
{"scripts.sforzato", SymId::articAccent },
// {"scripts.espr", SymId::noSym }, // <> 'espressivo' removed and not present in SMuFL
{"scripts.staccato", SymId::articStaccato },
{"scripts.ustaccatissimo", SymId::articStaccatissimoAbove },
{"scripts.dstaccatissimo", SymId::articStaccatissimoBelow },
{"scripts.tenuto", SymId::articTenuto },
{"scripts.uportato", SymId::articTenutoSlurAbove },
{"scripts.dportato", SymId::articTenutoSlurBelow },
{"scripts.umarcato", SymId::articMarcatoAbove },
{"scripts.dmarcato", SymId::articMarcatoBelow },
{"scripts.open", SymId::brassMuteOpen },
{"scripts.halfopen", SymId::brassMuteHalfClosed }, // CHECK!!!
{"scripts.stopped", SymId::brassMuteClosed },
{"scripts.upbow", SymId::stringsUpBow },
{"scripts.downbow", SymId::stringsDownBow },
{"scripts.reverseturn", SymId::ornamentTurnInverted },
{"scripts.turn", SymId::ornamentTurn },
{"scripts.trill", SymId::ornamentTrill },
{"scripts.upedalheel", SymId::keyboardPedalHeel1 },
{"scripts.dpedalheel", SymId::keyboardPedalHeel2 },
{"scripts.upedaltoe", SymId::keyboardPedalToe1 },
{"scripts.dpedaltoe", SymId::keyboardPedalToe2 },
{"scripts.flageolet", SymId::stringsHarmonic },
{"scripts.segno", SymId::segno },
{"scripts.varsegno", SymId::segnoSerpent1 }, // not identical to SMuFL, but very similar
{"scripts.coda", SymId::coda },
{"scripts.varcoda", SymId::codaSquare },
{"scripts.rcomma", SymId::breathMark },
// {"scripts.lcomma", SymId::noSym }, // reversed breath missing in SMuFL
// {"scripts.rvarcomma", SymId::noSym }, // straight breath missing in SMuFL
// {"scripts.lvarcomma", SymId::noSym }, // reversed straight breath missing in SMuFL
{"scripts.arpeggio", SymId::wiggleArpeggiatoUp },
{"scripts.trill_element", SymId::wiggleTrill },
{"scripts.arpeggio.arrow.M1", SymId::wiggleArpeggiatoDownArrow },
{"scripts.arpeggio.arrow.1", SymId::wiggleArpeggiatoUpArrow },
{"scripts.trilelement", SymId::wiggleTrillFastest },
{"scripts.prall", SymId::ornamentMordent },
{"scripts.mordent", SymId::ornamentMordentInverted },
{"scripts.prallprall", SymId::ornamentTremblement },
{"scripts.prallmordent", SymId::ornamentPrallMordent },
{"scripts.upprall", SymId::ornamentUpPrall },
{"scripts.upmordent", SymId::ornamentUpMordent },
{"scripts.pralldown", SymId::ornamentPrallDown },
{"scripts.downprall", SymId::ornamentDownPrall },
{"scripts.downmordent", SymId::ornamentDownMordent },
{"scripts.prallup", SymId::ornamentPrallUp },
{"scripts.lineprall", SymId::ornamentLinePrall },
{"scripts.schleifer", SymId::ornamentPrecompSlide },
// {"scripts.caesura.straight", SymId::noSym }, // straight ceasura missing in SMuFL
{"scripts.caesura.curved", SymId::caesura },
{"flags.u3", SymId::flag8thUp },
{"flags.u4", SymId::flag16thUp },
{"flags.u5", SymId::flag32ndUp },
{"flags.u6", SymId::flag64thUp },
{"flags.u7", SymId::flag128thUp },
{"flags.d3", SymId::flag8thDown },
{"flags.ugrace", SymId::graceNoteSlashStemUp },
{"flags.dgrace", SymId::graceNoteSlashStemDown },
{"flags.d4", SymId::flag16thDown },
{"flags.d5", SymId::flag32ndDown },
{"flags.d6", SymId::flag16thDown },
{"flags.d7", SymId::flag128thDown },
{"clefs.C", SymId::cClef },
// {"clefs.C_change", SymId::noSym }, // change clefs missing in SMuFL
{"clefs.F", SymId::fClef },
// {"clefs.F_change", SymId::noSym }, // change clefs missing in SMuFL
{"clefs.G", SymId::gClef },
// {"clefs.G_change", SymId::noSym }, // change clefs missing in SMuFL
{"clefs.percussion", SymId::unpitchedPercussionClef1 },
// {"clefs.percussion_change", SymId::noSym }, // change clefs missing in SMuFL
{"clefs.tab", SymId::sixStringTabClef },
// {"clefs.tab_change", SymId::noSym }, // change clefs missing in SMuFL, but fourStringTabclef could be used
{"timesig.C44", SymId::timeSigCommon },
{"timesig.C22", SymId::timeSigCutCommon },
{"pedal.*", SymId::keyboardPedalUp },
// {"pedal.M", SymId::noSym }, // "Ped." components missing in SMuFL
// {"pedal..", SymId::noSym }, // "
// {"pedal.P", SymId::noSym }, // "
// {"pedal.d", SymId::noSym }, // "
// {"pedal.e", SymId::noSym }, // "
{"pedal.Ped", SymId::keyboardPedalPed },
{"brackettips.uright", SymId::bracketTop },
{"brackettips.dright", SymId::bracketBottom },
{"brackettips.uleft", SymId::reversedBracketTop },
{"brackettips.dleft", SymId::reversedBracketBottom },
// {"accordion.accDot", SymId::noSym }, // components for accordion symbols missing in SMuFL
// {"accordion.accFreebase", SymId::noSym }, // "
// {"accordion.accStdbase", SymId::noSym }, // "
// {"accordion.accBayanbase", SymId::noSym }, // "
// {"accordion.accOldEE", SymId::noSym }, // "
// {"accordion.accDiscant", SymId::noSym }, // "
// {"accordion.push", SymId::???? },
// {"accordion.pull", SymId::???? },
// {"space", SymId::noSym }, // punctuation missing in SMuFL?
// {"plus", SymId::noSym }, // "
// {"comma", SymId::noSym }, // "
// {"hyphen", SymId::noSym }, // "
// {"period", SymId::noSym }, // "
{"zero", SymId::timeSig0 },
{"one", SymId::timeSig1 },
{"two", SymId::timeSig2 },
{"three", SymId::timeSig3 },
{"four", SymId::timeSig4 },
{"five", SymId::timeSig5 },
{"six", SymId::timeSig6 },
{"seven", SymId::timeSig7 },
{"eight", SymId::timeSig8 },
{"nine", SymId::timeSig9 },
{"f", SymId::dynamicForte },
{"m", SymId::dynamicMezzo },
{"p", SymId::dynamicPiano },
{"r", SymId::dynamicRinforzando },
{"s", SymId::dynamicSubito },
{"z", SymId::dynamicZ },
{"noteheads.uM2alt", SymId::mensuralLongaUpRight },
{"noteheads.dM2alt", SymId::mensuralLongaDownLeft },
{"noteheads.sM1alt", SymId::mensuralBrevis },
{"timesig.Cdot", SymId::mensuralTempImpProlPerf },
{"timesig.O", SymId::mensuralTempPerfProlImp },
{"timesig.Ocut", SymId::mensuralTempPerfProlImpDimin },
{"timesig.Odot", SymId::mensuralTempPerfProlPerfDimin },
{"clefs.tab2", SymId::sixStringTabClefSerif }
};
//---------------------------------------------------------
// sym2pixmap
//---------------------------------------------------------
QPixmap ScoreFont::sym2pixmap(SymId id, qreal mag)
{
QString string = toString(id);
QRectF bb(bbox(id, mag));
bb.setRect(bb.x() * mag, bb.y() * mag, bb.width() * mag, bb.height() * mag);
bb.adjust(-5, -5, 5, 5);
int w = lrint(bb.width());
int h = lrint(bb.height());
QPixmap pm(w, h);
pm.fill(QColor(0, 0, 0, 0));
QPainter painter;
painter.begin(&pm);
painter.setPen(Qt::black);
draw(id, &painter, mag, -bb.topLeft() + QPointF(2.0, 2.0));
painter.end();
return pm;
}
//---------------------------------------------------------
// draw
//---------------------------------------------------------
void ScoreFont::draw(SymId id, QPainter* painter, qreal mag, const QPointF& pos) const
{
qreal imag = 1.0 / mag;
painter->scale(mag, mag);
painter->setFont(_font);
painter->drawText(pos * imag, toString(id));
painter->scale(imag, imag);
}
void ScoreFont::draw(const QString& s, QPainter* painter, qreal mag, const QPointF& pos) const
{
qreal imag = 1.0 / mag;
painter->scale(mag, mag);
painter->setFont(_font);
painter->drawText(pos * imag, s);
painter->scale(imag, imag);
}
void ScoreFont::draw(SymId id, QPainter* painter, qreal mag, const QPointF& pos, int n) const
{
QString s = toString(id);
QString d;
for (int i = 0; i < n; ++i)
d += s;
qreal imag = 1.0 / mag;
painter->scale(mag, mag);
painter->setFont(_font);
painter->drawText(pos * imag, s);
painter->scale(imag, imag);
}
//---------------------------------------------------------
// symToHtml
// transform symbol into html code suitable
// for QDocument->setHtml()
//---------------------------------------------------------
QString ScoreFont::symToHtml(SymId s, int leftMargin, const TextStyle* ts, qreal _spatium)
{
qreal size;
if (ts) {
size = ts->font(_spatium).pointSizeF();
}
else {
size = _font.pixelSize();
}
QString family = _font.family();
return QString(
"<data>"
"<html>"
"<head>"
"<meta name=\"qrichtext\" content=\"1\" >"
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf8\" />"
"<style type=\"text/css\">"
"p, li { white-space: pre-wrap; }"
"</style>"
"</head>"
"<body style=\" font-family:'%1'; font-size:%2pt;\">"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:%3px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">"
"&#%4;"
"</p>"
"</body>"
"</html>"
"</data>").arg(family).arg(size).arg(leftMargin).arg(toString(s));
}
QString ScoreFont::symToHtml(SymId s1, SymId s2, int leftMargin)
{
qreal size = _font.pixelSize();
QString family = _font.family();
return QString(
"<data>"
"<html>"
"<head>"
"<meta name=\"qrichtext\" content=\"1\" >"
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf8\" />"
"<style type=\"text/css\">"
"p, li { white-space: pre-wrap; }"
"</style>"
"</head>"
"<body style=\" font-family:'%1'; font-size:%2pt;\">"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:%3px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">"
"&#%4;&#%5;"
"</p>"
"</body>"
"</html>"
"</data>").arg(family).arg(size).arg(leftMargin).arg(toString(s1)).arg(toString(s2));
}
//---------------------------------------------------------
// id2name
//---------------------------------------------------------
const char* Sym::id2name(SymId id)
{
return symNames[int(id)];
}
//---------------------------------------------------------
// initScoreFonts
// load default score font
//---------------------------------------------------------
void initScoreFonts()
{
int index = 0;
for (auto i : Sym::symNames)
Sym::lnhash.insert(i, SymId(index++));
ScoreFont::fontFactory("Bravura"); // load reference font
for (oldName i : oldNames)
Sym::lonhash.insert(i.name, SymId(i.symId));
}
//---------------------------------------------------------
// codeToString
//---------------------------------------------------------
static QString codeToString(int code)
{
QString s;
if (code & 0xffff0000) {
s = QChar(QChar::highSurrogate(code));
s += QChar(QChar::lowSurrogate(code));
}
else
s = QChar(code);
return s;
}
//---------------------------------------------------------
// load
//---------------------------------------------------------
void ScoreFont::load()
{
#if !defined(Q_OS_MAC) && !defined(Q_OS_IOS)
if (-1 == QFontDatabase::addApplicationFont(_fontPath + _filename)) {
qDebug("ScoreFont: fatal error: cannot load internal font <%s>", qPrintable(_fontPath + _filename));
if (!QFile(_fontPath + _filename).exists())
qDebug(" file not found");
if (!MScore::debugMode)
exit(-1);
}
#endif
_font.setWeight(QFont::Normal); // if not set we get system default
_font.setItalic(false);
_font.setFamily(_family);
_font.setStyleStrategy(QFont::NoFontMerging);
// horizontal hinting is bad as note hooks do not attach to stems
// properly at some magnifications
_font.setHintingPreference(QFont::PreferVerticalHinting);
qreal size = 20.0 * MScore::DPI / PPI;
_font.setPixelSize(lrint(size));
QFile fi(_fontPath + "glyphnames.json");
if (!fi.open(QIODevice::ReadOnly))
qDebug("ScoreFont: open glyph names file <%s> failed", qPrintable(fi.fileName()));
QJsonParseError error;
QJsonObject o = QJsonDocument::fromJson(fi.readAll(), &error).object();
if (error.error != QJsonParseError::NoError)
qDebug("Json parse error in <%s>: %s", qPrintable(fi.fileName()),
qPrintable(error.errorString()));
_fm = new QFontMetricsF(_font);
for (auto i : o.keys()) {
bool ok;
int code = o.value(i).toObject().value("codepoint").toString().mid(2).toInt(&ok, 16);
if (!ok)
qDebug("codepoint not recognized for glyph %s", qPrintable(i));
if (Sym::lnhash.contains(i)) {
SymId symId = Sym::lnhash.value(i);
Sym* sym = &_symbols[int(symId)];
sym->setString(codeToString(code));
}
else
qDebug("unknown glyph: %s", qPrintable(i));
}
fi.close();
fi.setFileName(_fontPath + "metadata.json");
if (!fi.open(QIODevice::ReadOnly))
qDebug("ScoreFont: open glyph metadata file <%s> failed", qPrintable(fi.fileName()));
o = QJsonDocument::fromJson(fi.readAll(), &error).object();
if (error.error != QJsonParseError::NoError)
qDebug("Json parse error in <%s>: %s", qPrintable(fi.fileName()),
qPrintable(error.errorString()));
QJsonObject oo = o.value("glyphs").toObject();
for (auto i : oo.keys()) {
QJsonObject ooo = oo.value(i).toObject();
SymId symId = Sym::lnhash.value(i, SymId::noSym);
if (symId == SymId::noSym)
qDebug("ScoreFont: symId not found <%s>", qPrintable(i));
Sym* sym = &_symbols[int(symId)];
for (auto i : ooo.keys()) {
if (i == "stemDownNW") {
//qreal x = ooo.value(i).toArray().at(0).toDouble();
//qreal y = ooo.value(i).toArray().at(1).toDouble();
}
else if (i == "stemUpSE") {
qreal x = ooo.value(i).toArray().at(0).toDouble();
qreal y = ooo.value(i).toArray().at(1).toDouble();
sym->setAttach(QPointF(4.0 * x * MScore::DPI/PPI, 4.0 * -y * MScore::DPI/PPI));
}
}
}
// create missing composed glyphs
struct Composed {
SymId id;
std::vector<SymId> rids;
} composed[] = {
{ SymId::ornamentPrallMordent,
{
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentMiddleVerticalStroke,
SymId::ornamentZigZagLineWithRightEnd
} },
{ SymId::ornamentUpPrall,
{
SymId::ornamentBottomLeftConcaveStroke,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineWithRightEnd
}},
{ SymId::ornamentUpMordent,
{
SymId::ornamentBottomLeftConcaveStroke,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentMiddleVerticalStroke,
SymId::ornamentZigZagLineWithRightEnd
}},
{ SymId::ornamentPrallDown,
{
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentBottomRightConcaveStroke,
}},
{ SymId::ornamentDownPrall,
{
SymId::ornamentLeftVerticalStroke,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineWithRightEnd
}},
{ SymId::ornamentDownMordent,
{
SymId::ornamentLeftVerticalStroke,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentMiddleVerticalStroke,
SymId::ornamentZigZagLineWithRightEnd
}},
{ SymId::ornamentPrallUp,
{
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentTopRightConvexStroke,
}},
{ SymId::ornamentLinePrall,
{
SymId::ornamentLeftVerticalStroke,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineNoRightEnd,
SymId::ornamentZigZagLineWithRightEnd
}}
};
for (const Composed& c : composed) {
if (!_symbols[int(c.id)].isValid()) {
Sym* sym = &_symbols[int(c.id)];
QString s;
for (SymId id : c.rids)
s += _symbols[int(id)].string();
sym->setString(s);
}
}
loaded = true;
}
//---------------------------------------------------------
// fontFactory
//---------------------------------------------------------
ScoreFont* ScoreFont::fontFactory(QString s)
{
ScoreFont* f = 0;
for (ScoreFont& sf : _scoreFonts) {
if (sf.name().toLower() == s.toLower()) { // ignore letter case
f = &sf;
break;
}
}
Q_ASSERT(f);
if (!f->loaded)
f->load();
return f;
}
//---------------------------------------------------------
// sym
// Get symbol for SymId.
// Use font 0 (Bravura) as fallback, if sym does not
// exist.
//---------------------------------------------------------
const Sym& ScoreFont::sym(SymId id) const
{
if (!_symbols[int(id)].isValid() && (this != &_scoreFonts[0]))
return _scoreFonts[0]._symbols[int(id)];
return _symbols[int(id)];
}
//---------------------------------------------------------
// bbox
//---------------------------------------------------------
const QRectF ScoreFont::bbox(SymId id, qreal mag) const
{
QRectF r(_fm->tightBoundingRect(sym(id).string()));
return QRectF(r.x() * mag, r.y() * mag, r.width() * mag, r.height() * mag);
}
const QRectF ScoreFont::bbox(const QString& s, qreal mag) const
{
QRectF r(_fm->tightBoundingRect(s));
return QRectF(r.x() * mag, r.y() * mag, r.width() * mag, r.height() * mag);
}
}