Skip to content

Commit

Permalink
Add: Accessibility Panel - Notehead Scheme option
Browse files Browse the repository at this point in the history
  • Loading branch information
nasehim7 committed Jul 9, 2024
1 parent 2c385bd commit 9199d91
Show file tree
Hide file tree
Showing 14 changed files with 164 additions and 8 deletions.
1 change: 1 addition & 0 deletions src/engraving/api/v1/apitypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,7 @@ enum class NoteHeadScheme {
HEAD_PITCHNAME_GERMAN = int(mu::engraving::NoteHeadScheme::HEAD_PITCHNAME_GERMAN),
HEAD_SOLFEGE = int(mu::engraving::NoteHeadScheme::HEAD_SOLFEGE),
HEAD_SOLFEGE_FIXED = int(mu::engraving::NoteHeadScheme::HEAD_SOLFEGE_FIXED),
HEAD_FIGURE_NOTES_STAGE_3 = int(mu::engraving::NoteHeadScheme::HEAD_FIGURENOTES_STAGE_3),
HEAD_SHAPE_NOTE_4 = int(mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_4),
HEAD_SHAPE_NOTE_7_AIKIN = int(mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_7_AIKIN),
HEAD_SHAPE_NOTE_7_FUNK = int(mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_7_FUNK),
Expand Down
60 changes: 58 additions & 2 deletions src/engraving/dom/note.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@ SymId Note::noteHead(int direction, NoteHeadGroup group, NoteHeadType t)
return noteHeads[direction][int(group)][int(t)];
}

SymId Note::noteHead(int direction, NoteHeadGroup group, NoteHeadType t, int tpc, Key key, NoteHeadScheme scheme)
SymId Note::noteHead(int direction, NoteHeadGroup group, NoteHeadType t, int tpc, Key key, NoteHeadScheme scheme, int octave)
{
// shortcut
if (scheme == NoteHeadScheme::HEAD_NORMAL) {
Expand Down Expand Up @@ -533,7 +533,22 @@ SymId Note::noteHead(int direction, NoteHeadGroup group, NoteHeadType t, int tpc
} else if (tpc == Tpc::TPC_B) {
group = NoteHeadGroup::HEAD_TI_NAME;
}
} else if (scheme == NoteHeadScheme::HEAD_FIGURENOTES_STAGE_3) {
if (octave <= 2) {
group = NoteHeadGroup::HEAD_CROSS;
} else if (octave == 3) {
group = NoteHeadGroup::HEAD_LA;
} else if (octave == 4) {
group = NoteHeadGroup::HEAD_NORMAL;
} else if (octave == 5) {
group = NoteHeadGroup::HEAD_TRIANGLE_UP;
} else if (octave == 6) {
group = NoteHeadGroup::HEAD_DIAMOND_OLD;
} else {
group = NoteHeadGroup::HEAD_SLASH;
}
}

return noteHeads[direction][int(group)][int(t)];
}

Expand Down Expand Up @@ -967,6 +982,7 @@ SymId Note::noteHead() const

Key key = Key::C;
NoteHeadScheme scheme = m_headScheme;
NoteHeadScheme accessibleScheme = style().value(Sid::accessibleNoteHead).value<NoteHeadScheme>();
if (st) {
Fraction tick = chord()->tick();
if (tick >= Fraction(0, 1)) {
Expand All @@ -976,10 +992,15 @@ SymId Note::noteHead() const
}
}
}

if (scheme == NoteHeadScheme::HEAD_AUTO) {
scheme = accessibleScheme;
}

if (scheme == NoteHeadScheme::HEAD_AUTO) {
scheme = NoteHeadScheme::HEAD_NORMAL;
}
SymId t = noteHead(up, headGroup, ht, tpc(), key, scheme);
SymId t = noteHead(up, headGroup, ht, tpc(), key, scheme, octave());
if (t == SymId::noSym) {
LOGD("invalid notehead %d/%d", int(headGroup), int(ht));
t = noteHead(up, NoteHeadGroup::HEAD_NORMAL, ht);
Expand Down Expand Up @@ -2843,6 +2864,41 @@ void Note::localSpatiumChanged(double oldValue, double newValue)
}
}

