Skip to content

Commit

Permalink
Fix #306189: Extend Tremolo palette
Browse files Browse the repository at this point in the history
to allow for "Divide measured tremolo by [2-4.6]", `tremoloDivisiDots[2-4,6]`, implemented as articulations, actually even as staccatos, but (currently) without any playback effect on tremolos (as 'normal' staccatos don't work on those either).
  • Loading branch information
Jojo-Schmitz committed Dec 13, 2021
1 parent 27bed32 commit ee93ede
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 8 deletions.
14 changes: 13 additions & 1 deletion src/engraving/libmscore/articulation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,12 @@ Articulation::AnchorGroup Articulation::anchorGroup(SymId symId)
case SymId::luteFingeringRHThird:
return AnchorGroup::LUTE_FINGERING;

case SymId::tremoloDivisiDots2:
case SymId::tremoloDivisiDots3:
case SymId::tremoloDivisiDots4:
case SymId::tremoloDivisiDots6:
return AnchorGroup::ARTICULATION;

default:
break;
}
Expand All @@ -459,6 +465,10 @@ const char* Articulation::symId2ArticulationName(SymId symId)

case SymId::articStaccatoAbove:
case SymId::articStaccatoBelow:
case SymId::tremoloDivisiDots2:
case SymId::tremoloDivisiDots3:
case SymId::tremoloDivisiDots4:
case SymId::tremoloDivisiDots6:
return "staccato";

case SymId::articAccentStaccatoAbove:
Expand Down Expand Up @@ -597,7 +607,9 @@ bool Articulation::isStaccato() const
{
return _symId == SymId::articStaccatoAbove || _symId == SymId::articStaccatoBelow
|| _symId == SymId::articMarcatoStaccatoAbove || _symId == SymId::articMarcatoStaccatoBelow
|| _symId == SymId::articAccentStaccatoAbove || _symId == SymId::articAccentStaccatoBelow;
|| _symId == SymId::articAccentStaccatoAbove || _symId == SymId::articAccentStaccatoBelow
|| _symId == SymId::tremoloDivisiDots2 || _symId == SymId::tremoloDivisiDots3
|| _symId == SymId::tremoloDivisiDots4 || _symId == SymId::tremoloDivisiDots6;
}

bool Articulation::isAccent() const
Expand Down
8 changes: 4 additions & 4 deletions src/engraving/types/symnames.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5868,10 +5868,10 @@ constexpr const std::array<const char*, size_t(SymId::lastSym) + 1> SymNames::s_
"Combining tremolo 3",
"Combining tremolo 4",
"Combining tremolo 5",
"Divide measured tremolo by 2",
"Divide measured tremolo by 3",
"Divide measured tremolo by 4",
"Divide measured tremolo by 6",
QT_TRANSLATE_NOOP("symUserNames", "Divide measured tremolo by 2"),
QT_TRANSLATE_NOOP("symUserNames", "Divide measured tremolo by 3"),
QT_TRANSLATE_NOOP("symUserNames", "Divide measured tremolo by 4"),
QT_TRANSLATE_NOOP("symUserNames", "Divide measured tremolo by 6"),
"Fingered tremolo 1",
"Fingered tremolo 2",
"Fingered tremolo 3",
Expand Down
18 changes: 15 additions & 3 deletions src/palette/internal/palettecreator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,19 @@ PalettePtr PaletteCreator::newTremoloPalette()
tremolo->setTremoloType(TremoloType(i));
sp->appendElement(tremolo, tremolo->subtypeName());
}

static const SymIdList dots {
SymId::tremoloDivisiDots2,
SymId::tremoloDivisiDots3,
SymId::tremoloDivisiDots4,
SymId::tremoloDivisiDots6
};
// include additional symbol-based tremolo articulations, implemented as articulations
for (auto i : dots) {
auto s = Factory::makeArticulation(gpaletteScore->dummy()->chord());
s->setSymId(i);
sp->appendElement(s, s->userName());
}
return sp;
}

Expand Down Expand Up @@ -551,6 +564,7 @@ PalettePtr PaletteCreator::newArticulationsPalette()
sp->setGridSize(42, 25);
sp->setDrawGrid(true);

// do not include additional symbol-based fingerings (temporarily?) implemented as articulations
static const SymIdList art {
SymId::articAccentAbove,
SymId::articStaccatoAbove,
Expand Down Expand Up @@ -620,7 +634,6 @@ PalettePtr PaletteCreator::newOrnamentsPalette()
sp->setDrawGrid(true);
sp->setVisible(false);

// do not include additional symbol-based fingerings (temporarily?) implemented as articulations
static const SymIdList art {
SymId::ornamentTurnInverted,
SymId::ornamentTurnSlash,
Expand Down Expand Up @@ -655,8 +668,7 @@ PalettePtr PaletteCreator::newAccordionPalette()
sp->setDrawGrid(true);
sp->setVisible(false);

// do not include additional symbol-based fingerings (temporarily?) implemented as articulations
static SymIdList art {
static const SymIdList art {
SymId::accdnCombDot,
SymId::accdnCombLH2RanksEmpty,
SymId::accdnCombLH3RanksEmptySquare,
Expand Down
4 changes: 4 additions & 0 deletions tools/fonttools/smufl2sym-in-trans.json
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,10 @@
"timeSigCut2": null,
"timeSigCut3": null,
"timeSigCutCommon": null,
"tremoloDivisiDots2": null,
"tremoloDivisiDots3": null,
"tremoloDivisiDots4": null,
"tremoloDivisiDots6": null,
"wiggleSawtooth": null,
"wiggleSawtoothWide": null,
"wiggleVibratoLargeFaster": null,
Expand Down

0 comments on commit ee93ede

Please sign in to comment.