MUSX Document Model
Loading...
Searching...
No Matches
Options.h
1/*
2 * Copyright (C) 2025, Robert Patterson
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22#pragma once
23
24#include <string>
25#include <unordered_map>
26#include <vector>
27#include <memory>
28#include <stdexcept>
29
30#include "BaseClasses.h"
31#include "CommonClasses.h"
32 // do not add other dom class dependencies. Use Implementations.h for implementations that need total class access.
33
34namespace music_theory {
35enum class ClefType;
36} // namespace music_theory
37
38namespace musx {
39namespace dom {
40
41namespace others {
42class Staff;
43} // namespace others
44
49namespace options {
50
58public:
60 explicit AccidentalOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
61 : OptionsBase(document, partId, shareMode) {}
62
63 int minOverlap{};
69
70 constexpr static std::string_view XmlNodeName = "accidentalOptions";
72};
73
81public:
83 explicit AlternateNotationOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
84 : OptionsBase(document, partId, shareMode) {}
85
93
94 constexpr static std::string_view XmlNodeName = "alternateNotationOptions";
96};
97
105public:
107 explicit AugmentationDotOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
108 : OptionsBase(document, partId, shareMode) {}
109
126
127 constexpr static std::string_view XmlNodeName = "augmentationDotOptions";
129};
130
161
168class BeamOptions : public OptionsBase {
169public:
171 explicit BeamOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
172 : OptionsBase(document, partId, shareMode) {}
173
176 enum class FlattenStyle
177 {
178 OnEndNotes,
182 };
183
195 bool spanSpace{};
198
199 constexpr static std::string_view XmlNodeName = "beamOptions";
201};
202
209class ChordOptions : public OptionsBase {
210public:
212 explicit ChordOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
213 : OptionsBase(document, partId, shareMode) {}
214
219 enum class ChordAlignment
220 {
221 Left,
222 Center
223 };
224
227 enum class ChordStyle
228 {
229 Standard,
230 European,
231 German,
232 Roman,
233 NashvilleA,
234 NashvilleB,
235 Solfeggio, // xml value is "solfeggio"
236 Scandinavian
237 };
238
239 double fretPercent{};
240 double chordPercent{};
253
254 constexpr static std::string_view XmlNodeName = "chordOptions";
256};
257
262class ClefOptions : public OptionsBase {
263public:
267 using ClefInfo = std::pair<music_theory::ClefType, int>;
268
277 explicit ClefOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
278 : OptionsBase(document, partId, shareMode) {}
279
284 {
285 public:
287
289 char32_t clefChar{};
293 bool isShape{};
295 bool useOwnFont{};
296 std::shared_ptr<FontInfo> font;
297
299 bool isBlank() const;
300
307 ClefInfo calcInfo(const MusxInstance<others::Staff>& currStaff = nullptr) const;
308
309
314
316 };
317
327
331 std::vector<MusxInstance<ClefDef>> clefDefs;
332
337 {
338 MUSX_ASSERT_IF(clefIndex >= clefDefs.size()) {
339 throw std::out_of_range("Clef index " + std::to_string(clefIndex) + " does not exist in document.");
340 }
341 return clefDefs[clefIndex];
342 }
343
347 constexpr static std::string_view XmlNodeName = "clefOptions";
349};
350
387
395class FontOptions : public OptionsBase {
396public:
405 explicit FontOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
406 : OptionsBase(document, partId, shareMode) {}
407
462
468 std::unordered_map<FontType, MusxInstance<FontInfo>> fontOptions;
469
477
485 static MusxInstance<FontInfo> getFontInfo(const DocumentPtr& document, FontType type);
486
490 constexpr static std::string_view XmlNodeName = "fontOptions";
492};
493
501public:
503 explicit GraceNoteOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
504 : OptionsBase(document, partId, shareMode) {}
505
507 int gracePerc{};
512
513 constexpr static std::string_view XmlNodeName = "graceNoteOptions";
515};
516
524public:
526 explicit KeySignatureOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
527 : OptionsBase(document, partId, shareMode) {}
528
529 bool doKeyCancel{};
530 bool doCStart{};
541
542 constexpr static std::string_view XmlNodeName = "keySignatureOptions";
544};
545
575
582class LyricOptions : public OptionsBase {
583public:
585 explicit LyricOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
586 : OptionsBase(document, partId, shareMode) {}
587
590 enum class SmartHyphenStart {
591 Always,
592 Sometimes,
593 Never
594 };
595
599 None,
600 Align
601 };
602
605 enum class AlignJustify {
606 Left,
607 Center,
608 Right
609 };
610
614 LyricRightBottom,
615 HeadRightLyrBaseline,
616 SystemLeft,
617 SystemRight,
618 DotRightLyrBaseline,
619 DurationLyrBaseline
620 };
621
625 DefaultStart,
626 DefaultEnd,
627 SystemStart,
628 SystemEnd,
629 DottedEnd,
630 DurationEnd,
631 OneEntryEnd,
632 ZeroLengthEnd,
633 ZeroOffset
634 };
635
639 Default,
640 WordExt,
641 First,
642 SystemStart
643 };
644
645 char32_t hyphenChar{};
651 std::shared_ptr<FontInfo> altHyphenFont;
661
671
680
681 std::unordered_map<SyllablePosStyleType, std::shared_ptr<SyllablePosStyle>> syllablePosStyles;
682 std::unordered_map<WordExtConnectStyleType, std::shared_ptr<WordExtConnectStyle>> wordExtConnectStyles;
683
684 void integrityCheck(const std::shared_ptr<Base>& ptrToThis) override
685 {
686 this->OptionsBase::integrityCheck(ptrToThis);
687 if (!altHyphenFont) {
688 altHyphenFont = std::make_shared<FontInfo>(getDocument());
689 }
690 if (lyricPunctuationToIgnore.empty()) {
691 lyricPunctuationToIgnore = ",.?!;:'\"“”‘’"; // this default punctuation set is taken from Document Without Libraries
692 }
693 }
694
695 constexpr static std::string_view XmlNodeName = "lyricOptions";
697};
698
705class MiscOptions : public OptionsBase {
706public:
708 explicit MiscOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
709 : OptionsBase(document, partId, shareMode) {}
710
718
719 constexpr static std::string_view XmlNodeName = "miscOptions";
721};
722
730public:
732 explicit MultimeasureRestOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
733 : OptionsBase(document, partId, shareMode) {}
734
738 int numStart{};
744 bool useSymbols{};
746
747 constexpr static std::string_view XmlNodeName = "multimeasureRestOptions";
749};
750
758public:
760 explicit MusicSpacingOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
761 : OptionsBase(document, partId, shareMode) {}
762
766 {
767 None,
769 All
770 };
771
775 {
777 Automatic,
779 };
780
784 {
785 Clear,
786 Ignore,
788 };
789
790 // layoutType appears to be cruft left over from legacy Finale. The only value seems to be "entry".
807 bool usePrinter{};
811 double scalingFactor{};
817
818 constexpr static std::string_view XmlNodeName = "musicSpacingOptions";
820};
821
834{
835public:
837 explicit MusicSymbolOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
838 : OptionsBase(document, partId, shareMode)
839 {
840 }
841
842 char32_t noteheadQuarter{};
843 char32_t noteheadHalf{};
844 char32_t noteheadWhole{};
845 char32_t noteheadDblWhole{};
846 char32_t natural{};
847 char32_t flat{};
848 char32_t sharp{};
849 char32_t dblFlat{};
850 char32_t dblSharp{};
851 char32_t parenNatural{};
852 char32_t parenFlat{};
853 char32_t parenSharp{};
854 char32_t parenDblFlat{};
855 char32_t parenDblSharp{};
856 char32_t chordNatural{};
857 char32_t chordFlat{};
858 char32_t chordSharp{};
859 char32_t chordDblFlat{};
860 char32_t chordDblSharp{};
861 char32_t keySigNatural{};
862 char32_t keySigFlat{};
863 char32_t keySigSharp{};
864 char32_t keySigDblFlat{};
865 char32_t keySigDblSharp{};
866 char32_t restLonga{};
867 char32_t restDblWhole{};
868 char32_t restWhole{};
869 char32_t restHalf{};
870 char32_t restQuarter{};
871 char32_t restEighth{};
872 char32_t rest16th{};
873 char32_t rest32nd{};
874 char32_t rest64th{};
875 char32_t rest128th{};
876 char32_t restDefMeas{};
877 char32_t oneBarRepeat{};
878 char32_t twoBarRepeat{};
879 char32_t slashBar{};
880 char32_t quarterSlash{};
881 char32_t halfSlash{};
882 char32_t wholeSlash{};
883 char32_t dblWholeSlash{};
884 char32_t timeSigPlus{};
885 char32_t timeSigPlusParts{};
886 char32_t timeSigAbrvCommon{};
887 char32_t timeSigAbrvCut{};
890 char32_t augDot{};
891 char32_t forwardRepeatDot{};
892 char32_t backRepeatDot{};
893 char32_t eightVaUp{};
894 char32_t eightVbDown{};
895 char32_t fifteenMaUp{};
896 char32_t fifteenMbDown{};
897 char32_t trillChar{};
898 char32_t wiggleChar{};
899 char32_t flagUp{};
900 char32_t flagDown{};
901 char32_t flag16Up{};
902 char32_t flag16Down{};
903 char32_t flag2Up{};
904 char32_t flag2Down{};
905 char32_t flagStraightUp{};
906 char32_t flagStraightDown{};
907
908 constexpr static std::string_view XmlNodeName = "musicSymbolOptions";
910};
911
920public:
926 {
927 Current,
928 All,
930 PageRange
931 };
932
984
985 // Properties
987 std::shared_ptr<PageFormat> pageFormatScore;
988 std::shared_ptr<PageFormat> pageFormatParts;
990
1004
1012 explicit PageFormatOptions(const DocumentPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
1013 : OptionsBase(document, partId, shareMode) {}
1014
1018 constexpr static std::string_view XmlNodeName = "pageFormatOptions";
1020};
1021
1050
1111
1119public:
1121 explicit SmartShapeOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
1122 : OptionsBase(document, partId, shareMode) {}
1123
1127 {
1128 Automatic,
1129 Over,
1130 Under
1131 };
1132
1136 {
1137 HeadRightTop,
1138 HeadLeftTop,
1139 StemRightTop,
1140 StemLeftTop,
1141 HeadRightBottom,
1142 HeadLeftBottom,
1143 StemRightBottom,
1144 StemLeftBottom,
1145 NoteRightCenter,
1146 NoteLeftCenter,
1147 NoteRightBottom,
1148 NoteLeftBottom,
1149 NoteRightTop,
1150 NoteLeftTop
1151 };
1152
1156 {
1157 OverNoteStart,
1158 OverNoteEnd,
1159 OverStemStart,
1160 OverStemEnd,
1161 UnderNoteStart,
1162 UnderNoteEnd,
1163 UnderStemStart,
1164 UnderStemEnd,
1165 OverMixStemStart,
1166 OverMixStemEnd,
1167 OverStemGrace,
1168 OverStemPrincipal,
1169 UnderStemGrace,
1170 UnderStemPrincipal,
1171 UnderNoteGrace,
1172 UnderStemNotePrincipal,
1173 OverNoteGrace,
1174 OverStemNotePrincipal,
1175 OverBeamStart,
1176 OverBeamEnd,
1177 UnderBeamStart,
1178 UnderBeamEnd,
1179 OverMixFlagStart,
1180 OverFlagStart,
1181 UnderFlagStart,
1182 OverTabNumStart,
1183 OverTabNumEnd,
1184 UnderTabNumStart,
1185 UnderTabNumEnd
1186 };
1187
1191 {
1192 DiffLevelPitchUpLineStart,
1193 DiffLevelPitchUpLineEnd,
1194 DiffLevelPitchUpSpaceStart,
1195 DiffLevelPitchUpSpaceEnd,
1196 DiffLevelPitchDownLineStart,
1197 DiffLevelPitchDownLineEnd,
1198 DiffLevelPitchDownSpaceStart,
1199 DiffLevelPitchDownSpaceEnd,
1200 SameLevelPitchUpLineStart,
1201 SameLevelPitchUpLineEnd,
1202 SameLevelPitchUpSpaceStart,
1203 SameLevelPitchUpSpaceEnd,
1204 SameLevelPitchDownLineStart,
1205 SameLevelPitchDownLineEnd,
1206 SameLevelPitchDownSpaceStart,
1207 SameLevelPitchDownSpaceEnd,
1208 SameLevelPitchSameStart,
1209 SameLevelPitchSameEnd
1210 };
1211
1215 {
1216 DefaultStart,
1217 DefaultEnd
1218 };
1219
1223 {
1224 NoteStart,
1225 StaffEnd,
1226 StaffStart,
1227 NoteEnd,
1228 StaffToTopLineStart,
1229 StaffFromTopLineEnd,
1230 StaffEndOffset,
1231 StaffFromTopEndOffset
1232 };
1233
1237 {
1238 ShortSpan,
1239 MediumSpan,
1240 LongSpan,
1241 ExtraLongSpan
1242 };
1243
1285
1294
1303
1304 std::unordered_map<SlurConnectStyleType, std::shared_ptr<ConnectionStyle>> slurConnectStyles;
1305 std::unordered_map<SlurControlStyleType, std::shared_ptr<ControlStyle>> slurControlStyles;
1306 std::unordered_map<TabSlideConnectStyleType, std::shared_ptr<ConnectionStyle>> tabSlideConnectStyles;
1307 std::unordered_map<GlissandoConnectStyleType, std::shared_ptr<ConnectionStyle>> glissandoConnectStyles;
1308 std::unordered_map<BendCurveConnectStyleType, std::shared_ptr<ConnectionStyle>> bendCurveConnectStyles;
1309
1310 constexpr static std::string_view XmlNodeName = "smartShapeOptions";
1312};
1313
1322
1323public:
1325 explicit StaffOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
1326 : OptionsBase(document, partId, shareMode) {}
1327
1331
1332 std::shared_ptr<NamePositioning> namePos;
1333 std::shared_ptr<NamePositioning> namePosAbbrv;
1334 std::shared_ptr<NamePositioning> groupNameFullPos;
1335 std::shared_ptr<NamePositioning> groupNameAbbrvPos;
1336
1337 constexpr static std::string_view XmlNodeName = "staffOptions";
1339};
1340
1347class StemOptions : public OptionsBase {
1348public:
1350 explicit StemOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
1351 : OptionsBase(document, partId, shareMode) {}
1352
1361
1362 constexpr static std::string_view XmlNodeName = "stemOptions";
1364};
1365
1369{
1370 Sharp,
1371 Flat,
1372 Natural,
1373 DblSharp,
1374 DblFlat
1375};
1376
1386{
1387public:
1389 explicit TextOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
1390 : OptionsBase(document, partId, shareMode)
1391 {
1392 }
1393
1399 {
1400 Left, // default value: leave as first (0) item
1401 Center,
1402 Right
1403 };
1404
1410 {
1411 Top, // default value: leave as first (0) item
1412 Center,
1413 Bottom
1414 };
1415
1418 enum class TextJustify {
1419 Left,
1420 Center,
1421 Right,
1422 Full,
1423 ForcedFull
1424 };
1425
1428 enum class DateFormat
1429 {
1430 Short,
1431 Long,
1432 Abbrev
1433 };
1434
1449
1452 {
1454
1458 std::shared_ptr<FontInfo> symFont;
1459 char32_t symChar{};
1460
1461 void integrityCheck(const std::shared_ptr<Base>& ptrToThis) override
1462 {
1463 this->ContainedClassBase::integrityCheck(ptrToThis);
1464 if (!symFont) {
1465 symFont = std::make_shared<FontInfo>(getDocument(), /*sizeIsPercent*/ true);
1466 symFont->fontSize = 100;
1467 MUSX_INTEGRITY_ERROR("Text options accidental insert information is missing its font information.");
1468 }
1469 }
1470
1472 };
1473
1474 std::unordered_map<AccidentalInsertSymbolType, std::shared_ptr<InsertSymbolInfo>> symbolInserts;
1475
1476 constexpr static std::string_view XmlNodeName = "textOptions";
1478};
1479
1486class TieOptions : public OptionsBase {
1487public:
1489 explicit TieOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
1490 : OptionsBase(document, partId, shareMode) {}
1491
1497 {
1498 None,
1500 };
1501
1507 {
1509 StemReversal,
1511 };
1512
1518 {
1519 Over,
1520 Under,
1522 };
1523
1529 {
1530 None,
1531 Avoid
1532 };
1533
1538 enum class InsetStyle
1539 {
1540 Fixed,
1541 Percent
1542 };
1543
1549 {
1550 OverStartPosInner,
1551 OverEndPosInner,
1552 UnderStartPosInner,
1553 UnderEndPosInner,
1554 OverHighestNoteStartPosOver,
1555 OverHighestNoteEndPosOver,
1556 UnderLowestNoteStartPosUnder,
1557 UnderLowestNoteEndPosUnder,
1558 OverHighestNoteStemStartPosOver,
1559 OverHighestNoteStemEndPosOver,
1560 UnderLowestNoteStemStartPosUnder,
1561 UnderLowestNoteStemEndPosUnder
1562 };
1563
1569 {
1570 ShortSpan,
1571 MediumSpan,
1572 LongSpan,
1573 TieEnds
1574 };
1575
1602
1610
1612 std::unordered_map<ConnectStyleType, std::shared_ptr<ConnectStyle>> tieConnectStyles;
1613
1622
1626 std::shared_ptr<ControlPoint> cp1;
1627 std::shared_ptr<ControlPoint> cp2;
1628
1630 };
1631
1633 std::unordered_map<ControlStyleType, std::shared_ptr<ControlStyle>> tieControlStyles;
1634
1635 constexpr static std::string_view XmlNodeName = "tieOptions";
1637};
1638
1670
1678public:
1680 explicit TupletOptions(const DocumentWeakPtr& document, Cmper partId = 0, ShareMode shareMode = ShareMode::All)
1681 : OptionsBase(document, partId, shareMode) {}
1682
1688 {
1689 Always,
1690 UnbeamedOnly,
1692 };
1693
1702 enum class NumberStyle
1703 {
1704 Nothing,
1705 Number,
1706 UseRatio,
1709 };
1710
1716 {
1717 Manual,
1718 BeamSide,
1719 NoteSide,
1720 Above,
1721 Below
1722 };
1723
1728 enum class BracketStyle
1729 {
1730 Nothing,
1731 Slur,
1732 Bracket
1733 };
1734
1735 bool alwaysFlat{};
1736 bool fullDura{};
1738 bool avoidStaff{};
1746 bool allowHorz{};
1749 bool matchHooks{};
1762
1763 constexpr static std::string_view XmlNodeName = "tupletOptions";
1765};
1766
1767} // namespace options
1768} // namespace dom
1769} // namespace musx
DocumentPtr getDocument() const
Gets a reference to the Document.
Definition BaseClasses.h:108
virtual void integrityCheck(const std::shared_ptr< Base > &ptrToThis)
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition BaseClasses.h:154
ShareMode
Describes how this instance is shared between part and score.
Definition BaseClasses.h:91
Base class for classes that are contained by other classes.
Definition BaseClasses.h:224
ContainedClassBase(const MusxInstance< Base > &parent)
Constructs a ContainedClassBase object.
Definition BaseClasses.h:233
Base class for all "options" types.
Definition BaseClasses.h:261
Options controlling the appearance and positioning of accidentals.
Definition Options.h:57
bool crossLayerPositioning
"Use Cross-Layer Accidental Positioning" (xml node is <useNewAcciPositioning>)
Definition Options.h:65
int minOverlap
"Minimum Vertical Spacing Between Accidentals (Measured in Steps)" (xml node is <overlap>)
Definition Options.h:63
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:70
static const xml::XmlElementArray< AccidentalOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu startMeasureSepar
"Adjustment at Start of Measure"–The sign is reversed in the Finale UI. (xml node is <frontAcciSepar>...
Definition Options.h:66
AccidentalOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:60
Evpu acciNoteSpace
Space between accidentals and notes.
Definition Options.h:67
Evpu acciAcciSpace
Space between accidentals.
Definition Options.h:68
Evpu multiCharSpace
"Space Within Multi-Character Accidentals" (xml node is <bacciAdd>)
Definition Options.h:64
Options controlling the appearance of alternate notation.
Definition Options.h:80
Evpu dWholeSlashLift
LBaseline adjustment for double whole diamond in Evpu.
Definition Options.h:88
Evpu halfSlashLift
Baseline adjustment for half diamond in Evpu.
Definition Options.h:86
static const xml::XmlElementArray< AlternateNotationOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:94
Evpu quartSlashLift
Baseline adjustment for quarter slashes in Evpu.
Definition Options.h:91
Evpu wholeSlashLift
Baseline adjustment for whole diamond in Evpu.
Definition Options.h:87
Evpu quartSlashStemLift
Stem connection value for quarter slashes in Evpu.
Definition Options.h:90
AlternateNotationOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:83
Evpu halfSlashStemLift
Stem connection value for half diamond in Evpu.
Definition Options.h:89
Evpu twoMeasNumLift
Vertical offset for two-bar repeat numbers in Evpu.
Definition Options.h:92
Options controlling the appearance of augmentation dots.
Definition Options.h:104
bool useLegacyFlippedStemPositioning
Use legacy dot positioning on flipped stems.
Definition Options.h:125
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:127
AugmentationDotOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:107
bool adjMultipleVoices
"Adjust Dots for Multiple Voices" (xml node is <doDotDownAdjust>)
Definition Options.h:112
Evpu dotNoteOffset
"Space Between Dot and Note" (xml node is <dotFirstOffset>)
Definition Options.h:113
Evpu dotLift
"Vertical Adjustment of Dot"
Definition Options.h:114
Evpu dotUpFlagOffset
"Horizontal Adjustment for Upstem Flags"
Definition Options.h:110
Evpu dotOffset
"Space Between Dots"
Definition Options.h:111
static const xml::XmlElementArray< AugmentationDotOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Options controlling the appearance of barlines.
Definition Options.h:137
Efix doubleBarlineSpace
Space between double barlines in Efix.
Definition Options.h:153
Efix barlineWidth
Width of thin barlines in Efix.
Definition Options.h:152
Evpu barlineDashOff
Dash space for dashed barlines in Evpu.
Definition Options.h:156
Efix finalBarlineSpace
Space between final barlines in Efix.
Definition Options.h:154
bool drawFinalBarlineOnLastMeas
"Final Barline at End of Piece"
Definition Options.h:146
bool drawLeftBarlineSingleStaff
Left Barlines: "Display on Single Staves".
Definition Options.h:148
Efix thickBarlineWidth
Width of thick barlines in Efix.
Definition Options.h:151
bool drawCloseSystemBarline
"Close Barline at End of Each System"
Definition Options.h:144
bool drawBarlines
"Display All Barlines"
Definition Options.h:143
bool drawDoubleBarlineBeforeKeyChanges
"Double Barline Before Key Changes"
Definition Options.h:147
BarlineOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:140
bool drawLeftBarlineMultipleStaves
Left Barlines: "Display on Multiple Staves".
Definition Options.h:149
bool leftBarlineUsePrevStyle
Left Barlines: "Default Style is Previous Measure's Right Barline".
Definition Options.h:150
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:158
Evpu barlineDashOn
Dash length for dashed barlines in Evpu.
Definition Options.h:155
static const xml::XmlElementArray< BarlineOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool drawCloseFinalBarline
"Close Barline at End of Piece"
Definition Options.h:145
Options controlling the appearance of beams.
Definition Options.h:168
bool extendSecBeamsOverRests
"Extend Secondary Beams Over Rests"
Definition Options.h:196
Evpu beamStubLength
"Broken Beam Length" in Evpu.
Definition Options.h:184
BeamOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:171
Evpu maxFromMiddle
"Maximum Distance from Middle Staff Line" in Evpu. (xml node is <hmBeamTip>)
Definition Options.h:187
bool extendBeamsOverRests
"Extend Beams Over Rests" (xml node is <incEdgeRestsInBeamGroups>)
Definition Options.h:189
FlattenStyle
Beaming style choices for when to flatten beams.
Definition Options.h:177
@ OnExtremeNote
Flatten based on extreme note.
@ OnEndNotes
Flatten based on end notes only (the legacy default)
@ OnStandardNote
Flatten based on standard note.
bool spanSpace
"Allow Primary Beam Within a Space"
Definition Options.h:195
bool incRestsInFourGroups
"Include Rests when Beaming in Group of Four" (xml node is <incRestsInClassicBeams>)
Definition Options.h:190
bool oldFinaleRestBeams
Compatibility setting for legacy Finale files.
Definition Options.h:194
Evpu maxSlope
Maximum slope in Evpu.
Definition Options.h:185
Efix beamWidth
Thickness of beams in Efix.
Definition Options.h:197
bool beamThreeEighthsInCommonTime
"Beam Three Eighth Notes Together Before/After An Eighth Rest"
Definition Options.h:192
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:199
static const xml::XmlElementArray< BeamOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
FlattenStyle beamingStyle
Beaming style.
Definition Options.h:188
Evpu beamSepar
Secondary beam separation in Evpu. This is the distance between the top of one beam to the top of the...
Definition Options.h:186
bool beamFourEighthsInCommonTime
"Beam Four Eighth Notes Together in Common Time"
Definition Options.h:191
bool dispHalfStemsOnRests
"Display Half-Stems for Beamed Rests" (xml node is <doStemStubs>)
Definition Options.h:193
Options controlling chord symbol and fretboard rendering.
Definition Options.h:209
bool italicizeCapoChords
Italicize capo chords.
Definition Options.h:248
Cmper fretStyleId
Fret style identifier.
Definition Options.h:245
ChordOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:212
static const xml::XmlElementArray< ChordOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
double chordPercent
Percent size of chord symbol relative to default. (1.0 is 100%)
Definition Options.h:240
bool chordPlayback
Enable chord symbol playback.
Definition Options.h:252
Evpu chordSharpLift
Vertical offset for sharp chord symbols.
Definition Options.h:241
double fretPercent
Percent size of fretboard relative to default. (1.0 is 100%)
Definition Options.h:239
bool multiFretItemsPerStr
Allow multiple fret items per string.
Definition Options.h:247
ChordStyle chordStyle
Style of chord spelling.
Definition Options.h:250
bool useSimpleChordSpelling
Use simplified chord spelling.
Definition Options.h:251
ChordStyle
Chord spelling style.
Definition Options.h:228
@ Standard
this is the default and may not appear in the xml
bool showFretboards
Display fretboards.
Definition Options.h:244
Cmper fretInstId
Fret instrument identifier.
Definition Options.h:246
ChordAlignment chordAlignment
Horizontal alignment for chord symbols.
Definition Options.h:249
Evpu chordFlatLift
Vertical offset for flat chord symbols.
Definition Options.h:242
ChordAlignment
Horizontal alignment for chord symbols.
Definition Options.h:220
@ Left
this is the default and may not appear in the xml
Evpu chordNaturalLift
Vertical offset for natural chord symbols.
Definition Options.h:243
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:254
Represents a single clef definition.
Definition Options.h:284
Cmper shapeId
Shape ID if the clef is represented as a shape. (xml node is <shapeID>)
Definition Options.h:292
bool isBlank() const
Returns true if this is a blank clef.
Definition Options.cpp:38
MusxInstance< FontInfo > calcFont() const
Calculate the font that applies to this clef, based on the options in ClefDef.
Definition Options.cpp:116
char32_t clefChar
UTF-32 character code for the clef symbol.
Definition Options.h:289
Efix baselineAdjust
Additional baseline adjustment in Efix. (xml node is <baseAdjust>)
Definition Options.h:291
static const xml::XmlElementArray< ClefDef > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool useOwnFont
Indicates if the clef has its own font.
Definition Options.h:295
int middleCPos
Staff position of middle-C for this clef from reference staffline (usually the top)....
Definition Options.h:288
bool isShape
Indicates if the clef is a shape.
Definition Options.h:293
ClefInfo calcInfo(const MusxInstance< others::Staff > &currStaff=nullptr) const
Calculates and returns the clef information.
Definition Options.cpp:49
bool scaleToStaffHeight
Indicates if the shape should scale to staff height.
Definition Options.h:294
std::shared_ptr< FontInfo > font
When useOwnFont is true, this is the clef's font. Otherwise nullptr.
Definition Options.h:296
int staffPosition
Staff position of the clef symbol's baseline, from reference staffline (usually the top)....
Definition Options.h:290
Options for configuring clefs in a musical context.
Definition Options.h:262
Evpu clefBackSepar
Spacing after clef. (xml node is <clefBack>)
Definition Options.h:322
std::pair< music_theory::ClefType, int > ClefInfo
Information about a ClefDef consisting of its clef type and octave transposition. For example,...
Definition Options.h:267
Evpu clefChangeOffset
Offset from next barline for end-of-measure clef changes. (xml node is <endMeasClefPosAdd>).
Definition Options.h:320
Evpu clefTimeSepar
"Extra Space Between Clef and Time Signature" (xml node is <clefTime>)
Definition Options.h:325
int clefChangePercent
Percentage adjustment for end-of-measure clef changes. 100 means no adjustment. (xml node is <endMeas...
Definition Options.h:319
std::vector< MusxInstance< ClefDef > > clefDefs
Vector of clef definitions (ClefDef).
Definition Options.h:331
Evpu clefFrontSepar
Spacing before clef. (xml node is <clefFront>)
Definition Options.h:321
Evpu clefKeySepar
"Extra Space Between Clef and Key Signature" (xml node is <clefKey>)
Definition Options.h:324
ClefOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor.
Definition Options.h:277
ClefIndex defaultClef
Default clef identifier. An index into clefDefs.
Definition Options.h:318
MusxInstance< ClefDef > getClefDef(ClefIndex clefIndex) const
Bounds-checked accessor function for clefDefs.
Definition Options.h:336
bool showClefFirstSystemOnly
"Display Clef Only on First System"
Definition Options.h:323
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:347
bool cautionaryClefChanges
"Display Courtesy Clef a End of Staff System"
Definition Options.h:326
static const xml::XmlElementArray< ClefOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Options controlling the appearance and adjustments of flags.
Definition Options.h:357
FlagOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:360
Evpu secondaryGroupAdj
"Secondary Group Adjust" in Evpu. (xml node is <extra>)
Definition Options.h:382
Efix downHAdj
Horizontal adjustment for downward flags in Efix.
Definition Options.h:365
Efix downHAdj2
Horizontal adjustment for secondary downward flags in Efix.
Definition Options.h:367
Efix downVAdj16
Vertical adjustment for sixteenth downward flags in Efix.
Definition Options.h:378
Efix stDownVAdj
Vertical adjustment for straight downward flags in Efix.
Definition Options.h:380
Efix stDownHAdj
Horizontal adjustment for straight downward flags in Efix.
Definition Options.h:372
Efix downVAdj
Vertical adjustment for downward flags in Efix.
Definition Options.h:374
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:384
Efix upHAdj16
Horizontal adjustment for sixteenth upward flags in Efix.
Definition Options.h:368
Efix upHAdj
Horizontal adjustment for upward flags in Efix.
Definition Options.h:364
Efix downHAdj16
Horizontal adjustment for sixteenth downward flags in Efix.
Definition Options.h:369
Efix stUpVAdj
Vertical adjustment for straight upward flags in Efix.
Definition Options.h:379
Efix stUpHAdj
Horizontal adjustment for straight upward flags in Efix.
Definition Options.h:371
Efix upVAdj16
Vertical adjustment for sixteenth upward flags in Efix.
Definition Options.h:377
Efix upHAdj2
Horizontal adjustment for secondary upward flags in Efix.
Definition Options.h:366
Evpu flagSpacing
"Flag Spacing" in Evpu. (xml node is <separ>)
Definition Options.h:381
Efix eighthFlagHoist
Hoist value for eighth note flags in Efix. (This value is not on Finale's UI page for Flag Options....
Definition Options.h:370
Efix upVAdj
Vertical adjustment for upward flags in Efix.
Definition Options.h:373
Efix downVAdj2
Vertical adjustment for secondary downward flags in Efix.
Definition Options.h:376
bool straightFlags
Whether to use straight flags.
Definition Options.h:363
static const xml::XmlElementArray< FlagOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Efix upVAdj2
Vertical adjustment for secondary upward flags in Efix. (xml node is <upVadj2>: this is probably a ty...
Definition Options.h:375
An unordered map of default font settings for the document.
Definition Options.h:395
MusxInstance< FontInfo > getFontInfo(FontType type) const
get the FontInfo for a particular type
Definition Options.cpp:134
static const xml::XmlElementArray< FontOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::unordered_map< FontType, MusxInstance< FontInfo > > fontOptions
Stores the default fonts for different elements.
Definition Options.h:468
FontType
Types of fonts available for the document.
Definition Options.h:415
@ AltNotSlash
Alternate notation slash font.
@ AltNotNum
Alternate notation number font.
@ BendCurveWhole
Whole bend curve font.
@ MultiMeasRest
Multi-measure rest font.
@ BendCurveFrac
Fractional bend curve font.
@ Ending
Repeat ending number font.
@ SmartShape15ma
15ma smart shape font.
@ SmartShapeWiggle
Wiggle smart shape font.
@ SmartShapeTrill
Trill smart shape font.
@ AbbrvStaffNames
Abbreviated staff names font.
@ TimePlus
Additional time signature symbols font.
@ AbbrvGroupNames
Abbreviated group names font.
@ Articulation
Articulation symbols font.
@ SmartShape15mb
15mb smart shape font.
@ TimePlusParts
Additional time signature parts font.
@ TimeParts
Time signature parts font.
FontOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor.
Definition Options.h:405
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:490
Options controlling the appearance and behavior of grace notes.
Definition Options.h:500
int tabGracePerc
"Tablature Grace Note Size" (%)
Definition Options.h:506
bool slashFlaggedGraceNotes
"Always Slash Flagged Grace Notes"
Definition Options.h:510
Efix graceSlashWidth
Width (thickness) of grace note slashes in Efix.
Definition Options.h:511
static const xml::XmlElementArray< GraceNoteOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu entryOffset
"Grace Note Offset on Entry" in Evpu. (xml node is <graceBackup>)
Definition Options.h:509
GraceNoteOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:503
int gracePerc
"Grace Note Size" (%)
Definition Options.h:507
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:513
Edu playbackDuration
Playback duration for grace notes in Edu.
Definition Options.h:508
Options controlling the appearance and behavior of key signatures.
Definition Options.h:523
static const xml::XmlElementArray< KeySignatureOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:542
bool cautionaryKeyChanges
"Display Courtesy Key Signature at End of Staff System"
Definition Options.h:539
bool doCStart
"In C, Display Naturals at Start of Staff System"
Definition Options.h:530
bool doKeyCancel
"Cancel Outgoing Key Signature"
Definition Options.h:529
Evpu keyBack
"Space After Key Signature"
Definition Options.h:534
Evpu acciAdd
"Space Between Key Signature Accidentals"
Definition Options.h:535
Evpu keyFront
"Space Before Key Signature"
Definition Options.h:532
Evpu keyMid
"Space After Cancelled Key"
Definition Options.h:533
bool simplifyKeyHoldOctave
"Preserve Octave When Simplifying Keys"
Definition Options.h:538
bool redisplayOnModeChange
"Redisplay Key Signature If Only Mode is Changing" (xml node is <doBankDiff>)
Definition Options.h:531
KeySignatureOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:526
bool doKeyCancelBetweenSharpsFlats
"When Switching Between Sharps and Flats"
Definition Options.h:540
bool showKeyFirstSystemOnly
"Show Key Signature Only on First System"
Definition Options.h:536
Evpu keyTimeSepar
"Extra Space Between Key & Time Signatures" (xml node is <keyTime>)
Definition Options.h:537
Options controlling the appearance of line and curve elements.
Definition Options.h:552
bool enclosureRoundCorners
Whether default enclosures have rounded corners.
Definition Options.h:560
Efix enclosureWidth
Default enclosure width in Efix.
Definition Options.h:559
LineCurveOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:555
Evpu legerFrontLength
Front length of leger lines in Evpu.
Definition Options.h:564
Efix legerLineWidth
Width of leger lines in Efix.
Definition Options.h:563
EvpuFloat pathSlurTipWidth
Width of slur tip path in fractional EvpuFloat.
Definition Options.h:570
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:572
Evpu legerBackLength
Back length of leger lines in Evpu.
Definition Options.h:565
double psUlDepth
Depth of PostScript underline in 72 dpi points (fractional).
Definition Options.h:568
static const xml::XmlElementArray< LineCurveOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu restLegerFrontLength
Front length of rest leger lines in Evpu.
Definition Options.h:566
Efix staffLineWidth
Width of staff lines in Efix.
Definition Options.h:562
Efix enclosureCornerRadius
Default rounded corner radius width for enclosures in Efix.
Definition Options.h:561
double psUlWidth
Width of PostScript underline in 72 dpi points (fractional).
Definition Options.h:569
Evpu restLegerBackLength
Back length of rest leger lines in Evpu.
Definition Options.h:567
int bezierStep
Number of steps for Bézier curves.
Definition Options.h:558
Options controlling lyric rendering in the musx file.
Definition Options.h:582
Evpu maxHyphenSeparation
"Maximum Space Between Hyphens"
Definition Options.h:646
static const xml::XmlElementArray< LyricOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
SmartHyphenStart smartHyphenStart
"Smart Hyphen Start"
Definition Options.h:653
bool useSmartHyphens
"Use Smart Hyphens"
Definition Options.h:652
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:695
char32_t hyphenChar
"Hyphen Character"
Definition Options.h:645
bool lyricUseEdgePunctuation
reverse of "Ignore SyllableEdgePunctuation"
Definition Options.h:657
WordExtConnectStyleType
Word extension connection style categories.
Definition Options.h:624
void integrityCheck(const std::shared_ptr< Base > &ptrToThis) override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition Options.h:684
std::string lyricPunctuationToIgnore
If this string is omitted in the xml, the default value is populated in integrityCheck.
Definition Options.h:658
AutoNumberingAlign
Autonumbering type.
Definition Options.h:598
@ None
"Keep with First Syllable in Lyric" (default value)
Evpu wordExtMinLength
"Word Extension Minimum Length"
Definition Options.h:655
Efix wordExtLineWidth
"Word Extension Line Width"
Definition Options.h:660
WordExtConnectIndex
Word extension connection points.
Definition Options.h:613
std::shared_ptr< FontInfo > altHyphenFont
"Alternate Hyphen Font"
Definition Options.h:651
AutoNumberingAlign lyricAutoNumType
"Automatic Lyric Numbers"
Definition Options.h:659
bool useSmartWordExtensions
"Use Smart Word Extensions"
Definition Options.h:649
SmartHyphenStart
When to start hyphenation.
Definition Options.h:590
@ Sometimes
"Only when the first syllable is attached to the second note or later"
bool useAltHyphenFont
"Use Alternate Hyphen Font"
Definition Options.h:650
bool wordExtNeedUnderscore
"Only Create on Lyrics With Underscores"
Definition Options.h:654
Evpu wordExtVertOffset
"Word Extension Vertical Offset from Baseline"
Definition Options.h:647
std::unordered_map< SyllablePosStyleType, std::shared_ptr< SyllablePosStyle > > syllablePosStyles
Syllable positioning styles.
Definition Options.h:681
bool wordExtOffsetToNotehead
"Notehead Alignment: Align to Notehead" (if false: "Stretch to Note Duration")
Definition Options.h:656
Evpu wordExtHorzOffset
"Word Extension Horizontal Offset from Syllable"
Definition Options.h:648
LyricOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor.
Definition Options.h:585
AlignJustify
Horizontal and vertical alignment/justification values.
Definition Options.h:605
SyllablePosStyleType
Lyric syllable position style types.
Definition Options.h:638
@ Default
"Others:" (always on, even though the on member may be false)
std::unordered_map< WordExtConnectStyleType, std::shared_ptr< WordExtConnectStyle > > wordExtConnectStyles
Word extension connection styles.
Definition Options.h:682
Options controlling miscellaneous settings.
Definition Options.h:705
bool showRepeatsForParts
"Show Repeats for Parts"
Definition Options.h:711
bool consolidateRestsAcrossLayers
"Consolidate Rests Across Layers" (xml node is <combineRestsAcrossLayers>)
Definition Options.h:714
MiscOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:708
bool alignMeasureNumbersWithBarlines
"Align Measure Numbers With Barlines" (xml node is <drawMeasureNumbersOverBarlines>)
Definition Options.h:717
bool showActiveLayerOnly
"Show Active Layer Only" (xml node is <showCurrentLayerOnly>)
Definition Options.h:713
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:719
bool keepWrittenOctaveInConcertPitch
"Keep Octave Transposition in Concert Pitch" (xml node is <retainOctaveTransInConcertPitch>)
Definition Options.h:712
static const xml::XmlElementArray< MiscOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu shapeDesignerDashSpace
Shape Designer dash space in Evpu. (xml node is <sdDashOff>)
Definition Options.h:716
Evpu shapeDesignerDashLength
Shape Designer dash length in Evpu. (xml node is <sdDashOn>)
Definition Options.h:715
Options controlling the appearance and behavior of multimeasure rests.
Definition Options.h:729
Evpu endAdjust
End point adjustment for H-bar shape in Evpu.
Definition Options.h:743
bool autoUpdateMmRests
Automatically update multimeasure rests when the user changes these options.
Definition Options.h:745
Evpu symSpacing
Spacing between symbols in Evpu if useSymbols is checkd. (xml node is <spacing>)
Definition Options.h:740
Evpu measWidth
Space allocated per measure in multimeasure rest in Evpu. (xml node is <meaSpace>)
Definition Options.h:735
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:747
Evpu numAdjX
Horizontal adjustment for number in Evpu.
Definition Options.h:741
MultimeasureRestOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:732
int numStart
Value for "Start Number At".
Definition Options.h:738
bool useSymbols
Use character style for rests. (xml node is <useCharRestStyle>)
Definition Options.h:744
static const xml::XmlElementArray< MultimeasureRestOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu startAdjust
Start point adjustment for H-bar shape in Evpu.
Definition Options.h:742
Cmper shapeDef
Cmper of shape for multimeasure rest H-bar.
Definition Options.h:737
Evpu numAdjY
Vertical adjustment for number in Evpu. The Finale UI reverses the sign of this value....
Definition Options.h:736
int useSymsThreshold
Numbers of bars rest below this number use symbols if useSymbols is checked. (xml node is <threshold>...
Definition Options.h:739
Options controlling music spacing.
Definition Options.h:757
Evpu minDistGrace
Minimum distance for grace notes in Evpu.
Definition Options.h:813
bool avoidColNotes
Avoid collisions with notes.
Definition Options.h:795
GraceNoteSpacing graceNoteSpacing
Choice for how to handle grace note spacing. (xml node is <graceNoteManualPositioning>)
Definition Options.h:814
ManualPositioning manualPositioning
Manual positioning choice.
Definition Options.h:804
GraceNoteSpacing
Options for how to handle grace note spacing.
Definition Options.h:775
@ Automatic
Automatically recompute grace note spacing. This activates minDistGrace. (xml value is "recomp")
@ ResetToEntry
Reset to the entry position. (The default.)
@ KeepCurrent
Keep current grace note spacing. (xml value is "keep")
Evpu minWidth
Minimum measure width in Evpu.
Definition Options.h:791
bool avoidColLedgers
Avoid collisions with ledger lines.
Definition Options.h:803
Evpu musFront
Additional spacing before the first note in Evpu. (From Notes & Rests window.)
Definition Options.h:815
double scalingFactor
Scaling factor for spacing.
Definition Options.h:811
ColUnisonsChoice avoidColUnisons
Choice for how to handle collisions with unisons.
Definition Options.h:802
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:818
MusicSpacingOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:760
bool avoidColLyrics
Avoid collisions with lyrics.
Definition Options.h:796
bool useAllottmentTables
Use allotment tables for spacing.
Definition Options.h:808
Evpu defaultAllotment
Default allotment for spacing in Evpu. (This value may not be settable in the Finale UI....
Definition Options.h:812
bool avoidColStems
Avoid collisions with stems.
Definition Options.h:801
Evpu musBack
Additional spacing after the last note in Evpu. (From Notes & Rests window.)
Definition Options.h:816
bool avoidColSeconds
Avoid collisions with seconds.
Definition Options.h:800
ManualPositioning
Options for how to handle manual positioning.
Definition Options.h:784
@ Incorporate
Incorporate manual positioning. (xml value is "incorp")
@ Clear
Clear manual positioning (the default).
bool usePrinter
"Use Fonts & Resolution From Printer" (may be a Windows-only option)
Definition Options.h:807
ColUnisonsChoice
Options for how to handle unisons.
Definition Options.h:766
@ DiffNoteheads
Avoid collisions with unisons that have different noteheads.
@ None
Do not avoid collisions with unisons. (The default.)
Evpu minDistance
Minimum distance between items in Evpu.
Definition Options.h:793
bool ignoreHidden
Ignore hidden notes. (This value is reversed in the Finale UI.)
Definition Options.h:805
static const xml::XmlElementArray< MusicSpacingOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu referenceWidth
Reference width for spacing in Evpu.
Definition Options.h:810
bool avoidColClefs
Avoid collisions with clefs.
Definition Options.h:799
Evpu maxWidth
Maximum measure width in Evpu.
Definition Options.h:792
Edu referenceDuration
Reference duration for spacing in Edu.
Definition Options.h:809
bool interpolateAllotments
Interpolate allotments.
Definition Options.h:806
bool avoidColArtics
Avoid collisions with articulations.
Definition Options.h:798
bool avoidColChords
Avoid collisions with chords.
Definition Options.h:797
Evpu minDistTiedNotes
Minimum distance between tied notes in Evpu.
Definition Options.h:794
Options specifying the charactes for musical symbols.
Definition Options.h:834
char32_t keySigDblFlat
Code point for key signature double flat.
Definition Options.h:864
char32_t chordDblFlat
Code point for chord double flat sign.
Definition Options.h:859
MusicSymbolOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:837
char32_t flag16Down
Code point for 16th note downward flag.
Definition Options.h:902
char32_t flagUp
Code point for upward flag.
Definition Options.h:899
char32_t quarterSlash
Code point for quarter slash.
Definition Options.h:880
char32_t restLonga
Code point for longa rest.
Definition Options.h:866
char32_t slashBar
Code point for slash bar.
Definition Options.h:879
char32_t parenDblFlat
Code point for parenthesized double flat.
Definition Options.h:854
char32_t rest128th
Code point for 128th rest.
Definition Options.h:875
char32_t trillChar
Code point for trill symbol.
Definition Options.h:897
char32_t keySigDblSharp
Code point for key signature double sharp.
Definition Options.h:865
char32_t restDefMeas
Code point for default measure rest.
Definition Options.h:876
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:908
char32_t halfSlash
Code point for half slash.
Definition Options.h:881
char32_t chordDblSharp
Code point for chord double sharp sign.
Definition Options.h:860
char32_t wiggleChar
Code point for wiggle (trill line) symbol.
Definition Options.h:898
char32_t restEighth
Code point for eighth rest.
Definition Options.h:871
char32_t oneBarRepeat
Code point for one-bar repeat.
Definition Options.h:877
char32_t noteheadDblWhole
Code point for double whole notehead.
Definition Options.h:845
char32_t parenNatural
Code point for parenthesized natural.
Definition Options.h:851
char32_t flag2Down
Code point for 32nd note downward flag.
Definition Options.h:904
char32_t flag2Up
Code point for 32nd note upward flag.
Definition Options.h:903
char32_t timeSigPlus
Code point for time signature plus sign.
Definition Options.h:884
char32_t fifteenMaUp
Code point for 15ma (quindicesima) up.
Definition Options.h:895
char32_t parenFlat
Code point for parenthesized flat.
Definition Options.h:852
char32_t parenSharp
Code point for parenthesized sharp.
Definition Options.h:853
char32_t chordSharp
Code point for chord sharp sign.
Definition Options.h:858
char32_t keySigSharp
Code point for key signature sharp.
Definition Options.h:863
char32_t dblFlat
Code point for double flat sign.
Definition Options.h:849
char32_t noteheadQuarter
Code point for quarter notehead.
Definition Options.h:842
char32_t timeSigAbrvCommon
Code point for common time abbreviation.
Definition Options.h:886
char32_t parenDblSharp
Code point for parenthesized double sharp.
Definition Options.h:855
char32_t augDot
Code point for augmentation dot.
Definition Options.h:890
char32_t restHalf
Code point for half rest.
Definition Options.h:869
char32_t backRepeatDot
Code point for backward repeat dot.
Definition Options.h:892
char32_t restWhole
Code point for whole rest.
Definition Options.h:868
char32_t timeSigAbrvCut
Code point for cut time abbreviation.
Definition Options.h:887
char32_t rest16th
Code point for 16th rest.
Definition Options.h:872
char32_t rest32nd
Code point for 32nd rest.
Definition Options.h:873
char32_t timeSigPlusParts
Code point for time signature plus (parts)
Definition Options.h:885
char32_t twoBarRepeat
Code point for two-bar repeat.
Definition Options.h:878
char32_t sharp
Code point for sharp sign.
Definition Options.h:848
char32_t chordFlat
Code point for chord flat sign.
Definition Options.h:857
char32_t eightVaUp
Code point for 8va (ottava) up.
Definition Options.h:893
char32_t noteheadWhole
Code point for whole notehead.
Definition Options.h:844
char32_t restDblWhole
Code point for double whole rest.
Definition Options.h:867
char32_t wholeSlash
Code point for whole slash.
Definition Options.h:882
char32_t dblSharp
Code point for double sharp sign.
Definition Options.h:850
char32_t keySigFlat
Code point for key signature flat.
Definition Options.h:862
char32_t natural
Code point for natural sign.
Definition Options.h:846
static const xml::XmlElementArray< MusicSymbolOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
char32_t noteheadHalf
Code point for half notehead.
Definition Options.h:843
char32_t flat
Code point for flat sign.
Definition Options.h:847
char32_t eightVbDown
Code point for 8vb (ottava) down.
Definition Options.h:894
char32_t dblWholeSlash
Code point for double whole slash.
Definition Options.h:883
char32_t fifteenMbDown
Code point for 15mb (quindicesima) down.
Definition Options.h:896
char32_t timeSigAbrvCommonParts
Code point for common time abbreviation (parts)
Definition Options.h:888
char32_t flagStraightUp
Code point for straight upward flag.
Definition Options.h:905
char32_t timeSigAbrvCutParts
Code point for cut time abbreviation (parts)
Definition Options.h:889
char32_t flag16Up
Code point for 16th note upward flag.
Definition Options.h:901
char32_t flagStraightDown
Code point for straight downward flag.
Definition Options.h:906
char32_t restQuarter
Code point for quarter rest.
Definition Options.h:870
char32_t chordNatural
Code point for chord natural sign.
Definition Options.h:856
char32_t rest64th
Code point for 64th rest.
Definition Options.h:874
char32_t flagDown
Code point for downward flag.
Definition Options.h:900
char32_t forwardRepeatDot
Code point for forward repeat dot.
Definition Options.h:891
char32_t keySigNatural
Code point for key signature natural.
Definition Options.h:861
Represents the format settings for a page.
Definition Options.h:938
Evpu sysMarginTop
System top margin. (Sign reversed in Finale UI.)
Definition Options.h:953
int pagePercent
Page scaling percentage (a value of 100 means no scaling).
Definition Options.h:942
Evpu sysMarginRight
System bottom margin. (Sign reversed in Finale UI.)
Definition Options.h:957
Evpu sysDistanceBetween
Distance between systems. (Sign reversed in Finale UI.)
Definition Options.h:958
Evpu pageHeight
Height of the page.
Definition Options.h:940
Evpu16ths rawStaffHeight
Raw staff height (in 1/16 Evpu units). Note that this is different units than others::StaffSystem::st...
Definition Options.h:944
PageFormat()=default
Default constructor for PageFormat.
bool differentFirstPageMargin
Whether to use the firstPageMarginTop value.
Definition Options.h:965
bool facingPages
Whether to use the right page margin values.
Definition Options.h:963
Evpu rightPageMarginTop
Top margin for the right page. (Sign reversed in Finale UI.)
Definition Options.h:949
Evpu leftPageMarginBottom
Bottom margin for the left page.
Definition Options.h:947
Evpu pageWidth
Width of the page.
Definition Options.h:941
util::Fraction calcSystemScaling() const
Calculates the system scaling as a musx::util::Fraction where 1/1 means no scaling.
Definition Options.h:971
int sysPercent
System scaling percentage (a value of 100 means no scaling).
Definition Options.h:943
Evpu sysMarginLeft
System left margin.
Definition Options.h:954
Evpu sysMarginBottom
Definition Options.h:955
util::Fraction calcPageScaling() const
Calculates the page scaling as a musx::util::Fraction where 1/1 means no scaling.
Definition Options.h:968
Evpu firstPageMarginTop
Top margin for the first page. (Sign reversed in Finale UI.)
Definition Options.h:959
Evpu leftPageMarginLeft
Left margin for the left page.
Definition Options.h:946
Evpu leftPageMarginRight
Right margin for the left page. (Sign reversed in Finale UI.)
Definition Options.h:948
Evpu firstSysMarginLeft
Left margin for the first system.
Definition Options.h:961
Evpu leftPageMarginTop
Top margin for the left page. (Sign reversed in Finale UI.)
Definition Options.h:945
Evpu firstSysMarginTop
Top margin for the first system. (Sign reversed in Finale UI.)
Definition Options.h:960
Evpu rightPageMarginBottom
Bottom margin for the right page.
Definition Options.h:951
static const xml::XmlElementArray< PageFormat > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool differentFirstSysMargin
Whether to use the first system values.
Definition Options.h:964
Evpu rightPageMarginLeft
Left margin for the right page.
Definition Options.h:950
Evpu rightPageMarginRight
Right margin for the right page. (Sign reversed in Finale UI.)
Definition Options.h:952
util::Fraction calcCombinedSystemScaling() const
Calculates the combined system & page scaling as a musx::util::Fraction where 1/1 means no scaling.
Definition Options.h:975
Evpu firstSysMarginDistance
Distance between the first systems. (Sign reversed in Finale UI.)
Definition Options.h:962
Options for page formatting in the document.
Definition Options.h:919
MusxInstance< PageFormat > calcPageFormatForPart(Cmper partId) const
Calculates the page format options for a specific part.
Definition Options.cpp:160
bool avoidSystemMarginCollisions
Whether to avoid system margin collisions.
Definition Options.h:989
std::shared_ptr< PageFormat > pageFormatParts
Page format for parts settings.
Definition Options.h:988
std::shared_ptr< PageFormat > pageFormatScore
Page format for score settings.
Definition Options.h:987
AdjustPageScope adjustPageScope
Scope of page adjustments.
Definition Options.h:986
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:1018
static const xml::XmlElementArray< PageFormatOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
AdjustPageScope
Enum for the scope of page adjustments.
Definition Options.h:926
@ PageRange
Adjust page range. (xml value is "range")
PageFormatOptions(const DocumentPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor for PageFormatOptions.
Definition Options.h:1012
Options controlling the appearance of piano braces and brackets.
Definition Options.h:1028
EvpuFloat centerThickness
Center thickness of braces in fractional EvpuFloat.
Definition Options.h:1035
Evpu defBracketPos
"Group Brackets: Default Distance from Left Edge of Staff"
Definition Options.h:1034
EvpuFloat outerTipV
Vertical position of the outer tip in fractional EvpuFloat. (xml node is <outerTipY>)
Definition Options.h:1041
EvpuFloat innerBodyH
Horizontal position of the inner body in fractional EvpuFloat. (xml node is <innerWingX>)
Definition Options.h:1045
EvpuFloat tipThickness
End thickness of braces in fractional EvpuFloat. (xml node is <endThickness>)
Definition Options.h:1036
PianoBraceBracketOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:1031
EvpuFloat width
Width of braces in fractional EvpuFloat.
Definition Options.h:1043
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:1047
EvpuFloat outerTipH
Horizontal position of the outer tip in fractional EvpuFloat. (xml node is <outerTipX>)
Definition Options.h:1040
static const xml::XmlElementArray< PianoBraceBracketOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
EvpuFloat outerBodyV
Vertical position of the outer wing in fractional EvpuFloat. (xml node is <outerWingY>)
Definition Options.h:1037
EvpuFloat innerTipV
Vertical position of the inner tip in fractional EvpuFloat. (xml node is <innerTipY>)
Definition Options.h:1038
EvpuFloat innerTipH
Horizontal position of the inner tip in fractional EvpuFloat. (xml node is <innerTipX>)
Definition Options.h:1044
EvpuFloat innerBodyV
Vertical position of the inner body in fractional EvpuFloat. (xml node is <innerWingY>)
Definition Options.h:1039
EvpuFloat outerBodyH
Horizontal positione of the outer body in fractional EvpuFloat. (xml node is <outerWingX>)
Definition Options.h:1042
Options controlling the appearance of repeats.
Definition Options.h:1057
bool bracketEndAnchorThinLine
Whether the end of the bracket anchors to a thin line.
Definition Options.h:1104
Evpu bracketStartInset
Inset at the start of the bracket in Evpu.
Definition Options.h:1099
Evpu backwardDotHPos
Horizontal separation of backward repeat dots in Evpu.
Definition Options.h:1089
Evpu bracketEndHookLen
Length of the hook at the end of the bracket in Evpu.
Definition Options.h:1103
BackToBackStyle
Back-to-Back Styles from Document Options - Repeats.
Definition Options.h:1076
BackToBackStyle backToBackStyle
Back-to-back style.
Definition Options.h:1087
Evpu afterClefSpace
Space after clef in Evpu.
Definition Options.h:1093
Evpu afterTimeSpace
Space after time signature in Evpu.
Definition Options.h:1095
Evpu bracketEndInset
Inset at the end of the bracket in Evpu.
Definition Options.h:1100
bool addPeriod
"Add Period After Number"
Definition Options.h:1083
Evpu lowerDotVPos
Vertical adjustment of the lower dot in Evpu.
Definition Options.h:1091
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:1108
Evpu forwardDotHPos
Horizontal separation of forward repeat dots in Evpu.
Definition Options.h:1088
static const xml::XmlElementArray< RepeatOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Efix thinLineWidth
Thin line thickness in Efix.
Definition Options.h:1085
Evpu bracketHeight
Height of the bracket in Evpu.
Definition Options.h:1096
Evpu afterKeySpace
Space after key signature in Evpu.
Definition Options.h:1094
WingStyle
Wing Styles from Document Options - Repeats.
Definition Options.h:1066
Evpu bracketTextVPos
Vertical position of bracket text in Evpu.
Definition Options.h:1102
Efix lineSpace
Space between lines in Efix.
Definition Options.h:1086
Efix bracketLineWidth
Width of the bracket line in Efix.
Definition Options.h:1098
int maxPasses
Maximum number of passes for repeats.
Definition Options.h:1082
bool showOnTopStaffOnly
"Show On Top Staff Only"
Definition Options.h:1105
Evpu upperDotVPos
Vertical adjustment of the upper dot in Evpu.
Definition Options.h:1090
Efix thickLineWidth
Heavy line thickness in Efix.
Definition Options.h:1084
RepeatOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:1060
Evpu bracketHookLen
Length of the bracket hook in Evpu.
Definition Options.h:1097
Evpu bracketTextHPos
Horizontal position of bracket text in Evpu.
Definition Options.h:1101
WingStyle wingStyle
Wing style.
Definition Options.h:1092
Cmper showOnStaffListNumber
Staff list number (0 if none). Cmper links to associated "repeatStaffList..." xml nodes.
Definition Options.h:1106
Options controlling the appearance of smart shapes in the musx file.
Definition Options.h:1118
SlurControlStyleType
Slue control style types.
Definition Options.h:1237
Evpu slurLeftBreakHorzAdj
"Slur Left Break Horizontal Adjustment"
Definition Options.h:1265
int slurSymmetry
"Slur Symmetry"
Definition Options.h:1263
BendCurveConnectStyleType
Bend curve connection style types.
Definition Options.h:1223
static const xml::XmlElementArray< SmartShapeOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::unordered_map< TabSlideConnectStyleType, std::shared_ptr< ConnectionStyle > > tabSlideConnectStyles
Tab slide connections.
Definition Options.h:1306
Evpu slurThicknessCp1Y
"Slur Thickness Control Point 1 Y"
Definition Options.h:1256
Cmper ssLineStyleCmpTabSlide
Cmper of current tab slide line style. (others::SmartShapeCustomLine)
Definition Options.h:1278
Evpu smartDashOff
"Smart Dash Off Length"
Definition Options.h:1252
ConnectionIndex
Connection index values.
Definition Options.h:1136
Efix smartLineWidth
"Smart Line Width"
Definition Options.h:1249
DefaultDirection
Default slur direction.
Definition Options.h:1127
int maxSlurStretchPercent
"Maximum Slur Stretch Percentage"
Definition Options.h:1274
Evpu slurAcciPadding
"Slur Accidental Padding"
Definition Options.h:1271
Evpu maximumShortHairpinLength
"Maximum Short Hairpin Length"
Definition Options.h:1246
Evpu slurRightBreakHorzAdj
"Slur Right Break Horizontal Adjustment"
Definition Options.h:1266
TabSlideConnectStyleType
Tab slide connection style types.
Definition Options.h:1191
bool showOctavaAsText
"Show Octava As Text"
Definition Options.h:1250
SmartShapeOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:1121
bool guitarBendHideBendTo
"Guitar Bend Hide Bend To"
Definition Options.h:1282
Cmper ssLineStyleCmpCustom
Cmper of current custom line style. (others::SmartShapeCustomLine)
Definition Options.h:1276
bool guitarBendUseParens
"Guitar Bend Use Parentheses"
Definition Options.h:1281
Cmper ssLineStyleCmpTabBendCurve
Cmper of current tab bend line style. (others::SmartShapeCustomLine)
Definition Options.h:1279
Evpu slurThicknessCp2Y
"Slur Thickness Control Point 2 Y"
Definition Options.h:1258
bool slurStretchByPercent
"As Percentage of Slur Length"
Definition Options.h:1273
SlurConnectStyleType
Slur connection style types.
Definition Options.h:1156
Evpu hookLength
"Hook Length"
Definition Options.h:1248
Evpu slurBreakVertAdj
"Slur Break Vertical Adjustment"
Definition Options.h:1267
Evpu crescHeight
"Crescendo Height"
Definition Options.h:1245
Evpu articAvoidSlurAmt
"Articulation Avoid Slur Amount"
Definition Options.h:1275
Evpu slurPadding
"Slur Padding"
Definition Options.h:1269
Evpu shortHairpinOpeningWidth
"Short Hairpin Opening Width"
Definition Options.h:1244
bool slurDoStretchFirst
"Initial Adjustment: Stretch"
Definition Options.h:1272
bool useEngraverSlurs
"Use Engraver Slurs"
Definition Options.h:1264
EvpuFloat smartSlurTipWidth
"Smart Slur Tip Width"
Definition Options.h:1280
bool guitarBendUseFull
"Guitar Bend Use Full"
Definition Options.h:1284
Evpu slurThicknessCp2X
"Slur Thickness Control Point 2 X"
Definition Options.h:1257
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:1310
GlissandoConnectStyleType
Glissando connection style types.
Definition Options.h:1215
std::unordered_map< BendCurveConnectStyleType, std::shared_ptr< ConnectionStyle > > bendCurveConnectStyles
Benx curve connections.
Definition Options.h:1308
std::unordered_map< SlurControlStyleType, std::shared_ptr< ControlStyle > > slurControlStyles
Slur contours.
Definition Options.h:1305
std::unordered_map< SlurConnectStyleType, std::shared_ptr< ConnectionStyle > > slurConnectStyles
Slur connections.
Definition Options.h:1304
Evpu slurAvoidStaffLinesAmt
"Slur Avoid Staff Lines Amount"
Definition Options.h:1260
Efix maxSlurLift
"Maximum Slur Lift"
Definition Options.h:1262
Evpu slurThicknessCp1X
"Slur Thickness Control Point 1 X"
Definition Options.h:1255
Efix maxSlurStretch
"Maximum Slur Stretch"
Definition Options.h:1261
DefaultDirection direction
Default slur direction.
Definition Options.h:1254
bool slurAvoidStaffLines
"Slur Avoid Staff Lines"
Definition Options.h:1268
bool slurAvoidAccidentals
"Slur Avoid Accidentals"
Definition Options.h:1259
Efix crescLineWidth
"Crescendo/Decrescendo Line Width"
Definition Options.h:1247
bool guitarBendGenText
"Guitar Bend Generate Text"
Definition Options.h:1283
bool crescHorizontal
"Horizontal Crescendo"
Definition Options.h:1253
Efix maxSlurAngle
"Maximum Slur Angle"
Definition Options.h:1270
Evpu smartDashOn
"Smart Dash On Length"
Definition Options.h:1251
std::unordered_map< GlissandoConnectStyleType, std::shared_ptr< ConnectionStyle > > glissandoConnectStyles
Glissando connections.
Definition Options.h:1307
Cmper ssLineStyleCmpGlissando
Cmper of current glissando line style. (others::SmartShapeCustomLine)
Definition Options.h:1277
Options controlling the appearance and layout of staves.
Definition Options.h:1320
std::shared_ptr< NamePositioning > groupNameFullPos
Default full name positioning for staff groups.
Definition Options.h:1334
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:1337
bool autoAdjustStaffSepar
"The Default Value Topline-to-Topline Distance is a Preferred Value That Can Change if Necessary" (fo...
Definition Options.h:1330
Evpu staffSeparation
Default topline-to-topline distance in Evpu. (This value is sign-reversed in the Finale UI....
Definition Options.h:1328
std::shared_ptr< NamePositioning > groupNameAbbrvPos
Default abbreviated name positioning for staff groups.
Definition Options.h:1335
std::shared_ptr< NamePositioning > namePos
Default full name positioning for staves.
Definition Options.h:1332
std::shared_ptr< NamePositioning > namePosAbbrv
Default abbreviated name positioning for staves.
Definition Options.h:1333
Evpu staffSeparIncr
"Add Vertical Space" value for Setup Wizard.
Definition Options.h:1329
StaffOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:1325
static const xml::XmlElementArray< StaffOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Options controlling the appearance of stems.
Definition Options.h:1347
Evpu halfStemLength
Half stem length in Evpu.
Definition Options.h:1353
bool useStemConnections
"Use Stem Connections"
Definition Options.h:1360
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:1362
Efix stemOffset
Stem offset in Efix. (xml node is <stemLift>)
Definition Options.h:1359
bool noReverseStems
Set if "Display Reverse Stemming" is unchecked. (This bit is reversed in the Finale UI....
Definition Options.h:1357
StemOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:1350
Efix stemWidth
Stem width in Efix.
Definition Options.h:1358
Evpu stemLength
Stem length in Evpu.
Definition Options.h:1354
Evpu revStemAdj
Reverse stem adjustment in Evpu.
Definition Options.h:1356
Evpu shortStemLength
Short stem length in Evpu. (xml node is <stem2>)
Definition Options.h:1355
static const xml::XmlElementArray< StemOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Options controlling text rendering in the musx file. Many of these options are default values that ar...
Definition Options.h:1386
int textTracking
"Tracking" amount in EMs (1/1000 of the font size)
Definition Options.h:1439
HorizontalAlignment textHorzAlign
"Horizontal Alignment"
Definition Options.h:1446
Evpu textBaselineShift
"Baseline Shift" amount
Definition Options.h:1440
TextOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor.
Definition Options.h:1389
bool textWordWrap
"Word Wrap"
Definition Options.h:1442
int textLineSpacingPercent
"Line Spacing: Automatic" percent value
Definition Options.h:1435
bool showTimeSeconds
"Include Seconds in Time Stamp"
Definition Options.h:1436
Evpu textSuperscript
"Superscript" amount
Definition Options.h:1441
bool textExpandSingleWord
"Expand Single Word"
Definition Options.h:1445
HorizontalAlignment
Horizontal alignment options for page text positioning.
Definition Options.h:1399
int tabSpaces
"Use [x] Spaces in Place of One Tab Character"
Definition Options.h:1438
Evpu textPageOffset
"Page Offset"
Definition Options.h:1443
VerticalAlignment
Vertical alignment options for page text positioning.
Definition Options.h:1410
TextJustify textJustify
"Justification"
Definition Options.h:1444
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:1476
std::unordered_map< AccidentalInsertSymbolType, std::shared_ptr< InsertSymbolInfo > > symbolInserts
Insert symbol information map.
Definition Options.h:1474
DateFormat dateFormat
"Date Format"
Definition Options.h:1437
VerticalAlignment textVertAlign
"Vertical Alignment"
Definition Options.h:1447
static const xml::XmlElementArray< TextOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
TextJustify
Text justification options.
Definition Options.h:1418
bool textIsEdgeAligned
"Position from Page Edge"
Definition Options.h:1448
DateFormat
Date format options. This value is coded into the Enigma date insert when the page title is created.
Definition Options.h:1429
@ Short
Short date format, based on locale. US format is MM/DD/YY (Default value may not appear in the xml)
@ Long
Long date format, based on locale. US format is Month DD, YYYY.
@ Abbrev
Abbreviated date format, based on locale. US format is Mon DD, YYYY.
Options controlling the appearance of ties.
Definition Options.h:1486
Evpu breakTimeSigRightHOffset
Right horizontal offset for breaking time signature.
Definition Options.h:1582
SpecialPosMode specialPosMode
Special positioning mode.
Definition Options.h:1595
bool breakForKeySigs
Break ties for key signatures.
Definition Options.h:1580
bool chordTieDirOpposingSeconds
Chord tie opposing seconds.
Definition Options.h:1590
SecondsPlacement
Enumeration for seconds placement options.
Definition Options.h:1497
Evpu sysBreakRightHAdj
Right adjustment for system breaks.
Definition Options.h:1586
bool useOuterPlacement
Use outer placement for ties.
Definition Options.h:1587
bool afterSingleDot
Special handling after a single dot.
Definition Options.h:1592
bool afterMultipleDots
Special handling after multiple dots.
Definition Options.h:1593
SecondsPlacement secondsPlacement
Placement of seconds.
Definition Options.h:1588
ChordTieDirType chordTieDirType
Chord tie direction type.
Definition Options.h:1589
InsetStyle insetStyle
Inset style for ties.
Definition Options.h:1597
std::unordered_map< ConnectStyleType, std::shared_ptr< ConnectStyle > > tieConnectStyles
Tie connect styles.
Definition Options.h:1612
Evpu breakTimeSigLeftHOffset
Left horizontal offset for breaking time signature.
Definition Options.h:1581
TieOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:1489
Evpu thicknessLeft
Left thickness of the tie.
Definition Options.h:1578
Evpu breakKeySigLeftHOffset
Left horizontal offset for breaking key signature.
Definition Options.h:1583
MixedStemDirection mixedStemDirection
Mixed stem direction.
Definition Options.h:1591
ChordTieDirType
Enumeration for chord tie direction type.
Definition Options.h:1507
@ StemReversal
Split at stem reversal point.
@ OutsideInside
Legacy Finale 3.7 behavior (the default)
Evpu breakKeySigRightHOffset
Right horizontal offset for breaking key signature.
Definition Options.h:1584
ConnectStyleType
Enumeration for tie connect style types.
Definition Options.h:1549
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:1635
Evpu frontTieSepar
Separation for the front of ties.
Definition Options.h:1576
InsetStyle
Enumeration for inset styles.
Definition Options.h:1539
MixedStemDirection
Enumeration for mixed stem direction.
Definition Options.h:1518
bool avoidStaffLinesOnly
Only avoid staff lines.
Definition Options.h:1600
Evpu avoidStaffLinesDistance
Distance to avoid staff lines.
Definition Options.h:1596
static const xml::XmlElementArray< TieOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
ControlStyleType
Enumeration for tie control style types.
Definition Options.h:1569
Evpu thicknessRight
Right thickness of the tie.
Definition Options.h:1577
bool beforeAcciSingleNote
Special handling before accidental single notes.
Definition Options.h:1594
EvpuFloat tieTipWidth
Width of the tie tip.
Definition Options.h:1601
SpecialPosMode
Enumeration for special position mode.
Definition Options.h:1529
bool breakForTimeSigs
Break ties for time signatures.
Definition Options.h:1579
bool useTieEndCtlStyle
Use tie end control style.
Definition Options.h:1599
std::unordered_map< ControlStyleType, std::shared_ptr< ControlStyle > > tieControlStyles
Tie control styles.
Definition Options.h:1633
Evpu sysBreakLeftHAdj
Left adjustment for system breaks.
Definition Options.h:1585
bool useInterpolation
"Interpolate Height Between Short and Long Span"
Definition Options.h:1598
Options controlling the appearance and behavior of time signatures.
Definition Options.h:1646
Evpu timeUpperLiftParts
"Vertical Adjustment: Top Symbol, Parts"
Definition Options.h:1657
Evpu timeFrontParts
"Space Before Time Signature, Parts"
Definition Options.h:1655
Evpu timeUpperLift
"Vertical Adjustment: Top Symbol, Score"
Definition Options.h:1652
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:1667
bool timeSigDoAbrvCommon
Abbreviate common time.
Definition Options.h:1660
Evpu timeAbrvLift
"Vertical Adjustment: Abbreviated Symbol, Score"
Definition Options.h:1665
Evpu timeBackParts
"Space After Time Signature, Parts"
Definition Options.h:1656
int numCompositeDecimalPlaces
"Decimal Places for Composite Meters" (xml node is <defFloat>)
Definition Options.h:1662
bool timeSigDoAbrvCut
Abbreviate cut time.
Definition Options.h:1661
Evpu timeFront
"Space Before Time Signature, Score"
Definition Options.h:1653
TimeSignatureOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:1649
bool cautionaryTimeChanges
"Display Courtesy Time Signature at End of Staff System"
Definition Options.h:1663
Evpu timeLowerLift
"Vertical Adjustment: Bottom Symbol, Score"
Definition Options.h:1664
static const xml::XmlElementArray< TimeSignatureOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu timeAbrvLiftParts
"Vertical Adjustment: Abbreviated Symbol, Parts"
Definition Options.h:1659
Evpu timeLowerLiftParts
"Vertical Adjustment: Bottom Symbol, Parts"
Definition Options.h:1658
Evpu timeBack
"Space After Time Signature, Score"
Definition Options.h:1654
Options controlling the appearance of tuplets.
Definition Options.h:1677
BracketStyle
Bracket style options.
Definition Options.h:1729
@ Slur
Use a slur instead of a bracket.
PositioningStyle
Positioning style options.
Definition Options.h:1716
@ NoteSide
Display the tuplet on the note side.
@ Above
Display the tuplet above the notes.
@ BeamSide
Display the tuplet on the beam side.
@ Below
Display the tuplet below the notes.
Evpu brackOffX
Horizontal offset for brackets.
Definition Options.h:1742
Efix tupLineWidth
Line width for tuplet brackets in Efix.
Definition Options.h:1759
BracketStyle brackStyle
Bracket style.
Definition Options.h:1751
bool fullDura
"Bracket Full Duration"
Definition Options.h:1736
TupletOptions(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All)
Constructor function.
Definition Options.h:1680
Evpu tupNUpstemOffset
Offset for upstem tuplet numbers.
Definition Options.h:1760
bool smartTuplet
"Engraver Tuplets"
Definition Options.h:1752
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Options.h:1763
Evpu leftHookExt
Extension of the left hook beyond the tuplet bracket.
Definition Options.h:1754
Evpu tupOffX
Horizontal offset.
Definition Options.h:1740
Evpu tupOffY
Vertical.
Definition Options.h:1741
bool matchHooks
"Match Length of Hooks"
Definition Options.h:1749
AutoBracketStyle
Auto-bracket style options.
Definition Options.h:1688
@ Always
"Always Use Specified Shape"–the default value
@ NeverBeamSide
"Never Bracket Beamed Notes on Beam Side"
int tupMaxSlope
Maximum slope for automatic tuplet brackets in 10ths of an angular degree.
Definition Options.h:1758
bool allowHorz
"Allow Horizontal Drag"
Definition Options.h:1746
NumberStyle numStyle
Number style.
Definition Options.h:1744
bool avoidStaff
"Avoid Staff"
Definition Options.h:1738
Evpu manualSlopeAdj
"Manual Slope Adjustment" in Evpu. (xml node is <slope>)
Definition Options.h:1757
Evpu leftHookLen
Length of the left hook in the tuplet bracket. (This value is sign-reversed in the Finale UI....
Definition Options.h:1753
Evpu tupNDownstemOffset
Offset for downstem tuplet numbers.
Definition Options.h:1761
bool alwaysFlat
"Always Flat" (xml node is <flat>)
Definition Options.h:1735
Evpu rightHookExt
Extension of the right hook beyond the tuplet bracket.
Definition Options.h:1756
AutoBracketStyle autoBracketStyle
Autobracket style.
Definition Options.h:1739
PositioningStyle posStyle
Positioning style.
Definition Options.h:1745
bool ignoreHorzNumOffset
"Ignore Horizontal Number Offset" (xml node is <ignoreGlOffs>)
Definition Options.h:1747
Evpu brackOffY
Vertical offset for brackets.
Definition Options.h:1743
bool metricCenter
"Center Number Using Duration"
Definition Options.h:1737
NumberStyle
Number style options.
Definition Options.h:1703
@ RatioPlusBothNotes
display notes on both values (xml value is "ratioPlusDenNote")
@ RatioPlusDenominatorNote
displays a note value only on the denominator (xml value is "ratioPlusBothNotes")
Evpu rightHookLen
Length of the right hook in the tuplet bracket. (This value is sign-reversed in the Finale UI....
Definition Options.h:1755
bool breakBracket
"Break Slur or Bracket"
Definition Options.h:1748
static const xml::XmlElementArray< TupletOptions > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool useBottomNote
"Use Bottom Note" (xml node is <noteBelow>)
Definition Options.h:1750
Contains horizontal and vertical offsets, alignment, and expansion settings for name positioning.
Definition CommonClasses.h:631
A class to represent fractions with integer m_numerator and m_denominator, automatically reduced to s...
Definition Fraction.h:38
static Fraction fromPercent(int percent)
Constructs a Fraction from a percent (where 100 is 100%)
Definition Fraction.h:89
A dependency-free, header-only collection of useful functions for music theory.
ClefType
Represents the possible types of clef, irrespective of octave transposition.
Definition music_theory.hpp:98
AccidentalInsertSymbolType
Insert symbol types for accidentals.
Definition Options.h:1369
constexpr double EVPU_PER_SPACE
Number of Evpu units per space (spatium)
Definition Fundamentals.h:85
int32_t Efix
EFIX value (64 per EVPU, 64*288=18432 per inch)
Definition Fundamentals.h:60
std::shared_ptr< const T > MusxInstance
Defines the type of a musx instance stored in a pool.
Definition MusxInstance.h:35
int32_t Evpu16ths
1/16 of an EVPU.
Definition Fundamentals.h:59
int32_t Evpu
EVPU value (288 per inch)
Definition Fundamentals.h:57
uint16_t Cmper
Enigma "comperator" key type.
Definition Fundamentals.h:55
uint16_t ClefIndex
Index into options::ClefOptions::clefDefs.
Definition Fundamentals.h:68
double EvpuFloat
EVPU fractional value (288.0 per inch)
Definition Fundamentals.h:58
int32_t Edu
"Enigma Durational Units" value (1024 per quarter note)
Definition Fundamentals.h:61
std::weak_ptr< Document > DocumentWeakPtr
Shared weak Document pointer.
Definition BaseClasses.h:57
std::shared_ptr< Document > DocumentPtr
Shared Document pointer.
Definition BaseClasses.h:55
std::vector< XmlElementDescriptor< T > > XmlElementArray
an array type for XmlElementDescriptor instances.
Definition XmlInterface.h:127
object model for musx file (enigmaxml)
Definition BaseClasses.h:36
Syllable position style.
Definition Options.h:663
static const xml::XmlElementArray< SyllablePosStyle > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
AlignJustify align
Horizontal alignment.
Definition Options.h:664
AlignJustify justify
Horizontal justification.
Definition Options.h:665
Word extension connection style.
Definition Options.h:673
Evpu yOffset
Vertical offset.
Definition Options.h:676
static const xml::XmlElementArray< WordExtConnectStyle > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
WordExtConnectIndex connectIndex
Connection point.
Definition Options.h:674
Evpu xOffset
Horizontal offset.
Definition Options.h:675
Defined the connection offsets for each ConnectionIndex value.
Definition Options.h:1287
ConnectionIndex connectIndex
Index of connection point.
Definition Options.h:1288
static const xml::XmlElementArray< ConnectionStyle > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu yOffset
Vertical offset.
Definition Options.h:1290
Evpu xOffset
Horizontal offset.
Definition Options.h:1289
defines the slur contours for short, medium, long, and extra long slurs
Definition Options.h:1296
Evpu height
Height of the span.
Definition Options.h:1299
Efix inset
Inset value.
Definition Options.h:1298
static const xml::XmlElementArray< ControlStyle > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Efix span
Length of the span.
Definition Options.h:1297
Insert symbol information.
Definition Options.h:1452
void integrityCheck(const std::shared_ptr< Base > &ptrToThis) override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition Options.h:1461
int trackingAfter
Tracking after in EMs (1/1000 font size units)
Definition Options.h:1456
std::shared_ptr< FontInfo > symFont
Symbol font (Percent-based size is a percent of the preceding font size in the Enigma string....
Definition Options.h:1458
char32_t symChar
Symbol character.
Definition Options.h:1459
int baselineShiftPerc
Baseline shift percent.
Definition Options.h:1457
static const xml::XmlElementArray< InsertSymbolInfo > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
int trackingBefore
Tracking before in EMs (1/1000 font size units)
Definition Options.h:1455
Struct for tie connect style.
Definition Options.h:1604
static const xml::XmlElementArray< ConnectStyle > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu offsetY
Vertical offset.
Definition Options.h:1606
Evpu offsetX
Horizontal offset.
Definition Options.h:1605
Struct for tie control style control points.
Definition Options.h:1615
Evpu insetFixed
Fixed inset.
Definition Options.h:1618
Efix insetRatio
Inset ratio.
Definition Options.h:1616
static const xml::XmlElementArray< ControlPoint > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu height
Height.
Definition Options.h:1617
Struct for tie control style.
Definition Options.h:1624
std::shared_ptr< ControlPoint > cp2
Control point 2.
Definition Options.h:1627
static const xml::XmlElementArray< ControlStyle > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::shared_ptr< ControlPoint > cp1
Control point 1.
Definition Options.h:1626
Evpu span
Span length.
Definition Options.h:1625