//---------------------------------------------------------
// color
//---------------------------------------------------------
/*
Color Note::color() const
{
NoteHeadScheme scheme = m_headScheme;
if (scheme == NoteHeadScheme::HEAD_FIGURENOTES_STAGE_3) {
int pitchClass = m_pitch % 12;
switch (pitchClass) {
case 0:
case 1:
return Color::RED;
case 2:
case 3:
return Color::BROWN;
case 4:
return Color::GREY;
case 5:
case 6:
return Color::BLUE;
case 7:
case 8:
return Color::BLACK;
case 9:
case 10:
return Color::YELLOW;
case 11:
return Color::GREEN;
}
}
return Color::BLACK;
}
*/

//---------------------------------------------------------
// getProperty
//---------------------------------------------------------
Expand Down
5 changes: 3 additions & 2 deletions src/engraving/dom/note.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ static const int INVALID_LINE = -10000;
// @P elements array[EngravingItem] list of elements attached to notehead
// @P fret int fret number in tablature
// @P ghost bool ghost note (guitar: death note)
// @P headScheme enum (NoteHeadScheme.HEAD_AUTO, .HEAD_NORMAL, .HEAD_PITCHNAME, .HEAD_PITCHNAME_GERMAN, .HEAD_SHAPE_NOTE_4, .HEAD_SHAPE_NOTE_7_AIKIN, .HEAD_SHAPE_NOTE_7_FUNK, .HEAD_SHAPE_NOTE_7_WALKER, .HEAD_SOLFEGE, .HEAD_SOLFEGE_FIXED)
// @P headScheme enum (NoteHeadScheme.HEAD_AUTO, .HEAD_NORMAL, .HEAD_PITCHNAME, .HEAD_PITCHNAME_GERMAN, .HEAD_SHAPE_NOTE_4, .HEAD_SHAPE_NOTE_7_AIKIN, .HEAD_SHAPE_NOTE_7_FUNK, .HEAD_SHAPE_NOTE_7_WALKER, .HEAD_SOLFEGE, .HEAD_SOLFEGE_FIXED, .HEAD_FIGURENOTES_STAGE_3)
// @P headGroup enum (NoteHeadGroup.HEAD_NORMAL, .HEAD_BREVIS_ALT, .HEAD_CROSS, .HEAD_DIAMOND, .HEAD_DO, .HEAD_FA, .HEAD_LA, .HEAD_MI, .HEAD_RE, .HEAD_SLASH, .HEAD_LARGE_DIAMOND, .HEAD_SOL, .HEAD_TI, .HEAD_XCIRCLE, .HEAD_TRIANGLE)
// @P headType enum (NoteHeadType.HEAD_AUTO, .HEAD_BREVIS, .HEAD_HALF, .HEAD_QUARTER, .HEAD_WHOLE)
// @P hidden bool hidden, not played note (read only)
Expand Down Expand Up @@ -381,6 +381,7 @@ class Note final : public EngravingItem
void transposeDiatonic(int interval, bool keepAlterations, bool useDoubleAccidentals);

void localSpatiumChanged(double oldValue, double newValue) override;
// Color color() const override;
PropertyValue getProperty(Pid propertyId) const override;
bool setProperty(Pid propertyId, const PropertyValue&) override;
PropertyValue propertyDefault(Pid) const override;
Expand All @@ -393,7 +394,7 @@ class Note final : public EngravingItem
void setHeadHasParentheses(bool hasParentheses, bool addToLinked = true, bool generated = false);
bool headHasParentheses() const { return m_hasHeadParentheses; }

static SymId noteHead(int direction, NoteHeadGroup, NoteHeadType, int tpc, Key key, NoteHeadScheme scheme);
static SymId noteHead(int direction, NoteHeadGroup, NoteHeadType, int tpc, Key key, NoteHeadScheme scheme, int octave);
static SymId noteHead(int direction, NoteHeadGroup, NoteHeadType);
NoteVal noteVal() const;

Expand Down
2 changes: 1 addition & 1 deletion src/engraving/dom/property.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ static constexpr PropertyMetaData propertyList[] = {
{ Pid::STAFF_INVISIBLE, false, "", P_TYPE::BOOL, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "invisible") },
{ Pid::STAFF_COLOR, false, "color", P_TYPE::COLOR, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "color") },

{ Pid::HEAD_SCHEME, false, "headScheme", P_TYPE::NOTEHEAD_SCHEME, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "notehead scheme") },
{ Pid::HEAD_SCHEME, false, "headScheme", P_TYPE::NOTEHEAD_SCHEME, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "notehead scheme") },
{ Pid::STAFF_GEN_CLEF, false, "", P_TYPE::BOOL, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "generating clefs") },
{ Pid::STAFF_GEN_TIMESIG, false, "", P_TYPE::BOOL, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "generating time signature") },
{ Pid::STAFF_GEN_KEYSIG, false, "", P_TYPE::BOOL, PropertyGroup::APPEARANCE, DUMMY_QT_TR_NOOP("propertyName", "generating key signature") },
Expand Down
2 changes: 1 addition & 1 deletion src/engraving/dom/stafftype.h
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ class StaffType
bool m_genKeysig = true; // create key signature at beginning of system

// Standard: configurable properties
NoteHeadScheme m_noteHeadScheme = NoteHeadScheme::HEAD_NORMAL;
NoteHeadScheme m_noteHeadScheme = NoteHeadScheme::HEAD_AUTO;

// TAB: configurable propertiesm
double m_durationFontSize = 15.0; // the size (in points) for the duration symbol font
Expand Down
3 changes: 2 additions & 1 deletion src/engraving/style/styledef.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1679,5 +1679,6 @@ const std::array<StyleDef::StyleValue, size_t(Sid::STYLES)> StyleDef::styleValue
{ Sid::dummyMusicalSymbolsScale, "dummyMusicalSymbolsScale", 1.0 },

{ Sid::autoplaceEnabled, "autoplaceEnabled", true },
{ Sid::defaultsVersion, "defaultsVersion", Constants::MSC_VERSION }
{ Sid::defaultsVersion, "defaultsVersion", Constants::MSC_VERSION },
{ Sid::accessibleNoteHead, "accessibleNoteHead", PropertyValue::fromValue(NoteHeadScheme::HEAD_AUTO) }
} };
2 changes: 2 additions & 0 deletions src/engraving/style/styledef.h
Original file line number Diff line number Diff line change
Expand Up @@ -1688,6 +1688,8 @@ enum class Sid {
autoplaceEnabled,
defaultsVersion,

accessibleNoteHead,

STYLES
///\}
};
Expand Down
1 change: 1 addition & 0 deletions src/engraving/types/types.h
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,7 @@ enum class NoteHeadScheme : signed char {
HEAD_PITCHNAME_GERMAN,
HEAD_SOLFEGE,
HEAD_SOLFEGE_FIXED,
HEAD_FIGURENOTES_STAGE_3,
HEAD_SHAPE_NOTE_4,
HEAD_SHAPE_NOTE_7_AIKIN,
HEAD_SHAPE_NOTE_7_FUNK,
Expand Down
1 change: 1 addition & 0 deletions src/engraving/types/typesconv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -534,6 +534,7 @@ static const std::vector<Item<NoteHeadScheme> > NOTEHEAD_SCHEMES = {
{ NoteHeadScheme::HEAD_PITCHNAME_GERMAN, "name-pitch-german", muse::TranslatableString("engraving/noteheadscheme", "German pitch names") },
{ NoteHeadScheme::HEAD_SOLFEGE, "solfege-movable", muse::TranslatableString("engraving/noteheadscheme", "Solf\u00e8ge movable Do") }, // &egrave;
{ NoteHeadScheme::HEAD_SOLFEGE_FIXED, "solfege-fixed", muse::TranslatableString("engraving/noteheadscheme", "Solf\u00e8ge fixed Do") }, // &egrave;
{ NoteHeadScheme::HEAD_FIGURENOTES_STAGE_3, "figure-notes-stage-3", muse::TranslatableString("engraving/noteheadscheme", "Figurenotes (stage 3)") },
{ NoteHeadScheme::HEAD_SHAPE_NOTE_4, "shape-4", muse::TranslatableString("engraving/noteheadscheme", "4-shape (Walker)") },
{ NoteHeadScheme::HEAD_SHAPE_NOTE_7_AIKIN, "shape-7-aikin", muse::TranslatableString("engraving/noteheadscheme", "7-shape (Aikin)") },
{ NoteHeadScheme::HEAD_SHAPE_NOTE_7_FUNK, "shape-7-funk", muse::TranslatableString("engraving/noteheadscheme", "7-shape (Funk)") },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,7 @@ QVariantList NoteheadSettingsModel::possibleHeadSystemTypes() const
{ mu::engraving::NoteHeadScheme::HEAD_PITCHNAME_GERMAN, muse::qtrc("inspector", "German pitch names") },
{ mu::engraving::NoteHeadScheme::HEAD_SOLFEGE, muse::qtrc("inspector", "Solfège movable do") },
{ mu::engraving::NoteHeadScheme::HEAD_SOLFEGE_FIXED, muse::qtrc("inspector", "Solfège fixed do") },
{ mu::engraving::NoteHeadScheme::HEAD_FIGURENOTES_STAGE_3, muse::qtrc("inspector", "Figurenotes (stage 3)") },
{ mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_4, muse::qtrc("inspector", "4-shape (Walker)") },
{ mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_7_AIKIN, muse::qtrc("inspector", "7-shape (Aikin)") },
{ mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_7_FUNK, muse::qtrc("inspector", "7-shape (Funk)") },
Expand Down
66 changes: 65 additions & 1 deletion src/inspector/models/score/scoreaccessibilitysettingsmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ ScoreAccessibilitySettingsModel::ScoreAccessibilitySettingsModel(QObject* parent
}
});

connect(m_accessibleNoteHead, &PropertyItem::valueChanged, this, [this]() {
setAccessibleNoteHead(m_accessibleNoteHead);
});

globalContext()->currentNotation()->style()->styleChanged().onNotify(this, [this]() {
if (!m_ignoreStyleChange && m_scoreStylePreset->value().toInt() != static_cast<int>(mu::engraving::ScoreStylePreset::CUSTOM)) {
m_scoreStylePreset->setValue(static_cast<int>(mu::engraving::ScoreStylePreset::CUSTOM));
Expand All @@ -52,6 +56,11 @@ PropertyItem* ScoreAccessibilitySettingsModel::scoreStylePreset() const
return m_scoreStylePreset;
}

PropertyItem* ScoreAccessibilitySettingsModel::accessibleNoteHead() const
{
return m_accessibleNoteHead;
}

void ScoreAccessibilitySettingsModel::setScoreStylePreset(PropertyItem* preset)
{
m_ignoreStyleChange = true;
Expand All @@ -61,11 +70,21 @@ void ScoreAccessibilitySettingsModel::setScoreStylePreset(PropertyItem* preset)
m_ignoreStyleChange = false;
}

void ScoreAccessibilitySettingsModel::setAccessibleNoteHead(PropertyItem* headSystem)
{
m_accessibleNoteHead = headSystem;
loadAccessibleNoteHead(headSystem);
emit accessibleNoteHeadChanged();
}

void ScoreAccessibilitySettingsModel::createProperties()
{
m_scoreStylePreset = buildPropertyItem(mu::engraving::Pid::SCORE_STYLE_PRESET);
m_accessibleNoteHead = buildPropertyItem(mu::engraving::Pid::HEAD_SCHEME);
m_scoreStylePreset->setDefaultValue(static_cast<int>(mu::engraving::ScoreStylePreset::DEFAULT));
m_scoreStylePreset->setValue(static_cast<int>(mu::engraving::ScoreStylePreset::DEFAULT));
m_accessibleNoteHead->setDefaultValue(static_cast<int>(mu::engraving::NoteHeadScheme::HEAD_AUTO));
m_accessibleNoteHead->setValue(static_cast<int>(mu::engraving::NoteHeadScheme::HEAD_AUTO));
}

void ScoreAccessibilitySettingsModel::requestElements()
Expand All @@ -76,7 +95,8 @@ void ScoreAccessibilitySettingsModel::requestElements()
void ScoreAccessibilitySettingsModel::loadProperties()
{
static PropertyIdSet propertyIdSet {
Pid::SCORE_STYLE_PRESET
Pid::SCORE_STYLE_PRESET,
Pid::HEAD_SCHEME
};

loadProperties(propertyIdSet);
Expand All @@ -87,12 +107,18 @@ void ScoreAccessibilitySettingsModel::loadProperties(const mu::engraving::Proper
if (muse::contains(propertyIdSet, Pid::SCORE_STYLE_PRESET)) {
loadPropertyItem(m_scoreStylePreset);
}

if (muse::contains(propertyIdSet, Pid::HEAD_SCHEME)) {
loadPropertyItem(m_accessibleNoteHead);
}
}

void ScoreAccessibilitySettingsModel::resetProperties()
{
m_scoreStylePreset->resetToDefault();
m_accessibleNoteHead->resetToDefault();
emit scoreStylePresetChanged();
emit accessibleNoteHeadChanged();
}

QVariantList ScoreAccessibilitySettingsModel::possibleScoreStylePreset() const
Expand Down Expand Up @@ -125,6 +151,36 @@ QVariantList ScoreAccessibilitySettingsModel::possibleScoreStylePreset() const
return result;
}

QVariantList ScoreAccessibilitySettingsModel::possibleAccessibleNoteHeadTypes() const
{
QMap<mu::engraving::NoteHeadScheme, QString> types {
{ mu::engraving::NoteHeadScheme::HEAD_AUTO, muse::qtrc("inspector", "Auto") },
{ mu::engraving::NoteHeadScheme::HEAD_NORMAL, muse::qtrc("inspector", "Normal") },
{ mu::engraving::NoteHeadScheme::HEAD_PITCHNAME, muse::qtrc("inspector", "Pitch names") },
{ mu::engraving::NoteHeadScheme::HEAD_PITCHNAME_GERMAN, muse::qtrc("inspector", "German pitch names") },
{ mu::engraving::NoteHeadScheme::HEAD_SOLFEGE, muse::qtrc("inspector", "Solfège movable do") },
{ mu::engraving::NoteHeadScheme::HEAD_SOLFEGE_FIXED, muse::qtrc("inspector", "Solfège fixed do") },
{ mu::engraving::NoteHeadScheme::HEAD_FIGURENOTES_STAGE_3, muse::qtrc("inspector", "Figurenotes (stage 3)") },
{ mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_4, muse::qtrc("inspector", "4-shape (Walker)") },
{ mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_7_AIKIN, muse::qtrc("inspector", "7-shape (Aikin)") },
{ mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_7_FUNK, muse::qtrc("inspector", "7-shape (Funk)") },
{ mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_7_WALKER, muse::qtrc("inspector", "7-shape (Walker)") },
};

QVariantList result;

for (mu::engraving::NoteHeadScheme type : types.keys()) {
QVariantMap obj;

obj["text"] = types[type];
obj["value"] = static_cast<int>(type);

result << obj;
}

return result;
}

void ScoreAccessibilitySettingsModel::loadStyle(PropertyItem* preset)
{
int presetValue = preset->value().toInt();
Expand All @@ -148,3 +204,11 @@ void ScoreAccessibilitySettingsModel::loadStyle(PropertyItem* preset)
LOGI() << "filePath is empty";
}
}

void ScoreAccessibilitySettingsModel::loadAccessibleNoteHead(PropertyItem* noteHeadScheme)
{
int schemeValue = noteHeadScheme->value().toInt();
mu::engraving::NoteHeadScheme scheme = static_cast<mu::engraving::NoteHeadScheme>(schemeValue);
globalContext()->currentNotation()->style()->setStyleValue(mu::engraving::Sid::accessibleNoteHead, static_cast<int>(scheme));
emit accessibleNoteHeadChanged();
}
8 changes: 8 additions & 0 deletions src/inspector/models/score/scoreaccessibilitysettingsmodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ class ScoreAccessibilitySettingsModel : public AbstractInspectorModel
Q_OBJECT
INJECT(mu::context::IGlobalContext, globalContext)
Q_PROPERTY(PropertyItem * scoreStylePreset READ scoreStylePreset WRITE setScoreStylePreset NOTIFY scoreStylePresetChanged)
Q_PROPERTY(PropertyItem * accessibleNoteHead READ accessibleNoteHead WRITE setAccessibleNoteHead NOTIFY accessibleNoteHeadChanged)

public:
explicit ScoreAccessibilitySettingsModel(QObject* parent, IElementRepositoryService* repository);
Expand All @@ -44,16 +45,23 @@ class ScoreAccessibilitySettingsModel : public AbstractInspectorModel
void resetProperties() override;

PropertyItem* scoreStylePreset() const;
PropertyItem* accessibleNoteHead() const;
void setScoreStylePreset(PropertyItem* preset);
void setAccessibleNoteHead(PropertyItem* headSystem);
Q_INVOKABLE QVariantList possibleScoreStylePreset() const;
Q_INVOKABLE QVariantList possibleAccessibleNoteHeadTypes() const;
void loadStyle(PropertyItem* preset);
void loadAccessibleNoteHead(PropertyItem* noteHeadScheme);

void loadProperties(const mu::engraving::PropertyIdSet& propertyIdSet);

signals:
void scoreStylePresetChanged();
void accessibleNoteHeadChanged();

private:
PropertyItem* m_scoreStylePreset = nullptr;
PropertyItem* m_accessibleNoteHead = nullptr;
bool m_ignoreStyleChange = false;
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,5 +56,23 @@ InspectorSectionView {
}
}
}

DropdownPropertyView {
id: accessibleNoteHead

titleText: qsTrc("inspector", "Notehead scheme")
propertyItem: root.model ? root.model.accessibleNoteHead : null
visible: true
enabled: true

model: root.model ? root.model.possibleAccessibleNoteHeadTypes() : []

Connections {
target: root.model
onAccessibleNoteHeadChanged: {
accessibleNoteHead.model = root.model ? root.model.possibleAccessibleNoteHeadTypes() : [];
}
}
}
}
}
2 changes: 2 additions & 0 deletions src/notation/view/widgets/editstafftype.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,13 @@ using namespace muse::ui;
//---------------------------------------------------------

mu::engraving::NoteHeadScheme noteHeadSchemes[] = {
mu::engraving::NoteHeadScheme::HEAD_AUTO,
mu::engraving::NoteHeadScheme::HEAD_NORMAL,
mu::engraving::NoteHeadScheme::HEAD_PITCHNAME,
mu::engraving::NoteHeadScheme::HEAD_PITCHNAME_GERMAN,
mu::engraving::NoteHeadScheme::HEAD_SOLFEGE,
mu::engraving::NoteHeadScheme::HEAD_SOLFEGE_FIXED,
mu::engraving::NoteHeadScheme::HEAD_FIGURENOTES_STAGE_3,
mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_4,
mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_7_AIKIN,
mu::engraving::NoteHeadScheme::HEAD_SHAPE_NOTE_7_FUNK,
Expand Down

0 comments on commit 9199d91

Please sign in to comment.