25#include <unordered_map>
32#include "musx/util/EnigmaString.h"
33#include "musx/util/Logger.h"
34#include "musx/util/Fraction.h"
35#include "musx/util/PseudoTieUtils.h"
36#include "musx/dom/PercussionNoteType.h"
38#include "BaseClasses.h"
39#include "CommonClasses.h"
45enum class PseudoTieMode;
56class FretboardDiagram;
58class IndependentStaffDetails;
72class StaffListCategoryScore;
73class StaffListCategoryParts;
74class StaffListRepeatScore;
75class StaffListRepeatParts;
76class StaffListRepeatScoreForced;
77class StaffListRepeatPartsForced;
79template<
class ScoreList,
class PartsList,
class ScoreForcedList,
class PartsForcedList>
107 std::string_view xmlTag()
const override {
return XmlNodeName; }
112 constexpr static std::string_view
XmlNodeName =
"acciAmountFlats";
140 std::string_view xmlTag()
const override {
return XmlNodeName; }
145 constexpr static std::string_view
XmlNodeName =
"acciAmountSharps";
166 std::string_view xmlTag()
const override {
return XmlNodeName; }
197 std::string_view xmlTag()
const override {
return XmlNodeName; }
202 constexpr static std::string_view
XmlNodeName =
"acciOrderSharps";
356 :
OthersBase(document, partId, shareMode, cmper, inci)
389 MUSX_INTEGRITY_ERROR(
"Beat chart for measure " + std::to_string(
getCmper()) +
" has a control instance in inci " + std::to_string(*
getInci()));
392 control = std::make_shared<Control>();
393 MUSX_INTEGRITY_ERROR(
"Beat chart for measure " + std::to_string(
getCmper()) +
" is missing its control instance.");
435 std::shared_ptr<FontInfo>
font;
462 std::string_view xmlTag()
const override {
return XmlNodeName; }
467 constexpr static std::string_view
XmlNodeName =
"chordSuffixPlay";
485 :
OthersBase(document, partId, shareMode, cmper, inci)
516 :
OthersBase(document, partId, shareMode, cmper) {}
549 static constexpr uint32_t SYMBOL_CHARSET_MAC = 0xfff;
550 static constexpr uint32_t SYMBOL_CHARSET_WIN = 2;
555 :
OthersBase(document, partId, shareMode, cmper) {}
622 :
OthersBase(document, partId, shareMode, cmper, inci) {}
643 MUSX_INTEGRITY_ERROR(
"Frame " + std::to_string(
getCmper()) +
" has non-zero startTime and non-zero startEntry or endEntry.");
646 MUSX_INTEGRITY_ERROR(
"Frame " + std::to_string(
getCmper()) +
" has no start entry.");
649 MUSX_INTEGRITY_ERROR(
"Frame " + std::to_string(
getCmper()) +
" has no end entry.");
675 :
OthersBase(document, partId, shareMode, cmper, inci)
705 :
OthersBase(document, partId, shareMode, cmper)
763 :
OthersBase(document, partId, shareMode, cmper)
784 std::vector<std::shared_ptr<StringInfo>>
strings;
795 MUSX_INTEGRITY_ERROR(
"Fret instrument " + std::to_string(
getCmper()) +
" specifies " + std::to_string(
numStrings)
796 +
" strings but has " + std::to_string(
strings.size()) +
" StringInfo instances.");
800 +
" frets but has " + std::to_string(
fretSteps.size()) +
" diatonic fret steps specified.");
818 :
OthersBase(document, partId, shareMode, cmper) {}
837 :
OthersBase(document, partId, shareMode, cmper) {}
850 std::vector<std::shared_ptr<StepElement>>
steps;
855 return static_cast<unsigned>(std::count_if(
steps.begin(),
steps.end(), [](
const auto& step) {
856 return step->diatonic;
875 :
OthersBase(document, partId, shareMode, cmper) {}
907 :
OthersBase(document, partId, shareMode, cmper) {}
1006class ShapeExpressionDef;
1007class TextExpressionDef;
1035 :
OthersBase(document, partId, shareMode, cmper) {}
1089 textFont = std::make_shared<FontInfo>(ptrToThis->getDocument());
1090 MUSX_INTEGRITY_ERROR(
"Marking category " + std::to_string(
getCmper()) +
" is missing text font.");
1093 musicFont = std::make_shared<FontInfo>(ptrToThis->getDocument());
1094 MUSX_INTEGRITY_ERROR(
"Marking category " + std::to_string(
getCmper()) +
" is missing music font.");
1097 numberFont = std::make_shared<FontInfo>(ptrToThis->getDocument());
1118 constexpr static std::string_view
XmlNodeName =
"markingsCategoryName";
1132 :
OthersBase(document, measureId, shareMode, cmper) {}
1310 [[nodiscard]] std::optional<HorizontalMeasExprAlign> calcEntryAlignmentType()
const;
1313 [[nodiscard]] std::optional<utils::PseudoTieShapeInfo> calcPseudoTieShape()
const;
1318 :
OthersBase(document, ID, shareMode, cmper, inci) {}
1418 MUSX_INTEGRITY_ERROR(
"Expression assignment at measure " + std::to_string(
getCmper()) +
" inci " + std::to_string(
getInci().value_or(-1))
1419 +
" has no expression definition ID.");
1421 MUSX_INTEGRITY_ERROR(
"Expression assignment at measure " + std::to_string(
getCmper()) +
" inci " + std::to_string(
getInci().value_or(-1))
1422 +
" has both text expr ID " + std::to_string(
textExprId) +
" and shape expr ID " + std::to_string(
shapeExprId));
1440 :
OthersBase(document, partId, shareMode, cmper) {}
1496 startFont = std::make_shared<FontInfo>(ptrToThis->getDocument());
1500 multipleFont = std::make_shared<FontInfo>(ptrToThis->getDocument());
1501 MUSX_INTEGRITY_ERROR(
"Measure number region score part data is missing multiple numbers font.");
1504 mmRestFont = std::make_shared<FontInfo>(ptrToThis->getDocument());
1505 MUSX_INTEGRITY_ERROR(
"Measure number region score part data is missing multimeasure rest range font.");
1562 scoreData = std::make_shared<ScorePartData>(ptrToThis);
1563 MUSX_INTEGRITY_ERROR(
"Measure number region " + std::to_string(
getCmper()) +
" is missing score data.");
1566 partData = std::make_shared<ScorePartData>(ptrToThis);
1567 MUSX_INTEGRITY_ERROR(
"Measure number region " + std::to_string(
getCmper()) +
" is missing part data.");
1587 :
OthersBase(document, partId, shareMode, startMeasure) {}
1615 MUSX_INTEGRITY_ERROR(
"Multimeasure rest at " + std::to_string(
getCmper()) +
" in part " + std::to_string(
getSourcePartId()) +
" spans 0 or fewer measures.");
1633 :
OthersBase(document, partId, shareMode, cmper) {}
1651 :
OthersBase(document, partId, shareMode, cmper) {}
1665 for (
size_t x = 0; x <
staffNums.size(); x++) {
1668 return std::nullopt;
1683 MUSX_INTEGRITY_ERROR(
"MultiStaffInstrumentGroup " + std::to_string(
getCmper()) +
" contains no staves.");
1685 MUSX_INTEGRITY_ERROR(
"MultiStaffInstrumentGroup " + std::to_string(
getCmper()) +
" contains more than 3 staves.");
1689 constexpr static std::string_view
XmlNodeName =
"multiStaffInstGroup";
1759 :
OthersBase(document, pageId, shareMode, cmper) {}
1830 :
OthersBase(document, partId, shareMode, cmper, inci)
1892 MUSX_INTEGRITY_ERROR(
"PageTextAssign " + std::to_string(
getCmper()) +
" inci " + std::to_string(
getInci().value_or(0)) +
1893 " has startPage or endPage value that does not match.");
1929 :
OthersBase(document, partId, shareMode, cmper) {}
1994 :
OthersBase(document, partId, shareMode, cmper) {}
2047 :
OthersBase(document, partId, shareMode, staff) {}
2107 :
OthersBase(document, partId, shareMode, cmper, inci) {}
2167class RepeatIndividualPositioning;
2181 :
OthersBase(document, partId, shareMode, cmper) {}
2233 :
OthersBase(document, partId, shareMode, cmper)
2294 MUSX_INTEGRITY_ERROR(
"RepeatEndingStart at measure " + std::to_string(
getCmper()) +
" has an unexpected trigger value " +
2295 std::to_string(
int(
trigger)));
2317 :
OthersBase(document, partId, shareMode, cmper) {}
2335 std::string_view xmlTag()
const override {
return XmlNodeName; }
2365 :
OthersBase(document, partId, shareMode, cmper, inci) {}
2391 constexpr static std::string_view
XmlNodeName =
"separatesRepeatBack";
2407 constexpr static std::string_view
XmlNodeName =
"separatesRepeatEndingLine";
2423 constexpr static std::string_view
XmlNodeName =
"separatesRepeatEndingText";
2438 constexpr static std::string_view
XmlNodeName =
"separatesTextRepeat";
2456 :
OthersBase(document, partId, shareMode, cmper) {}
2514 std::string_view xmlTag()
const override {
return XmlNodeName; }
2556 constexpr static std::string_view
XmlNodeName =
"categoryStaffListName";
2567 std::string_view xmlTag()
const override {
return XmlNodeName; }
2570 using StaffList::StaffList;
2572 constexpr static std::string_view
XmlNodeName =
"categoryStaffListParts";
2583 std::string_view xmlTag()
const override {
return XmlNodeName; }
2586 using StaffList::StaffList;
2588 constexpr static std::string_view
XmlNodeName =
"categoryStaffListScore";
2602 constexpr static std::string_view
XmlNodeName =
"repeatStaffListName";
2613 std::string_view xmlTag()
const override {
return XmlNodeName; }
2616 using StaffList::StaffList;
2618 constexpr static std::string_view
XmlNodeName =
"repeatStaffListParts";
2630 std::string_view xmlTag()
const override {
return XmlNodeName; }
2633 using StaffList::StaffList;
2635 constexpr static std::string_view
XmlNodeName =
"repeatStaffListPartsOverride";
2646 std::string_view xmlTag()
const override {
return XmlNodeName; }
2649 using StaffList::StaffList;
2651 constexpr static std::string_view
XmlNodeName =
"repeatStaffListScore";
2663 std::string_view xmlTag()
const override {
return XmlNodeName; }
2666 using StaffList::StaffList;
2668 constexpr static std::string_view
XmlNodeName =
"repeatStaffListScoreOverride";
2679template<
class ScoreList,
class PartsList,
class ScoreForcedList =
void,
class PartsForcedList =
void>
2708 :
OthersBase(document, staffSystemId, shareMode, cmper)
2769 MUSX_INTEGRITY_ERROR(
"Layout for system " + std::to_string(
getCmper())
2770 +
" of part " + std::to_string(
getSourcePartId()) +
" is in an unknown state.");
2792 :
OthersBase(document, partId, shareMode, cmper, inci) {}
2796 std::shared_ptr<EnigmaMusicRange>
range;
2825 :
OthersBase(document, partId, shareMode, cmper) {}
2856 :
OthersBase(document, partId, shareMode, cmper, inci)
2904 :
OthersBase(document, partId, shareMode, cmper) {}
2957 :
OthersBase(document, partId, shareMode, cmper) {}
3011 constexpr static std::string_view
XmlNodeName =
"textExpressionEnclosure";
3028 :
OthersBase(document, partId, shareMode, cmper, inci)
3128 constexpr static std::string_view
XmlNodeName =
"textRepeatEnclosure";
3145 :
OthersBase(document, partId, shareMode, cmper)
3168 :
OthersBase(document, partId, shareMode, cmper)
3184 std::vector<std::shared_ptr<CompositeItem>>
items;
3203 :
OthersBase(document, partId, shareMode, cmper)
3224 std::vector<std::shared_ptr<CompositeItem>>
items;
3244 std::string_view xmlTag()
const override {
return XmlNodeName; }
3266 std::string_view xmlTag()
const override {
return XmlNodeName; }
DocumentPtr getDocument() const
Gets a reference to the Document.
Definition BaseClasses.h:108
Cmper getSourcePartId() const
Gets the source partId for this instance. If an instance is fully shared with the score,...
Definition BaseClasses.h:124
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
Wraps a frame of shared_ptr<const EntryInfo> and an index for per entry access. This class manages ow...
Definition Entries.h:512
Represents the default font settings for a particular element type.
Definition CommonClasses.h:66
Provides optional per-type extension methods for MusxInstanceList.
Definition MusxInstance.h:103
Wraps an EntryInfo instance and a note index.
Definition Entries.h:1553
Template pattern for OthersBase items consisting of an array of a single item.
Definition BaseClasses.h:353
OthersArray(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition BaseClasses.h:359
Base class for all "others" types.
Definition BaseClasses.h:283
std::optional< Inci > getInci() const
Gets the optional array index (inci).
Definition BaseClasses.h:335
Cmper getCmper() const
Gets the cmper key value.
Definition BaseClasses.h:328
Many element names are embedded directly in top-level xml tags. This encapsulates that pattern.
Definition BaseClasses.h:395
OthersName(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition BaseClasses.h:398
AlignJustify HorizontalAlignment
Horizontal alignment options for page text positioning.
Definition Options.h:1497
VerticalAlignment
Vertical alignment options for page text positioning.
Definition Options.h:1504
TextJustify
Text justification options.
Definition Options.h:1512
Lists the aleration values of each nth flat in a custom key signature. Normally these values are all ...
Definition Others.h:106
static const xml::XmlElementArray< AcciAmountFlats > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:112
Lists the aleration values of each nth sharp in a custom key signature. Normally these values are all...
Definition Others.h:139
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:145
static const xml::XmlElementArray< AcciAmountSharps > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Lists the order of flats by pitch class index (0..6 = C..B) in a custom key signature....
Definition Others.h:165
static const xml::XmlElementArray< AcciOrderFlats > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:171
Lists the order of sharps by pitch class index (0..6 = C..B) in a custom key signature....
Definition Others.h:196
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:202
static const xml::XmlElementArray< AcciOrderSharps > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Stores the properties and behaviors of articulation definitions.
Definition Others.h:216
bool autoVert
Whether vertical auto-positioning is enabled.
Definition Others.h:268
bool useTopNote
"Attach to top note"
Definition Others.h:266
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:306
Evpu distanceFromStemEnd
"On-stem distance from stem end/flag/beam"
Definition Others.h:304
Evpu xOffsetAlt
Horizontal offset for the alternate symbol.
Definition Others.h:286
Evpu yOffsetMain
Vertical offset for the main symbol.
Definition Others.h:281
char32_t charAlt
Alternate symbol character (utf32).
Definition Others.h:278
int startTopNoteDelta
Attack change for the top note.
Definition Others.h:292
int durBotNoteDelta
Duration change for the bottom note.
Definition Others.h:297
char32_t charMain
Main symbol character (utf32).
Definition Others.h:263
Cmper mainShape
Main shape ID (if applicable).
Definition Others.h:290
bool autoStack
Whether automatic stacking is enabled.
Definition Others.h:275
int ampTopNotePercent
Key velocity percentage for the top note.
Definition Others.h:302
int durTopNotePercent
Duration percent change for the top note.
Definition Others.h:298
bool aboveSymbolAlt
Whether the alternate symbol is used above. (Otherwise main symbol is used.)
Definition Others.h:271
int ampBotNotePercent
Key velocity percentage for the bottom note.
Definition Others.h:303
bool centerOnStem
Whether centering on the stem is enabled.
Definition Others.h:276
SlurInteractionMode
Defines the interaction mode with slurs.
Definition Others.h:249
@ Ignore
default value (may not appear in xml)
Evpu defVertPos
Default vertical position.
Definition Others.h:282
Evpu xOffsetMain
Horizontal offset for the main symbol.
Definition Others.h:280
Evpu yOffsetAlt
Vertical offset for the alternate symbol.
Definition Others.h:287
Cmper altShape
Alternate shape ID (if applicable).
Definition Others.h:291
bool altIsShape
Whether the alternate symbol is a shape.
Definition Others.h:289
std::shared_ptr< FontInfo > fontAlt
The font info for the alternate symbol. (xml nodes <fontAlt>, <sizeAlt>, and <efxAlt>)
Definition Others.h:279
int startTopNotePercent
Attack change percent for the top note.
Definition Others.h:294
bool playArtic
Whether playback articulation is enabled.
Definition Others.h:285
bool insideSlur
Whether the articulation is inside a slur. (Used in addition to SlurInteractionMode::InsideSlur)
Definition Others.h:273
AutoVerticalMode autoVertMode
Auto vertical positioning mode.
Definition Others.h:269
int durTopNoteDelta
Duration change for the top note.
Definition Others.h:296
std::shared_ptr< FontInfo > fontMain
The font info for the main symbol. (xml nodes <fontMain>, <sizeMain>, and <efxMain>)
Definition Others.h:264
bool belowSymbolAlt
Whether the alternate symbol is used below. (Otherwise main symbol is used.)
Definition Others.h:272
int ampBotNoteDelta
Key velocity change for the bottom note.
Definition Others.h:301
SlurInteractionMode slurInteractionMode
Slur interaction mode.
Definition Others.h:277
int startBotNotePercent
Attack change percent for the bottom note.
Definition Others.h:295
bool mainIsShape
Whether the main symbol is a shape.
Definition Others.h:288
int durBotNotePercent
Duration percent change for the bottom note.
Definition Others.h:299
CopyMode
Defines the character copy mode (vertical or horizontal)
Definition Others.h:238
@ Vertical
Copy symbol vertically (xml value is "both")
@ None
default value (may not appear in xml)
@ Horizontal
Copy symbol horizontally.
int ampTopNoteDelta
Key velocity change for the top note.
Definition Others.h:300
AutoVerticalMode
Defines the automatic vertical positioning mode. These values are only meaningful if autoVert is true...
Definition Others.h:224
@ StemSide
"Always Stem Side"
@ AutoNoteStem
"Auto Notehead/Stem Side"
@ AlwaysNoteheadSide
default value (may not appear in xml)
int startBotNoteDelta
Attack change for the bottom note.
Definition Others.h:293
bool outsideStaff
Whether the articulation is forced outside the staff.
Definition Others.h:270
bool autoHorz
Whether horizontal auto-positioning is enabled.
Definition Others.h:267
ArticulationDef(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor.
Definition Others.h:260
bool isStemSideWhenMultipleLayers
"Place stem side when multiple layers are present"
Definition Others.h:284
bool noPrint
"Display on screen only (do not print)"
Definition Others.h:274
CopyMode copyMode
"Copy Main Symbol" option.
Definition Others.h:265
bool avoidStaffLines
Whether to avoid staff lines.
Definition Others.h:283
static const xml::XmlElementArray< ArticulationDef > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Control settings for a beat chart, only used when inci == 0.
Definition Others.h:366
Edu totalDur
Total logical duration of the measure (XML: <totalDur>)
Definition Others.h:368
Evpu minWidth
Minimum required width (XML: <minWidth>)
Definition Others.h:370
static const xml::XmlElementArray< Control > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu totalWidth
Total width allocated to the measure (XML: <totalWidth>)
Definition Others.h:369
Evpu allotWidth
Allotted width before justification (XML: <allotWidth>)
Definition Others.h:371
A single beat chart element from Finale's music spacing system.
Definition Others.h:352
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:397
Edu dur
Duration of this beat span.
Definition Others.h:380
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 Others.h:385
static const xml::XmlElementArray< BeatChartElement > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::shared_ptr< Control > control
Control data for this beat chart element (only present for inci == 0)
Definition Others.h:377
BeatChartElement(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:355
Evpu minPos
Minimum position (see remarks in the class-level description of BeatChartElement)
Definition Others.h:383
Evpu endPos
End position of the beat span.
Definition Others.h:382
Evpu pos
Horizontal position within the measure.
Definition Others.h:381
Represents a single element in a chord suffix (e.g., a symbol like "1" or "+").
Definition Others.h:414
static const xml::XmlElementArray< ChordSuffixElement > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::shared_ptr< FontInfo > font
Font info for this symbol (xml nodes are <fontID>, <fontSize>, and <efx>)
Definition Others.h:435
Evpu xdisp
Horizontal displacement in EVPU.
Definition Others.h:437
Prefix prefix
Optional prefix for the symbol, e.g., "plus".
Definition Others.h:440
bool isNumber
Indicates the symbol value is numeric rather than a codepoint.
Definition Others.h:439
char32_t symbol
Codepoint of glyph in font. (xml node is <suffix>)
Definition Others.h:436
Evpu ydisp
Vertical displacement in EVPU.
Definition Others.h:438
ChordSuffixElement(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:430
Prefix
Enum for chord symbol prefix options.
Definition Others.h:421
@ Minus
minus symbol ("-")
@ Sharp
musical sharp symbol
@ None
No prefix (default: may not appear in XML)
@ Flat
musical flat symbol
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:442
Represents a list of repeat ending numbers for a RepeatEndingStart instance.
Definition Others.h:461
static const xml::XmlElementArray< ChordSuffixPlayback > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:467
Represents an element in multimeasure clef list with its positioning and percentage values.
Definition Others.h:481
bool afterBarline
"Place Clef After Barline"
Definition Others.h:499
ShowClefMode clefMode
The clef mode from the <clefMode> element.
Definition Others.h:497
static const xml::XmlElementArray< ClefList > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
int xEvpuOffset
The xEvpuOffset value from the <xEvpuOffset> element.
Definition Others.h:496
Edu xEduPos
Definition Others.h:491
ClefIndex clefIndex
The 0-based clef index from the <clef> element.
Definition Others.h:490
bool unlockVert
"Allow Vertical Drag"
Definition Others.h:498
ClefList(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:484
Evpu yEvpuPos
The yEvpuPos value from the <yEvpuPos> element.
Definition Others.h:494
int percent
The percentage value from the <percent> element.
Definition Others.h:495
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:501
Identifies the percussion map ("drum library") for a staff style with percussion notation.
Definition Others.h:532
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:536
Identifies the percussion map ("drum library") for a staff with percussion notation.
Definition Others.h:512
DrumStaff(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:515
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:521
static const xml::XmlElementArray< DrumStaff > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Cmper whichDrumLib
Definition Others.h:518
Represents the enclosure settings for text expressions.
Definition CommonClasses.h:590
Enclosure(const DocumentWeakPtr &document, Cmper partId=SCORE_PARTID, ShareMode shareMode=ShareMode::All, Cmper cmper=0)
Constructs an Enclosure object.
Definition CommonClasses.h:616
The name and font characteristics of fonts contained.
Definition Others.h:548
int charsetVal
Definition Others.h:567
bool calcIsSymbolFont() const
Calculates if this font is a symbol font.
Definition Others.h:589
FontDefinition(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:554
CharacterSetBank charsetBank
The character set bank.
Definition Others.h:566
CharacterSetBank
The character set for the bank.
Definition Others.h:560
@ Windows
xml value is "Mac"
std::string name
The font name e.g., "Broadway Copyist Text".
Definition Others.h:574
int family
Represents the <family> element, e.g., 0. (use unknown)
Definition Others.h:573
static const xml::XmlElementArray< FontDefinition > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:600
int pitch
Represents the <pitch> element, e.g., 0. (use unknown)
Definition Others.h:572
Represents the attributes of a TGF entry frame.
Definition Others.h:618
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 Others.h:639
Frame(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci=0)
Constructor function.
Definition Others.h:621
MusxInstanceList< Entry > getEntries() const
Returns a vector of entries contained in the frame.
Definition Others.cpp:58
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:653
Edu startTime
The starting position within the measure. (Appears to be zero when startEntry and endEntry are suppli...
Definition Others.h:626
EntryNumber endEntry
End entry number for this frame. (Appears to be zero when startTime is supplied.)
Definition Others.h:625
bool iterateRawEntries(std::function< bool(const MusxInstance< Entry > &entry)> iterator) const
Iterates all the raw entries in a frame, passing them to the iterator function. If the iterator funct...
Definition Others.cpp:38
EntryNumber startEntry
Start entry number for this frame. (Appears to be zero when startTime is supplied....
Definition Others.h:624
static const xml::XmlElementArray< Frame > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Information for a single string of the fretted instrument.
Definition Others.h:772
int nutOffset
Definition Others.h:775
int pitch
Open-string MIDI pitch (60 is middle-C.)
Definition Others.h:774
static const xml::XmlElementArray< StringInfo > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Describes a fretted instrument (strings, frets, name, clef). It is used for both TAB notation and Fre...
Definition Others.h:759
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:804
ClefIndex speedyClef
The clef to use when entering notes for this instrument in Speedy Entry.
Definition Others.h:789
std::string name
Display name.
Definition Others.h:783
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 Others.h:791
static const xml::XmlElementArray< FretInstrument > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::vector< std::shared_ptr< StringInfo > > strings
One entry per string: strings.size() should equal numStrings.
Definition Others.h:784
int numStrings
Number of strings (max is 24)
Definition Others.h:782
std::vector< int > fretSteps
Definition Others.h:785
FretInstrument(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor.
Definition Others.h:762
int numFrets
Number of frets.
Definition Others.h:781
A named group of fretboard diagrams associated with a specific fretboard instrument.
Definition Others.h:671
Cmper fretInstId
Fret instrument ID. (xml node <fretInstID>)
Definition Others.h:679
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:688
MusxInstance< FretInstrument > getFretInstrument() const
Get the FretInstrument associated with this fretboard group.
Definition Others.cpp:72
MusxInstanceList< details::FretboardDiagram > getFretboardDiagrams() const
Gets the array of details::FretboardDiagram instances associated with this fretboard group.
Definition Others.cpp:77
FretboardGroup(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor.
Definition Others.h:674
std::string name
Group name.
Definition Others.h:680
static const xml::XmlElementArray< FretboardGroup > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Fretboard diagram style: shapes, spacing, fonts, and offsets.
Definition Others.h:701
Efix stringGap
Gap between strings.
Definition Others.h:718
Efix fretWidth
Line width of frets.
Definition Others.h:721
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:746
Efix vertHandleOff
Vertical handle offset.
Definition Others.h:726
std::shared_ptr< FontInfo > fingNumFont
Font for fingering numbers.
Definition Others.h:729
bool showLastFret
Show the last fret marker.
Definition Others.h:709
static const xml::XmlElementArray< FretboardStyle > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Efix horzHandleOff
Horizontal handle offset.
Definition Others.h:725
Cmper fingStrShapeId
Fingering string shape ID. (xml node <fingStrShapeID>)
Definition Others.h:712
bool rotate
Rotate the diagram so the nut is on the left.
Definition Others.h:710
bool fingNumWhite
Render fingering numbers in white.
Definition Others.h:711
Cmper barreShapeId
Barre shape ID. (xml node <barreShapeID>)
Definition Others.h:715
Cmper openStrShapeId
Open string shape ID. (xml node <openStrShapeID>)
Definition Others.h:713
FretboardStyle(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor.
Definition Others.h:704
Efix whiteout
Whiteout thickness/extent. (xml node <whiteout>)
Definition Others.h:727
std::string fretNumText
Label preceding fret number (e.g., "fr."). (xml node <fretNumText>)
Definition Others.h:733
Efix horzFingNumOff
Horizontal fingering number offset.
Definition Others.h:730
Efix vertTextOff
Vertical text offset.
Definition Others.h:723
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 Others.h:735
Efix stringWidth
Line width of strings.
Definition Others.h:720
std::string name
Style name. (xml node <name>)
Definition Others.h:732
std::shared_ptr< FontInfo > fretNumFont
Font for fret numbers.
Definition Others.h:728
Cmper customShapeId
Custom shape ID. (xml node <customShapeID>)
Definition Others.h:716
Efix fretGap
Gap between frets.
Definition Others.h:719
Cmper muteStrShapeId
Muted string shape ID. (xml node <muteStrShapeID>)
Definition Others.h:714
Efix nutWidth
Width of the nut.
Definition Others.h:722
Efix horzTextOff
Horizontal text offset.
Definition Others.h:724
int defNumFrets
Default number of frets.
Definition Others.h:717
Efix vertFingNumOff
Vertical fingering number offset.
Definition Others.h:731
Represents the attributes associated with a Finale key signature.
Definition Others.h:871
bool hasClefOctv
If true, the key signature has clef octave override tables. See details::ClefOctaveFlats and details:...
Definition Others.h:888
int gotoKey
Definition Others.h:884
KeyAttributes(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:874
int harmRefer
Definition Others.h:878
Cmper symbolList
Cmper of the symbol list that specifies the accidentals for the key. These are stored in incidents of...
Definition Others.h:887
int middleCKey
MIDI key number to use for middle C. This value transposes playback if it is set other than the MIDI ...
Definition Others.h:881
Cmper fontSym
Definition Others.h:882
static const xml::XmlElementArray< KeyAttributes > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:890
Represents a single <keych> element inside the <keyMap>.
Definition Others.h:842
bool diatonic
Whether the step is diatonic (true if <diatonic> is present).
Definition Others.h:844
unsigned hlevel
Harmonic level (scale degree) of this step. (xml node is <hlevel>)
Definition Others.h:845
static const xml::XmlElementArray< StepElement > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
An array of step elements from which one can create a key map.
Definition Others.h:833
std::vector< std::shared_ptr< StepElement > > steps
Collection of keych step elements.
Definition Others.h:850
unsigned countDiatonicSteps() const
Counts the number of diatonic steps in the steps array.
Definition Others.h:853
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:860
KeyMapArray(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:836
static const xml::XmlElementArray< KeyMapArray > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Represents the attributes of a Finale "layer".
Definition Others.h:903
bool freezeLayer
"Freeze Stems and Ties"
Definition Others.h:915
bool playback
If true, playback this layer. If false, the layer is muted.
Definition Others.h:916
int restOffset
"Adjust Floating Rests by " number of staff steps.
Definition Others.h:910
bool ignoreHiddenLayers
"Ignore Hidden Layers"
Definition Others.h:919
bool freezeStemsUp
If true, freeze stems up, otherwise freeze stems down. Only used if freezeLayer is true....
Definition Others.h:914
bool ignoreHiddenNotesOnly
"Ignore Layers Containing Only Hidden Notes" (xml node is <ignoreHidden>)
Definition Others.h:918
bool hideLayer
"Hide Layer when Inactive"
Definition Others.h:920
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:922
bool affectSpacing
"Affect Music Spacing" (xml node is <spacing>)
Definition Others.h:917
static const xml::XmlElementArray< LayerAttributes > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool useRestOffset
"Adjust Floating Rests by ". Determines if restOffset is used. (xml node is <useRestOff>)
Definition Others.h:913
bool onlyIfOtherLayersHaveNotes
"Apply Settings Only if Notes are in Other Layers" (xml node is <floatLayer>)
Definition Others.h:912
LayerAttributes(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:906
bool freezTiesToStems
"Freeze Ties in the Same Direction as Stems" (xml node is <flipTies>)
Definition Others.h:911
Represents the name associated with a MarkingCategory.
Definition Others.h:1114
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1118
Represents a category of markings used.
Definition Others.h:1015
bool usesTextFont
whether this category uses the text font
Definition Others.h:1054
Evpu horzOffset
Additional horizontal offset.
Definition Others.h:1049
bool usesMusicFont
whether this category uses the music font
Definition Others.h:1055
std::string getName() const
gets the name of the marking category
Definition Others.cpp:103
bool usesBreakMmRests
whether this category uses the breakMmRest setting
Definition Others.h:1059
bool usesNumberFont
whether this category uses the number font
Definition Others.h:1056
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 Others.h:1085
Evpu vertOffsetBaseline
Additional vertical offset.
Definition Others.h:1050
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1102
bool userCreated
whether the user created this category
Definition Others.h:1061
CategoryType
Enumeration for the type of marking category.
Definition Others.h:1022
@ RehearsalMarks
Rehearsal marks, often used for reference points in the score.
@ Dynamics
Dynamics markings, such as forte, piano, etc.
@ Invalid
There should always be a category type supplied.
@ TechniqueText
Technique text such as "pizzicato" or "arco.".
@ Misc
Represents miscellaneous markings that do not fit into other categories.
@ TempoMarks
Tempo indications such as Allegro (with or without metronome marking).
@ TempoAlterations
Tempo alteration markings, such as accel. and rit. (xml value is "tempoAlts")
@ ExpressiveText
Expressive text such as "espressivo.".
std::map< Cmper, MusxInstanceWeak< TextExpressionDef > > textExpressions
A list of text expressions in this category.
Definition Others.h:1076
AlignJustify justification
Justification for the text within the marking.
Definition Others.h:1046
std::shared_ptr< FontInfo > musicFont
Music font.
Definition Others.h:1041
static const xml::XmlElementArray< MarkingCategory > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu vertOffsetEntry
Additional vertical entry offset.
Definition Others.h:1051
std::shared_ptr< FontInfo > textFont
Text font.
Definition Others.h:1040
CategoryStaffListSet createStaffListSet() const
Create a StaffListSet for the given instance. This can be used to interrogate whether a staff appears...
Definition Others.cpp:112
VerticalMeasExprAlign vertAlign
Vertical alignment for the marking.
Definition Others.h:1045
std::map< Cmper, MusxInstanceWeak< ShapeExpressionDef > > shapeExpressions
A list of shape expressions in this category.
Definition Others.h:1070
Cmper staffList
The staff list if useStaffList is true.
Definition Others.h:1064
bool breakMmRest
whether expressions in this category break multimeasure rests
Definition Others.h:1060
bool usesPositioning
whether this category uses the positioning elements (Finale UI only allows true)
Definition Others.h:1057
bool usesStaffList
whether this category uses a staff list
Definition Others.h:1058
MarkingCategory(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1034
HorizontalMeasExprAlign horzAlign
Horizontal alignment for the marking.
Definition Others.h:1044
CategoryType categoryType
Category type of the marking.
Definition Others.h:1037
std::shared_ptr< FontInfo > numberFont
Number font (not implemented in the Finale U.I.)
Definition Others.h:1042
Assigns a TextExpressionDef or ShapeExpressionDef to a measure.
Definition Others.h:1307
static const xml::XmlElementArray< MeasureExprAssign > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
StaffCmper staffAssign
The staff to which this expression is assigned, or -1 if it is assigned to top staff and -2 if assign...
Definition Others.h:1358
ShowStaffList
Where to show the assignment. (Used both for staff list and singleton assignments....
Definition Others.h:1346
@ ScoreAndPart
Score and Part(s). (Default value may not appear in xml.)
ShowStaffList showStaffList
"Show On Score and Part(s)|Score Only|Part(s) Only".
Definition Others.h:1366
bool hidden
True if the expression is hidden.
Definition Others.h:1368
int rehearsalMarkOffset
Restarts the rehearsal mark sequence at this 1-based sequence value. If this is zero,...
Definition Others.h:1373
ChannelSwitchTarget
The values for "On Playback Affect". The target channels are specified in the Score Manager dropdown ...
Definition Others.h:1323
@ Current
Current channel. (Default value may not appear in xml.)
@ ToExpression
Switch to expression channel. (xml value is "toDyn")
@ ToLayer3
Switch to layer 3 channel. (xml value is "toL3")
@ ToChord
Switch to chord channel. (xml value is "toChord")
@ ToLayer4
Switch to layer 4 channel. (xml value is "toL4")
@ ToLayer2
Switch to layer 2 channel. (xml value is "toL2")
@ ToLayer1
Switch to layer 1 channel. (xml value is "toL1")
bool calcIsHiddenByAlternateNotation() const
Calculates if this assignment is hidden by alternate notation.
Definition Others.cpp:395
EntryInfoPtr calcAssociatedEntry() const
Calculates the entry associated with the the measure expression. This is the entry that Finale uses f...
Definition Others.cpp:340
bool dontScaleWithEntry
Inverse of "Scale Expression with Attached Note".
Definition Others.h:1364
Cmper staffList
Definition Others.h:1370
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1426
int staffGroup
Assignment is part of a group of assignments associated with a staff list and should be modified as a...
Definition Others.h:1369
Cmper shapeExprId
The Cmper of a shape expression (xml node is <shapeExprID>)
Definition Others.h:1354
int graceNoteIndex
1-based index from leftmost grace note. 0 = main note.
Definition Others.h:1372
MusxInstance< TextExpressionDef > getTextExpression() const
Gets the assigned text expression.
Definition Others.cpp:282
ChannelSwitchTarget channelSwitch
"On Playback Affect" value.
Definition Others.h:1363
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 Others.h:1414
PlaybackStart playbackStart
Where to start playback.
Definition Others.h:1365
MeasureExprAssign(const DocumentWeakPtr &document, Cmper ID, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:1317
Cmper textExprId
The Cmper of a text expression (xml node is <textExprID>)
Definition Others.h:1353
int layer
The 1-based layer number (1..4) to which this expression is assigned. (0 = all layers....
Definition Others.h:1359
CategoryStaffListSet createStaffListSet() const
Create a StaffListSet for the given instance. This can be used to interrogate whether a staff appears...
Definition Others.cpp:298
bool calcAppliesToLayer(LayerIndex layerIndex) const
Calculates if this assignment applies to the specified layer.
Definition Others.cpp:364
Evpu horzEvpuOff
Horizontal Evpu offset from the default position.
Definition Others.h:1355
PlaybackStart
The choice where to start playback.
Definition Others.h:1336
@ PositionInMeasure
Start playback at the Edu position of the assignment. (xml value is "measPos")
@ BeginningOfMeasure
Start playback at beginning of measure. (Default value may not appear in xml.)
bool createdByHp
This assignment was created by Finale's smart playback engine.
Definition Others.h:1367
StaffCmper calcAssignedStaffId(bool forPageView=true) const
Calculates the effective staffId for the assignment, returning top or bottom staff if appropriate.
Definition Others.cpp:369
MusxInstance< StaffComposite > createCurrentStaff(bool forPageView=true) const
Creates the current staff for this assignment.
Definition Others.cpp:390
Evpu vertEvpuOff
Vertical Evpu offset from the default position (xml node is <vertOff>)
Definition Others.h:1357
bool calcIsAssignedInRequestedPart() const
Calculates if this assignment is assigned in the current part or score, based on the requested part I...
Definition Others.cpp:356
bool voice2
Definition Others.h:1360
MusxInstance< ShapeExpressionDef > getShapeExpression() const
Gets the assigned shape expression.
Definition Others.cpp:290
bool calcIsPseudoTie(utils::PseudoTieMode mode, const EntryInfoPtr &forStartEntry) const
Returns true if this shape expression is likely acting as a pseudo tie for the specified mode.
Definition Others.cpp:431
Edu eduPosition
Horizontal Edu position (xml node is <horzEduOff>)
Definition Others.h:1356
Measure number data that can differ in score or part.
Definition Others.h:1454
bool showOnStart
"Show On Start of Staff System" (xml node is <startOfLine>)
Definition Others.h:1477
Evpu multipleXdisp
Horizontal offset for mid-system numbers.
Definition Others.h:1466
bool showOnEvery
"Show on Every" activates mid-system numbers. (xml node is <multipleOf>)
Definition Others.h:1478
bool useMultipleEncl
Use enclosure for mid-system settings.
Definition Others.h:1483
bool showOnBottom
Show measure numbers on the bottom staff.
Definition Others.h:1485
bool useStartEncl
Use enclosure for start-of-system settings.
Definition Others.h:1482
std::shared_ptr< Enclosure > startEnclosure
Enclosure settings for numbers at start of system.
Definition Others.h:1461
std::shared_ptr< FontInfo > startFont
The font used for numbers at start of system.
Definition Others.h:1458
AlignJustify multipleJustify
Justification for mid-system numbers.
Definition Others.h:1489
static const xml::XmlElementArray< ScorePartData > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::shared_ptr< FontInfo > mmRestFont
The font used for multi-measure rest ranges.
Definition Others.h:1460
AlignJustify startAlign
Alignment of numbers at the start of system.
Definition Others.h:1474
bool showOnTop
Show measure numbers on the top staff.
Definition Others.h:1484
int incidence
"Show on Every" value.
Definition Others.h:1473
Evpu startYdisp
Vertical offset for numbers at start of system.
Definition Others.h:1465
bool showMmRange
"Show Measure Ranges on Multimeasure Rests" (xml node is <mmRestRange>)
Definition Others.h:1480
bool excludeOthers
Exclude other staves.
Definition Others.h:1486
int startWith
"Beginning with" value. (This value is 0-based. The Finale UI adds 1 for user display....
Definition Others.h:1472
AlignJustify mmRestJustify
Justification for multi-measure rest ranges.
Definition Others.h:1490
AlignJustify startJustify
Justification for numbers at the start of system.
Definition Others.h:1488
char32_t rightMmBracketChar
UTF-32 code for the right bracket of multi-measure rest ranges.
Definition Others.h:1471
bool hideFirstMeasure
"Hide First Measure Number in Region." (xml node is <exceptFirstMeas>)
Definition Others.h:1479
std::shared_ptr< FontInfo > multipleFont
The font used for mid-system numbers.
Definition Others.h:1459
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 Others.h:1492
AlignJustify mmRestAlign
Alignment for multi-measure ranges.
Definition Others.h:1476
Evpu multipleYdisp
Vertical offset for mid-system numbers.
Definition Others.h:1467
bool showOnMmRest
"Show on Multimeasure Rests" (xml node is <mmRestRangeForce>)
Definition Others.h:1481
AlignJustify multipleAlign
Alignment for mid-system numbers.
Definition Others.h:1475
Evpu mmRestXdisp
Horizontal offset for multi-measure rest ranges.
Definition Others.h:1468
char32_t leftMmBracketChar
UTF-32 code for the left bracket of multi-measure rest ranges.
Definition Others.h:1470
std::shared_ptr< Enclosure > multipleEnclosure
Enclosure settings for mid-system numbers.
Definition Others.h:1462
Evpu startXdisp
Horizontal offset for numbers at start of system.
Definition Others.h:1464
Evpu mmRestYdisp
Vertical offset for multi-measure rest ranges.
Definition Others.h:1469
bool breakMmRest
Mid-system numbers break multimeasure rests.
Definition Others.h:1487
Represents the Measure Number Region with detailed font and enclosure settings for score and part dat...
Definition Others.h:1436
bool smpteFrames
SMPTE frames (when showing real time measure numbers). This option supercedes timePrecision.
Definition Others.h:1529
std::shared_ptr< ScorePartData > scoreData
Score-wide measure number data.
Definition Others.h:1513
bool hidePage
Indicates if numbers are hidden in Page View.
Definition Others.h:1534
static const xml::XmlElementArray< MeasureNumberRegion > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool hideScroll
Indicates if numbers are hidden in Scroll View and Studio View.
Definition Others.h:1533
std::string prefix
Text prefix for measure numbers (encoded UTF-8).
Definition Others.h:1521
MeasureNumberRegion(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1439
int base
The base used for measure number calculations. (Frequently 10 for numeric or 26 for alpha)
Definition Others.h:1519
bool doubleUp
Indicates "a, b, c...aa, bb, cc" number style: the symbols are repeated when they exceed the base.
Definition Others.h:1526
int region
The region ID. This 1-based value is set by Finale and never changes, whereas the Cmper may change wh...
Definition Others.h:1531
TimePrecision timePrecision
Precision for real-time sequences.
Definition Others.h:1532
std::optional< int > calcDisplayNumberFor(MeasCmper measureId) const
Returns the visible number for a measure id with respect to the region.
Definition Others.cpp:481
bool calcIncludesMeasure(MeasCmper measureId) const
Calculates whether the input measure is covered by this measure number region.
Definition Others.h:1538
TimePrecision
Precision for time display.
Definition Others.h:1445
@ WholeSeconds
the default value
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 Others.h:1558
bool noZero
Indicates the base has no zero value: true for alpha sequences and false for numeric sequences.
Definition Others.h:1525
char32_t startChar
UTF-32 code for the first character in the sequence. (Frequently '0', 'a', or 'A')
Definition Others.h:1518
MeasCmper startMeas
Starting measure number for the region.
Definition Others.h:1516
std::optional< int > calcLastDisplayNumber() const
Returns the last visible number in the region. This function takes into account if the last measure i...
Definition Others.cpp:500
bool time
Display real time sequences rather than numbers or letters.
Definition Others.h:1527
std::string suffix
Text suffix for measure numbers (encoded UTF-8).
Definition Others.h:1522
MeasCmper endMeas
Ending measure number for the region (non-inclusive).
Definition Others.h:1517
int numberOffset
This value is 1 less than the "Starting Number" field in the Finale UI. (xml node is <offset>)
Definition Others.h:1520
int getStartNumber() const
Returns the starting display measure number for this region. The value is irrespective of whether the...
Definition Others.h:1546
bool countFromOne
Start counting from 1 rather than 0, e.g., "1, 2, 3, 4" numbering style (in conjuction with base 10)
Definition Others.h:1524
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1571
std::shared_ptr< ScorePartData > partData
Part-specific measure number data.
Definition Others.h:1514
bool includeHours
Display hours (when showing real time measure numbers)
Definition Others.h:1528
bool useScoreInfoForPart
Use score-wide settings for parts.
Definition Others.h:1530
Represents the attributes of a measure.
Definition Others.h:1128
MusxInstance< KeySignature > createKeySignature(const std::optional< StaffCmper > &forStaff=std::nullopt) const
Creates and returns a shared pointer to an instance of the KeySignature for this measure and staff.
Definition Others.cpp:155
bool hasTextBlock
Indicates if the measure has a measure-assigned text block. See details::MeasureTextAssign.
Definition Others.h:1206
std::shared_ptr< KeySignature > globalKeySig
the global key signature on this measure. Guaranteed to be non-null. (xml node is <keySig>)
Definition Others.h:1179
Evpu width
"Ideal" measure width in Evpu. Page layout determines actual width.
Definition Others.h:1178
PositioningType
Positioning (music spacing) type for the measure.
Definition Others.h:1137
@ BeatChart
Legacy option "Use a Beat Positioning Chart" (xml node is <beatchart>)
@ TimeSignature
Legacy option "Use the Time Signature" (xml node is <timesig>)
@ TimeSigPlusPositioning
"According to the Time Signature" (xml node is <timesigPlusPos>)
@ Manual
"Manually (By Dragging)" the default.
@ BeatChartPlusPositioning
"Using Beat-Chart Spacing" (xml node is <beatchartPlusPos>)
Cmper beats
Number of beats in the measure or the Cmper to a timesigUpper composite numerator list.
Definition Others.h:1180
bool useDisplayTimesig
Indicates whether to use the display time signature.
Definition Others.h:1214
std::optional< Duration > calcDefaultPickupRestValue() const
Returns the default rest value used for empty staves in a pickup, if any.
Definition Others.cpp:228
MusxInstance< MeasureNumberRegion > findMeasureNumberRegion() const
Finds the measure number region containing this measure.
Definition Others.cpp:121
Evpu backSpaceExtra
Extra space at end of bar.
Definition Others.h:1187
bool breakMmRest
"Break a Multimeasure Rests" (xml node is <breakRest>)
Definition Others.h:1203
bool abbrvTime
Definition Others.h:1212
bool hasSmartShape
Indicates if the measure has a smart shape.
Definition Others.h:1190
bool groupBarlineOverride
Override the barline specified by a details::StaffGroup (if any)
Definition Others.h:1191
std::optional< int > calcDisplayNumber() const
Calculates the visible number of the measure, based on the first MeasureNumberRegion that contains it...
Definition Others.cpp:144
bool pageBreak
If true, begin new page here. (Behavior is weird if the measure is not the first of its system....
Definition Others.h:1219
bool hasEnding
Indicates the presence of a repeat ending. (xml node is <barEnding>)
Definition Others.h:1210
MusxInstance< TimeSignature > createTimeSignature(const std::optional< StaffCmper > &forStaff=std::nullopt) const
Create a shared pointer to an instance of the TimeSignature for this measure and staff.
Definition Others.cpp:178
bool compositeNumerator
Indicates a composite numerator for the time signature. (xml node is <altNumTsig>)
Definition Others.h:1195
Cmper divBeat
Divisions per beat (Edu) or the Cmper to a timesigLower composite denominator list.
Definition Others.h:1181
util::Fraction calcMinLegacyPickupSpacer() const
Calculates the legacy pickup spacer in any staff, in global Edu values.
Definition Others.cpp:242
bool showFullNames
"Show Full Staff & Group Names"
Definition Others.h:1192
bool compositeDispNumerator
Indicates a composite numerator for the display time signature. (xml node is <displayAltNumTsig>)
Definition Others.h:1217
bool evenlyAcrossMeasure
"Position Evenly Across Measure" (xml node is <indivPosDef>)
Definition Others.h:1199
BarlineType barlineType
Barline type. (xml node is <barline>)
Definition Others.h:1207
Cmper customBarShape
Cmper of Shape Designer ShapeDef for custom right barline.
Definition Others.h:1184
ShowKeySigMode
How and whether to show a Key Signature in this measure.
Definition Others.h:1163
@ IfNeeded
Show if needed (the default)
@ Always
Always show (xml value is "deltaKey")
@ Never
Never show (xml value is "ignoreKey")
BarlineType
Barline type for left and right barlines.
Definition Others.h:1148
@ Tick
Right barlines only: tick barline (xml value is "partial")
@ None
No barline. (This is the default value for the enum.)
@ Custom
Custom barline (created with Shape Designer)
@ OptionsDefault
Left barlines only: use value from options::BarlineOptions (xml values is "default")
@ Solid
Solid (thick) barline.
@ Dashed
Dashed barline (xml value is "dash")
Cmper dispDivbeat
Displayed divisions per beat (Edu) or the Cmper to a timesigLower composite denominator list.
Definition Others.h:1183
Evpu frontSpaceExtra
Extra space at front of bar.
Definition Others.h:1186
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1294
bool compositeDenominator
Indicates a composite denominator for the time signature. (xml node is <altDenTsig>)
Definition Others.h:1196
ShowKeySigMode showKey
Show mode for key signatures.
Definition Others.h:1197
Cmper customLeftBarShape
Cmper of Shape Designer ShapeDef for custom left barline.
Definition Others.h:1185
ShowTimeSigMode
How and whether to show a Time Signature in this measure.
Definition Others.h:1172
bool calcShouldShowFullNames() const
Calculates if a measure should show full names vs. abbreviated names.
Definition Others.h:1222
bool hasOssia
Indicates if the measure has an ossia assigned. (xml node is <arbitMusic>)
Definition Others.h:1205
bool hasExpression
Indicates if the measure has an expression assigned. See MeasureExprAssign. (xml node is <hasExpr>)
Definition Others.h:1202
Cmper dispBeats
Displayed beats in the measure or the Cmper to a timesigUpper composite numerator list.
Definition Others.h:1182
bool hasMeasNumbIndivPos
Has individual measure numbering positioning. (xml node is <mnSepPlace>)
Definition Others.h:1193
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 Others.h:1286
PositioningType positioningMode
Positioning type for the measure. (xml node is <posMode>)
Definition Others.h:1200
bool forwardRepeatBar
Indicates a forward repeat bar on this measure. (xml node is <forRepBar>)
Definition Others.h:1208
bool hasTextRepeat
Indicates the presence of one or more text repeat assigments. (xml node is <txtRepeats>)
Definition Others.h:1211
bool compositeDispDenominator
Indicates a composite denominator for the display time signature. (xml node is <displayAltDenTsig>)
Definition Others.h:1218
static const xml::XmlElementArray< Measure > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool noMeasNum
Inverse of "Include in Measure Numbering".
Definition Others.h:1204
BarlineType leftBarlineType
Left barline type. (xml node is <leftBarline>)
Definition Others.h:1216
util::Fraction calcDuration(const std::optional< StaffCmper > &forStaff=std::nullopt) const
Calculates the duration of the measure according to the time signature.
Definition Others.cpp:272
ShowTimeSigMode showTime
Show mode for time signatures.
Definition Others.h:1198
bool allowSplitPoints
"Allow Horizontal Split Points" See SplitMeasure. (xml node is <posSplit>)
Definition Others.h:1194
Measure(const DocumentWeakPtr &document, Cmper measureId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1131
bool hasChord
Indicates the presence of one or more chords.
Definition Others.h:1215
bool hideCaution
"Hide Cautionary Clefs, Key, and Time Signature"
Definition Others.h:1189
bool breakWordExt
Barline ends word extensions on lyrics.
Definition Others.h:1188
bool backwardsRepeatBar
Indicates a backwards repeat bar on this measure. (xml node is <bacRepBar>)
Definition Others.h:1209
MusxInstance< TimeSignature > createDisplayTimeSignature(const std::optional< StaffCmper > &forStaff=std::nullopt) const
Create a shared pointer to an instance of the display TimeSignature for this measure and staff.
Definition Others.cpp:194
util::Fraction calcTimeStretch(StaffCmper forStaff) const
Calculates the time stretch. This is the value by which independent time edus are multiplied to get g...
Definition Others.h:1281
bool beginNewSystem
"Begin a New Staff System" (xml node is <lineBreak>)
Definition Others.h:1201
Represents a group ID for a multi-staff setup.
Definition Others.h:1629
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1637
MultiStaffGroupId(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1632
static const xml::XmlElementArray< MultiStaffGroupId > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Cmper staffGroupId
Cmper of details::StaffGroup that has the instrument's full and abbreviated names.
Definition Others.h:1635
Represents a group of instruments spanning multiple staves.
Definition Others.h:1647
MusxInstance< Staff > getStaffInstanceAtIndex(size_t x) const
Returns the staff instance (without any staff styles applied) at the index position or null if out of...
Definition Others.cpp:518
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1689
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 Others.h:1679
std::vector< StaffCmper > staffNums
Vector of Cmper values representing up to 3 staff numbers.
Definition Others.h:1653
MusxInstance< details::StaffGroup > getStaffGroup(Cmper forPartId) const
Gets the group associated with this multistaff instrument, or nullptr if not found.
Definition Others.cpp:538
std::optional< size_t > getIndexOf(StaffCmper staffId) const
Returns the index of the input staffId or std::nullopt if not found.
Definition Others.h:1663
static const xml::XmlElementArray< MultiStaffInstrumentGroup > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
MultiStaffInstrumentGroup(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1650
static void calcAllMultiStaffGroupIds(const DocumentPtr &document)
Used by the factory to calculate all multistaff ids and visual ids for instances of Staff.
Definition Others.cpp:554
MusxInstance< Staff > getFirstStaffInstance() const
Returns the first staff instance without any staff styles applied (with integrity check)
Definition Others.cpp:529
Represents the attributes of a multimeasure rest in the page layout.
Definition Others.h:1583
int symbolThreshold
If the number of rests is less than this value, symbols are used when useSymbols is true....
Definition Others.h:1595
static const xml::XmlElementArray< MultimeasureRest > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu numVertAdj
Vertical number adjustment, sign-revered from Finale UI. (xml node is <numdec>)
Definition Others.h:1591
Cmper shapeDef
Cmper of Shape Designer ShapeDef that specifies the H-bar.
Definition Others.h:1592
bool useSymbols
Use symbols instead of an H-bar, based on symbolThreshold. (xml node is <useCharRestStyle>)
Definition Others.h:1600
int calcNumberOfMeasures() const
Calculates the number of measures spanned by this multimeasure rest.
Definition Others.h:1606
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 Others.h:1611
MeasCmper nextMeas
Next measure after the multimeasure west.
Definition Others.h:1590
MultimeasureRest(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper startMeasure)
Constructor function.
Definition Others.h:1586
MeasCmper getStartMeasure() const
Get the start measure of this multimeasure rest.
Definition Others.h:1603
Evpu measWidth
Width of the multemeasure rest "measure" in Evpu. (xml node is <meaSpace>)
Definition Others.h:1589
Evpu shapeStartAdjust
Start adjustment for the H-bar shape in Evpu. (xml node is <startAdjust>)
Definition Others.h:1598
Evpu shapeEndAdjust
End adjustment for the shape in Evpu. (xml node is <endAdjust>)
Definition Others.h:1599
Evpu symbolSpacing
Spacing between symbols in Evpu. (xml node is <spacing>)
Definition Others.h:1596
int numStart
Definition Others.h:1593
Evpu numHorzAdj
Horizontal number adjustment in Evpu. (xml node is <numAdjX>)
Definition Others.h:1597
bool calcIsNumberVisible() const
Calculates if the number on this multimeasure rest is visible.
Definition Others.h:1609
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1619
Overrides abbreviated name positioning for Staff.
Definition Others.h:1700
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1704
Overrides full name positioning for Staff.
Definition Others.h:1728
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1732
Overrides abbreviated name positioning for StaffStyle.
Definition Others.h:1714
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1718
Overrides full name positioning for StaffStyle.
Definition Others.h:1742
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1746
Contains horizontal and vertical offsets, alignment, and expansion settings for name positioning.
Definition CommonClasses.h:702
NamePositioning(const DocumentWeakPtr &document, Cmper partId=SCORE_PARTID, ShareMode shareMode=ShareMode::All, Cmper cmper=0)
Constructs an NamePositioning object.
Definition CommonClasses.h:712
Represents a page text assignment with positioning and page range properties.
Definition Others.h:1812
PageCmper startPage
Definition Others.h:1837
Evpu yDisp
The vertical displacement from the default position. (xml tag is <ydisp>)
Definition Others.h:1836
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 Others.h:1887
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1913
PageTextAssign(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:1829
static MusxInstanceList< others::PageTextAssign > getArrayForPageId(const DocumentPtr &document, Cmper partId, PageCmper pageId)
Returns all the page text assignments for a given page number in a given part. This allows the caller...
Definition Others.cpp:671
bool indRpPos
Individual right page positioning indicator. (xml tag is <indRpPos>)
Definition Others.h:1851
bool hPosPageEdge
Definition Others.h:1847
bool hidden
Indicates if the page text appears only on screen. (xml tag is <postIt>)
Definition Others.h:1845
std::optional< PageCmper > calcEndPageNumber(Cmper forPartId) const
Return the ending page number, taking into account leading blank pages in all parts This calculation ...
Definition Others.cpp:698
static const xml::XmlElementArray< PageTextAssign > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
PageCmper endPage
Definition Others.h:1839
Evpu rightPgXDisp
Horizontal displacement for right pages (if indRpPos is true). (xml tag is <rightPgXdisp>)
Definition Others.h:1852
PageAssignType oddEven
Determines if a multipage assignment appears on all, even (left), or odd (right) pages.
Definition Others.h:1842
util::EnigmaParsingContext getRawTextCtx(Cmper forPartId, std::optional< Cmper > forPageId=std::nullopt) const
Gets the raw text for parsing this assignment, or nullptr if none.
Definition Others.cpp:651
MusxInstance< TextBlock > getTextBlock() const
Gets the TextBlock for this assignment, or nullptr if none.
Definition Others.cpp:646
PageAssignType
Which pages a multipage assignment appears on.
Definition Others.h:1819
@ AllPages
default (may not appear in xml)
Evpu rightPgYDisp
Vertical displacement for right pages (if indRpPos is true). (xml tag is <rightPgYdisp>)
Definition Others.h:1853
bool isMultiAssignedThruLastPage() const
Returns true if this is a multi-page assignment that is assigned to through last page,...
Definition Others.h:1884
HorizontalAlignment hPosLp
Horizontal alignment on left or all pages (depending on indRpPos). (xml tag is <hposLp>)
Definition Others.h:1843
static MusxInstance< others::PageTextAssign > getForPageId(const DocumentPtr &document, Cmper partId, PageCmper pageId, Inci inci)
Returns a specific page text assignment for a given page number in a given part. This allows the call...
Definition Others.cpp:662
Evpu xDisp
The horizontal displacement from the default position. (xml tag is <xdisp>)
Definition Others.h:1835
std::optional< PageCmper > calcStartPageNumber(Cmper forPartId) const
Return the starting page number, taking into account leading blank pages in all parts....
Definition Others.cpp:680
VerticalAlignment vPos
Vertical alignment. (xml tag is <vpos>)
Definition Others.h:1846
HorizontalAlignment hPosRp
Horizontal alignment on right pages (if indRpPos is true). (xml tag is <hposRp>)
Definition Others.h:1844
bool isMultiPage() const
Returns true if this is a multi-page assignment.
Definition Others.h:1880
bool vPosPageEdge
Definition Others.h:1849
Cmper block
The Cmper for the assigned TextBlock. (xml tag is <block>)
Definition Others.h:1834
Represents the attributes of a page in the page layout.
Definition Others.h:1755
std::optional< SystemCmper > lastSystemId
Computed by the Resolver function calcSystemInfo. This value is not in the xml.
Definition Others.h:1771
util::Fraction calcPageScaling() const
Calculate the page scaling.
Definition Others.h:1779
Evpu margTop
Top margin in Evpu. (Sign reversed in Finale UI.)
Definition Others.h:1766
bool isBlank() const
is this a blank page
Definition Others.h:1776
Evpu width
Page width in Evpu.
Definition Others.h:1762
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1785
std::optional< MeasCmper > firstMeasureId
Computed by the Resolver function calcSystemInfo. This value is not in the xml.
Definition Others.h:1772
static const xml::XmlElementArray< Page > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
int percent
Percent value (scaling factor).
Definition Others.h:1763
std::optional< MeasCmper > lastMeasureId
Computed by the Resolver function calcSystemInfo. This value is not in the xml.
Definition Others.h:1773
Evpu height
Page height in Evpu.
Definition Others.h:1761
static void calcSystemInfo(const DocumentPtr &document)
Resolver function used by factory to compute system and measure information for all pages.
Definition Others.cpp:582
Evpu margLeft
Left margin in Evpu.
Definition Others.h:1767
Evpu margBottom
Bottom margin in Evpu.
Definition Others.h:1768
Evpu margRight
Right margin in Evpu. (Sign reversed in Finale UI.)
Definition Others.h:1769
SystemCmper firstSystemId
First system on the page (-1 if page is blank). See StaffSystem. (xml node is <firstSystem>)
Definition Others.h:1764
bool holdMargins
"Hold Margins" (xml node is <scaleContentOnly>)
Definition Others.h:1765
Page(const DocumentWeakPtr &document, PageCmper pageId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1758
Represents the attributes of a Finale "partDef".
Definition Others.h:1925
Cmper nameId
Cmper of the part name TextBlock. (xml tag is <nameID>)
Definition Others.h:1932
int smartMusicInst
SmartMusic instrument ID (-1 if not used).
Definition Others.h:1940
std::optional< PageCmper > calcPageNumberFromAssignmentId(PageCmper pageAssignmentId) const
Calculates a page number in this part from a page assignment ID. (See PageTextAssign....
Definition Others.cpp:776
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1978
int copies
Number of copies to print.
Definition Others.h:1934
Cmper calcScrollViewCmper() const
Returns the StaffUsed cmper for Scroll View for this part. See Document::calcScrollViewCmper.
Definition Others.cpp:771
int numberOfLeadingBlankPages
The number of leading blank pages in the part. This is not in the xml but calculated in factory::Docu...
Definition Others.h:1944
static const xml::XmlElementArray< PartDefinition > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool applyFormat
Meaning uncertain. May have to do with page format for parts and whether it has been applied.
Definition Others.h:1937
Cmper defaultNameStaff
If non-zero, this points to the Staff that has the default name (if unspecified by nameId....
Definition Others.h:1941
int partOrder
Value that determines the order of listed parts in Finale's UI.
Definition Others.h:1933
static MusxInstanceList< PartDefinition > getInUserOrder(const DocumentPtr &document)
Return the linked parts sorted in UI order by partOrder.
Definition Others.cpp:762
PageCmper calcAssignmentIdFromPageNumber(PageCmper pageId) const
Calculates a page assignment ID from a page number in the part.
Definition Others.cpp:793
bool extractPart
Indicates if the part should be extracted.
Definition Others.h:1936
PartDefinition(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1928
Cmper defaultNameGroup
If non-zero, this points to the details::StaffGroup that has the default name (if unspecified by name...
Definition Others.h:1942
int numberOfPages
The total number of pages in the part. This is not in the xml but calculated in factory::DocumentFact...
Definition Others.h:1945
util::EnigmaParsingContext getNameRawTextCtx() const
Get the raw text context for the part name if any.
Definition Others.cpp:718
static MusxInstance< PartDefinition > getScore(const DocumentPtr &document)
Return the instance for the score.
Definition Others.cpp:753
std::string getName(util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii) const
Get the part name if any.
Definition Others.cpp:729
bool useAsSmpInst
Indicates if the part is used as a SmartMusic instrument.
Definition Others.h:1939
bool isScore() const
Return true if this part corresponds to the score.
Definition Others.h:1954
bool needsRecalc
Indicates if the part needs update layout.
Definition Others.h:1938
bool printPart
Indicates the part should be printed.
Definition Others.h:1935
Represents global values that can vary by part.
Definition Others.h:1990
Cmper scrollViewIUlist
If this value is non-zero, it is the iuList Cmper of the current Staff List in Scroll View.
Definition Others.h:1998
bool showTransposed
If true, "Display Concert Pitch" is unchecked for the part.
Definition Others.h:1997
Cmper specialPartExtractionIUList
If non-zero, Special Part Extraction is enabled and this is the Cmper for its legacy StaffUsed array.
Definition Others.h:2016
static const xml::XmlElementArray< PartGlobals > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
PartGlobals(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1993
Cmper calcScrollViewCmper() const
Return the StaffUsed cmper for Scroll View for this part.
Definition Others.cpp:808
Cmper studioViewIUlist
The iuList Cmper for Studio View.
Definition Others.h:1999
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2024
Defines voicing options for linked parts, either by selection rules or by assigning a layer.
Definition Others.h:2039
SingleLayerVoiceType
Choices for how notes are selected when the staff contains only one layer.
Definition Others.h:2058
@ SelectedNotes
Use flags select1st, select2nd, etc., to select notes. (xml value is "selected")
@ BottomNote
Select the bottom note. (xml value is "botNote")
@ AllNotes
Select all notes. (This is the default value and may never appear in the xml.)
@ TopNote
Select the top note.
PartVoicing(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper staff)
Constructor function.
Definition Others.h:2046
bool select1st
Select the first note from top or bottom. (See selectFromBottom.)
Definition Others.h:2068
static const xml::XmlElementArray< PartVoicing > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool enabled
Indicates that this voicing is enabled.
Definition Others.h:2065
VoicingType voicingType
Determines how notes are selected from the staff.
Definition Others.h:2066
LayerIndex multiLayer
The 0-based LayerIndex of the layer to include when the staff contains multiple layers and voicingTyp...
Definition Others.h:2077
bool selectFromBottom
Definition Others.h:2073
VoicingType
Choices for how notes are selected from the staff.
Definition Others.h:2051
@ UseSingleLayer
Display all notes from the layer specified by singleLayer. (This is the default value and may never a...
@ UseMultipleLayers
Display selected notes from one or more layer(s).
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2090
bool select5th
Select the fifth note from top or bottom. (See selectFromBottom.)
Definition Others.h:2072
SingleLayerVoiceType singleLayerVoiceType
Determines how notes are selected when the staff contains only one layer. (xml node is <singleVoiceTy...
Definition Others.h:2067
bool selectSingleNote
If true, always include any passages containing only a single note.
Definition Others.h:2075
bool calcShowsLayer(LayerIndex layerIndex, bool frameIsMultilayerInScore) const
Returns if this part voicing includes the specified layer in a given frame context.
Definition Others.cpp:820
bool calcShowsNote(const NoteInfoPtr ¬eInfoPtr) const
Returns if this part voicing includes the specified note.
Definition Others.cpp:831
bool select3rd
Select the third note from top or bottom. (See selectFromBottom.)
Definition Others.h:2070
bool select2nd
Select the second note from top or bottom. (See selectFromBottom.)
Definition Others.h:2069
LayerIndex singleLayer
The 0-based LayerIndex of the layer to uses when voicingType is UseSingleLayer.
Definition Others.h:2076
bool select4th
Select the fourth note from top or bottom. (See selectFromBottom.)
Definition Others.h:2071
Represents percussion notehead and staff position info for a given percussion note type.
Definition Others.h:2103
char32_t wholeNotehead
Codepoint for whole notehead (from percussion notehead font. See options::FontOptions::FontType::Perc...
Definition Others.h:2117
char32_t closedNotehead
Codepoint for closed notehead (from percussion notehead font. See options::FontOptions::FontType::Per...
Definition Others.h:2115
const percussion::PercussionNoteType & getNoteType() const
Gets a reference to the PercussionNoteType record for this note id.
Definition Others.cpp:887
PercussionNoteInfo(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:2106
int staffPosition
Definition Others.h:2110
PercussionNoteTypeId percNoteType
The percussion note type ID. Compare this with the value in details::PercussionNoteCode.
Definition Others.h:2109
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2137
static const xml::XmlElementArray< PercussionNoteInfo > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
char32_t dwholeNotehead
Codepoint for double whole notehead (from percussion notehead font. See options::FontOptions::FontTyp...
Definition Others.h:2118
char32_t halfNotehead
Codepoint for half notehead (from percussion notehead font. See options::FontOptions::FontType::Percu...
Definition Others.h:2116
PercussionNoteTypeId getBaseNoteTypeId() const
Gets the base PercussionNoteTypeId.
Definition Others.h:2125
int calcStaffReferencePosition() const
Calculates the fixed staff position for this percussion note relative to a staff's reference line.
Definition Others.h:2121
unsigned getNoteTypeOrderId() const
Gets the orderId.
Definition Others.h:2130
Per-instance positioning overrides for RepeatBack.
Definition Others.h:2387
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2391
Represents a repeat-backward marker with positioning and behavior properties.
Definition Others.h:2177
bool resetOnAction
"Reset on Repeat Action" (xml tag is <clrOnChange>)
Definition Others.h:2193
Evpu rightVPos
The vertical position of the upper right bracket, relative to the default. (xml tag is <line2>)
Definition Others.h:2198
RepeatTriggerType trigger
The condition that triggers the jumpAction.
Definition Others.h:2195
static const xml::XmlElementArray< RepeatBack > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
int passNumber
Definition Others.h:2184
Evpu leftVPos
The vertical position of the lower left bracket, relative to the default. (xml tag is <line1>)
Definition Others.h:2189
bool hidden
Inverse of "Show" checkbox.
Definition Others.h:2192
Evpu leftHPos
The horizontal position of the left bracket, relative to the default. (xml tag is <pos1>)
Definition Others.h:2188
Evpu rightHPos
The horizontal position of the upper right bracket, relative to the default. (xml tag is <pos2>)
Definition Others.h:2197
RepeatActionType jumpAction
The jump action for this repeat ending. The automatic jump is to the next ending. (xml tag is <action...
Definition Others.h:2194
Cmper staffList
If non-zero, specifies a staff list for which staves to show the ending.
Definition Others.h:2196
std::optional< MeasCmper > calcTargetMeasure() const
Calculates the target measure for this repeat-back jump action, if any.
Definition Others.cpp:925
bool topStaffOnly
"Show On: Top Staff Only"
Definition Others.h:2191
RepeatStaffListSet createStaffListSet() const
Create a StaffListSet for the given instance. This can be used to interrogate whether a staff appears...
Definition Others.cpp:920
int targetValue
Absolute or relative measure number, depending on jumpAction. (xml tag is <target>)
Definition Others.h:2187
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2216
RepeatBack(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:2180
bool individualPlacement
"Allow Individual Edits Per Staff" (xml tag is <indivPlac>)
Definition Others.h:2190
MusxInstance< RepeatIndividualPositioning > getIndividualPositioning(StaffCmper staffId) const
Returns the RepeatIndividualPositioning record for a given staff. Check individualPlacement to see if...
Definition Others.cpp:915
Per-instance positioning overrides for the line positioning of RepeatEndingStart.
Definition Others.h:2403
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2407
Represents a repeat ending start marker in the document.
Definition Others.h:2229
Evpu leftVPos
The vertical position of the lower left bracket, relative to the default. (xml tag is <line1>)
Definition Others.h:2241
Evpu rightVPos
The vertical position of the upper right bracket, relative to the default. (xml tag is <line2>)
Definition Others.h:2253
RepeatTriggerType trigger
Definition Others.h:2246
std::string createEndingText() const
Taking into account all options, creates a string containing the text for this ending....
Definition Others.cpp:1053
Evpu leftHPos
The horizontal position of the lower left bracket, relative to the default. (xml tag is <pos1>)
Definition Others.h:2240
Evpu textVPos
The vertical position of the text relative to leftVPos. (xml tag is <textLine>)
Definition Others.h:2251
Evpu endLineVPos
The vertical offset of the final bracket, relative to rightVPos or 0 if the ending is open....
Definition Others.h:2250
Evpu rightHPos
The horizontal position of the upper right bracket, relative to the default. (xml tag is <pos2>)
Definition Others.h:2252
MusxInstance< RepeatIndividualPositioning > getIndividualPositioning(StaffCmper staffId) const
Returns the RepeatIndividualPositioning record for a given staff. Check individualPlacement to see if...
Definition Others.cpp:1043
static const xml::XmlElementArray< RepeatEndingStart > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool calcIsOpen() const
Calculates if the ending is open or closed, based on a number of factors.
Definition Others.cpp:1018
Evpu textHPos
The horizontal position of the text relative to leftHPos. (xml tag is <textPos>)
Definition Others.h:2239
int targetValue
Absolute or relative measure number, depending on jumpAction. (xml tag is <nextEnd>)
Definition Others.h:2238
bool jumpIfIgnoring
"Skip Ending if Ignoring Repeats" (xml tag is <jmpIgnore>)
Definition Others.h:2249
std::optional< MeasCmper > calcTargetMeasure() const
Calculates the target measure for the ending's jump action, if any.
Definition Others.cpp:994
bool hidden
Inverse of "Show" checkbox.
Definition Others.h:2244
bool topStaffOnly
"Show On: Top Staff Only"
Definition Others.h:2243
Cmper staffList
If non-zero, specifies a staff list for which staves to show the ending.
Definition Others.h:2237
MusxInstance< RepeatIndividualPositioning > getTextIndividualPositioning(StaffCmper staffId) const
Returns the RepeatIndividualPositioning record for the text a given staff. Check individualPlacement ...
Definition Others.cpp:1048
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 Others.h:2290
RepeatStaffListSet createStaffListSet() const
Create a StaffListSet for the given instance. This can be used to interrogate whether a staff appears...
Definition Others.cpp:1076
RepeatActionType jumpAction
The jump action for this repeat ending. The automatic jump is to the next ending. (xml tag is <action...
Definition Others.h:2245
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2299
int calcEndingLength() const
Calculates the number of measures in the ending based on jumpAction.
Definition Others.cpp:958
bool individualPlacement
"Allow Individual Edits Per Staff" (xml tag is <indivPlac>)
Definition Others.h:2242
RepeatEndingStart(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:2232
Per-instance positioning overrides for text positioning of RepeatEndingStart.
Definition Others.h:2419
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2423
Represents the text associated with a RepeatEndingStart.
Definition Others.h:2313
static const xml::XmlElementArray< RepeatEndingText > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::string text
The text.
Definition Others.h:2319
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2321
RepeatEndingText(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:2316
Per-instance positioning overrides for repeat elements.
Definition Others.h:2354
Evpu x1add
Left/start X offset in Evpu.
Definition Others.h:2370
MeasCmper measureId
Measure for text repeats, otherwise zero. (xml tag is <id>)
Definition Others.h:2368
StaffCmper staffId
Staff for this individual positioning. (xml tag is <instno>)
Definition Others.h:2367
static const xml::XmlElementArray< RepeatIndividualPositioning > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool hidden
Overrides the value in the main record. (Ignored for RepeatEndingTextIndividualPositioning)
Definition Others.h:2369
Evpu y2add
Right/end Y offset in Evpu. (Always zero for RepeatEndingTextIndividualPositioning and TextRepeatIndi...
Definition Others.h:2373
Evpu y1add
Left/start Y offset in Evpu.
Definition Others.h:2371
RepeatIndividualPositioning(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructs a RepeatIndividualPositioning object.
Definition Others.h:2364
Evpu x2add
Right/end X offset in Evpu. (Always zero for RepeatEndingTextIndividualPositioning and TextRepeatIndi...
Definition Others.h:2372
Represents a list of repeat ending numbers for a RepeatEndingStart instance.
Definition Others.h:2334
static const xml::XmlElementArray< RepeatPassList > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2340
Stores the properties and behaviors of shape expressions.
Definition Others.h:2448
int auxData1
Auxiliary data for the expression. (xml node is "auxdata1")
Definition Others.h:2463
bool masterShape
Whether this expression references the master copy of the shape.
Definition Others.h:2467
PlaybackType playbackType
Playback behavior of the text expression.
Definition Others.h:2470
int playPass
"Play Only on Pass" value.
Definition Others.h:2464
Cmper categoryId
Identifier for the category of the text expression. (xml node is "categoryID")
Definition Others.h:2459
bool breakMmRest
Whether the text breaks multimeasure rests.
Definition Others.h:2465
AlignJustify horzExprJustification
Horizontal justification of the text expression.
Definition Others.h:2473
bool noPrint
Inverse of "Hidden" checkbox.
Definition Others.h:2468
int value
Value associated with the expression (e.g., velocity).
Definition Others.h:2461
std::string description
Description of the text expression. (xml node is "descStr")
Definition Others.h:2479
bool useCategoryFonts
Whether to use category fonts (may not be meaningful shape expressions).
Definition Others.h:2477
Cmper shapeDef
Identifier for the Shape Designer ShapeDef associated with this expression.
Definition Others.h:2458
bool useAuxData
Whether auxiliary data is used.
Definition Others.h:2466
static const xml::XmlElementArray< ShapeExpressionDef > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
HorizontalMeasExprAlign horzMeasExprAlign
Horizontal alignment of the expression.
Definition Others.h:2471
Evpu yAdjustEntry
Vertical adjustment for entry alignment.
Definition Others.h:2475
RehearsalMarkStyle rehearsalMarkStyle
Auto-sequencing style for rehearsal marks.
Definition Others.h:2460
bool useCategoryPos
Whether to use category position.
Definition Others.h:2478
VerticalMeasExprAlign vertMeasExprAlign
Vertical alignment of the expression.
Definition Others.h:2472
ShapeExpressionDef(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor.
Definition Others.h:2455
MusxInstance< ShapeDef > getShape() const
Get the shape for this shape expression.
Definition Others.cpp:1085
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2484
Evpu measXAdjust
Horizontal adjustment for measurement alignment.
Definition Others.h:2474
Cmper execShape
Executable shape Cmper for playback (ShapeDef)
Definition Others.h:2462
bool noHorzStretch
Inverse of "Allow Horizontal Stretching" checkbox.
Definition Others.h:2469
Evpu yAdjustBaseline
Vertical adjustment for baseline alignment.
Definition Others.h:2476
Defines the split point(s) where a measure may be divided between two systems. A measure can only spl...
Definition Others.h:2513
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2519
static const xml::XmlElementArray< SplitMeasure > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
This class specified the name of a staff list used by @ ref MarkingCategory.
Definition Others.h:2552
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2556
This class is used by MarkingCategory to define the staves for parts in a staff list.
Definition Others.h:2566
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2572
This class is used by MarkingCategory to define the staves for parts in a staff list.
Definition Others.h:2582
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2588
This class specified the name of a staff list used by RepeatEndingStart, RepeatBack,...
Definition Others.h:2598
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2602
This class is used by repeat classes to define the forced staves for parts in a staff list....
Definition Others.h:2629
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2635
This class is used by repeat classes to define the staves for parts in a staff list.
Definition Others.h:2612
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2618
This class is used by repeat classes to define the forced staves for the score in a staff list....
Definition Others.h:2662
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2668
This class is used by repeat classes to define the staves for the score in a staff list.
Definition Others.h:2645
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2651
Generic resolver for a family of staff lists.
Definition Others.h:2681
bool contains(StaffCmper staffId, const MusxInstanceList< StaffUsed > &systemStaves, bool isHidden=false) const noexcept
Returns true is the staff list includes a particular staff on a particular system.
Definition Others.cpp:1112
Defines a staff list. See subclasses for how it is used.
Definition Others.h:2530
static const xml::XmlElementArray< StaffList > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
FloatingValues
Defines special assignment values used for floating staff assignments.
Definition Others.h:2537
@ TopStaff
This value means the assignment is to the top staff of any system or part.
@ BottomStaff
This value means the assignment is to the bottom staff of any system or part.
Represents the attributes of a staff system in the page layout.
Definition Others.h:2704
bool hasStaffScaling
Indicates if any individual staff in the system has scaling applied.
Definition Others.h:2730
Evpu right
Right margin in Evpu. (Sign reversed in Finale UI.)
Definition Others.h:2725
util::Fraction calcSystemScaling() const
Calculate the system scaling.
Definition Others.h:2752
MeasCmper startMeas
Starting measure of the staff system. See Measure.
Definition Others.h:2712
bool scaleVert
"Resize Vertical Space"
Definition Others.h:2732
StaffSystem(const DocumentWeakPtr &document, Cmper staffSystemId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:2707
util::Fraction calcEffectiveScaling() const
Calculates the effective scaling on this system, taking into account page scaling.
Definition Others.cpp:1157
Evpu left
Left margin in Evpu.
Definition Others.h:2724
Efix staffHeight
Staff height in Efix units. Note that this is different units than options::PageFormatOptions::PageFo...
Definition Others.h:2722
int calcNumMeasures() const
Calculates the number of measures on the system, encapsulating how endMeas works.
Definition Others.h:2746
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2774
bool holdMargins
"Hold Margins" (xml node is <scaleContentOnly>)
Definition Others.h:2733
double horzPercent
Definition Others.h:2719
bool placeEndSpaceBeforeBarline
Indicates that extra space is placed before the barline.
Definition Others.h:2731
Evpu distanceToPrev
Distance to the previous staff system in Evpu.
Definition Others.h:2734
std::pair< util::Fraction, util::Fraction > calcMinMaxStaffSizes() const
Calculates the maximum and minimum staff scaling values for this system by searching each staff for i...
Definition Others.cpp:1166
Evpu bottom
Definition Others.h:2726
Evpu extraEndSystemSpace
Extra space at the end of the staff system in Evpu.
Definition Others.h:2736
Evpu top
Top margin in Evpu. (Sign reversed in Finale UI.)
Definition Others.h:2723
PageCmper pageId
The page this system is on. This values is not in the xml but is computed by the factory.
Definition Others.h:2738
bool noNames
Definition Others.h:2728
MeasCmper endMeas
Definition Others.h:2713
static const xml::XmlElementArray< StaffSystem > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
MeasCmper getLastMeasure() const
Encapsulates the weird Finale fact that endMeas is actually one past the end of the system.
Definition Others.h:2742
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 Others.h:2765
MusxInstance< others::Page > getPage() const
Gets the page this system is on.
Definition Others.cpp:1152
Evpu extraStartSystemSpace
Extra space at the start of the staff system in Evpu.
Definition Others.h:2735
int ssysPercent
Staff system scaling percentage (100 means no scaling).
Definition Others.h:2721
An array of StaffUsed defines a set of staves in a staff system or in Scroll View.
Definition Others.h:2788
std::shared_ptr< EnigmaMusicRange > range
The music range. (Late versions of Finale may always include the entire piece here....
Definition Others.h:2796
MusxInstance< Staff > getStaffInstance() const
Returns the Staff instance for this element, without any staff styles applied.
Definition Others.cpp:1285
StaffUsed(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:2791
Evpu distFromTop
Distance from the top of the system (negative is down)
Definition Others.h:2795
StaffCmper staffId
Staff cmper (xml node is <inst>)
Definition Others.h:2794
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2807
static const xml::XmlElementArray< StaffUsed > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
util::Fraction calcEffectiveScaling() const
Calculates the effective scaling on this instance, taking into accound system and page scaling.
Definition Others.cpp:1269
Locks a span of one or more measures so that they always appear in a StaffSystem together.
Definition Others.h:2821
MeasCmper endMeas
Definition Others.h:2827
static const xml::XmlElementArray< SystemLock > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
SystemLock(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:2824
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2832
A single tempo change value entered with Finale's Tempo tool.
Definition Others.h:2852
int unit
Hardware ticks/sec. For Macs this is 1000.
Definition Others.h:2865
TempoChange(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:2855
int ratio
Definition Others.h:2860
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2876
static const xml::XmlElementArray< TempoChange > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
int getAbsoluteTempo(NoteType noteType=NoteType::Quarter) const
Computes the absolute tempo represented by the TempoChange Instance.
Definition Others.cpp:1188
Edu eduPosition
The position within the measure. (xml node is <eldur>)
Definition Others.h:2864
bool isRelative
Definition Others.h:2866
Represents the attributes of a Finale "textBlock".
Definition Others.h:2888
TextType textType
Text tag indicating the type of text block. (xml tag is <textTag>)
Definition Others.h:2925
bool noExpandSingleWord
Do not expand single word.
Definition Others.h:2919
bool roundCorners
Use rounded corners on frame.
Definition Others.h:2923
bool wordWrap
Wrap words (in frames)
Definition Others.h:2920
bool newPos36
Definition Others.h:2915
TextType
Enum for textTag values.
Definition Others.h:2897
@ Expression
textId is a Cmper for a texts::ExpressionText
@ Block
textId is a Cmper for a texts::BlockText
static std::string getText(const DocumentPtr &document, const Cmper textId, Cmper forPartId, bool trimTags=false, util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii)
return displayable text with Enigma tags removed
Definition Others.cpp:1224
Efix cornerRadius
Corner radius for rounded corners.
Definition Others.h:2924
TextJustify justify
Justification (left, center, right, full, force full)
Definition Others.h:2914
Cmper shapeId
If non-zero, the Cmper of the custom frame shape. (xml tag is <shapeID>)
Definition Others.h:2908
bool showShape
Show shape.
Definition Others.h:2918
util::EnigmaParsingContext getRawTextCtx(Cmper forPartId, std::optional< Cmper > forPageId=std::nullopt, util::EnigmaString::TextInsertCallback defaultInsertFunc=util::EnigmaString::defaultInsertsCallback) const
Gets the raw text block context (from the texts pool) based on textType.
Definition Others.cpp:1205
Evpu width
Width of standard frame. If zero, the width expands to fit the text.
Definition Others.h:2909
Evpu height
Height of standard frame. If zero, the height expands to fit the text.
Definition Others.h:2910
Evpu xAdd
Horizontal offset from handle.
Definition Others.h:2912
int lineSpacingPercentage
Line spacing percentage.
Definition Others.h:2911
Cmper textId
Cmper of the text block. (xml tag is <textID>)
Definition Others.h:2907
static const xml::XmlElementArray< TextBlock > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
TextBlock(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:2903
Efix inset
Text inset from frame (all sides)
Definition Others.h:2921
Efix stdLineThickness
Thickness of standard frame line. (xml tag is <stdLine>)
Definition Others.h:2922
Evpu yAdd
Vertical offset from handle.
Definition Others.h:2913
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2939
Stores the properties and behaviors of text expressions.
Definition Others.h:2949
Evpu yAdjustBaseline
Vertical adjustment for baseline alignment.
Definition Others.h:2978
RehearsalMarkStyle rehearsalMarkStyle
Auto-sequencing style for rehearsal marks.
Definition Others.h:2961
bool matchPlayback
"Match Playback to Metronome Marking Text"
Definition Others.h:2967
bool hideMeasureNum
"Hide Measure Numbers" (used on Rehearsal Marks)
Definition Others.h:2966
util::EnigmaParsingContext getRawTextCtx(Cmper forPartId) const
Gets the raw text context for parsing this expression, or nullptr if none.
Definition Others.cpp:1242
MusxInstance< Enclosure > getEnclosure() const
Gets the enclosure for this expression, or nullptr if none.
Definition Others.cpp:1259
Cmper categoryId
Identifier for the category of the text expression.
Definition Others.h:2960
PlaybackType playbackType
Playback behavior of the text expression.
Definition Others.h:2972
Evpu measXAdjust
Horizontal adjustment for measurement alignment.
Definition Others.h:2976
int playPass
"Play Only on Pass" value.
Definition Others.h:2965
int auxData1
Auxiliary data for the expression. (xml node is "auxdata1")
Definition Others.h:2964
AlignJustify horzExprJustification
Horizontal justification of the text expression.
Definition Others.h:2975
MusxInstance< TextBlock > getTextBlock() const
Gets the TextBlock for this expression, or nullptr if none.
Definition Others.cpp:1237
bool useCategoryFonts
Whether to use category fonts.
Definition Others.h:2979
static const xml::XmlElementArray< TextExpressionDef > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Cmper execShape
Executable shape Cmper for playback (ShapeDef)
Definition Others.h:2963
std::string description
Description of the text expression. (xml node is "descStr")
Definition Others.h:2981
TextExpressionDef(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor.
Definition Others.h:2956
bool hasEnclosure
Whether the text expression has an enclosure. (xml node is "newEnclosure")
Definition Others.h:2969
int value
Value associated with the expression (e.g., velocity).
Definition Others.h:2962
bool createdByHp
Whether the text block was created by Finale's smart playback system.
Definition Others.h:2971
bool useAuxData
Whether auxiliary data is used.
Definition Others.h:2968
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2995
bool breakMmRest
Whether the text breaks multimeasure rests.
Definition Others.h:2970
VerticalMeasExprAlign vertMeasExprAlign
Vertical alignment of the expression.
Definition Others.h:2974
Evpu yAdjustEntry
Vertical adjustment for entry alignment.
Definition Others.h:2977
HorizontalMeasExprAlign horzMeasExprAlign
Horizontal alignment of the expression.
Definition Others.h:2973
bool useCategoryPos
Whether to use category position.
Definition Others.h:2980
Cmper textIdKey
Identifier for the TextBlock associated with this.
Definition Others.h:2959
The enclosure for a text expression (if it exists)
Definition Others.h:3007
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:3011
static const xml::XmlElementArray< TextExpressionEnclosure > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Represents a text repeat assignment with positioning and behavior properties.
Definition Others.h:3024
bool jumpOnMultiplePasses
If true, use TextRepeatDef::passList to get the passes and ignore passNumber. (xml tag is <multiActua...
Definition Others.h:3042
RepeatStaffListSet createStaffListSet() const
Create a StaffListSet for the given instance. This can be used to interrogate whether a staff appears...
Definition Others.cpp:1314
bool individualPlacement
"Allow Individual Edits Per Staff" (xml tag is <indivPlac>)
Definition Others.h:3038
Cmper textRepeatId
The Cmper of the assigned TextRepeatDef. (xml tag is <repnum>)
Definition Others.h:3036
Cmper staffList
If non-zero, specifies a staff list for which staves to show the ending.
Definition Others.h:3047
int targetValue
Measure number, TextRepeatDef ID, or offset, depending on jumpAction. (xml tag is <target>)
Definition Others.h:3035
TextRepeatAssign(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:3027
std::optional< MeasCmper > calcTargetMeasure() const
Calculates the target measure for this text repeat assignment, if any.
Definition Others.cpp:1319
bool autoUpdate
"Auto-Update Target"
Definition Others.h:3044
int passNumber
Play Section N Times, Jump on Pass, Stop on Pass value, depending on jumpAction and trigger....
Definition Others.h:3034
bool topStaffOnly
"Show On: Top Staff Only"
Definition Others.h:3039
Evpu vertPos
The vertical offset from default of the text repeat marker.
Definition Others.h:3037
bool jumpIfIgnoring
"Jump if Ignoring Repeats" (xml tag is <jmpIgnore>)
Definition Others.h:3046
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:3066
MusxInstance< RepeatIndividualPositioning > getIndividualPositioning(StaffCmper staffId) const
Returns the RepeatIndividualPositioning record for a given staff. Check individualPlacement to see if...
Definition Others.cpp:1308
bool hidden
Inverse of "Show" checkbox.
Definition Others.h:3040
static const xml::XmlElementArray< TextRepeatAssign > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
RepeatTriggerType trigger
The condition that triggers the jumpAction.
Definition Others.h:3045
RepeatActionType jumpAction
The jump action for this repeat assignment. (xml tag is <action>)
Definition Others.h:3043
bool resetOnAction
"Reset on Repeat Action" (xml tag is <clrOnChange>)
Definition Others.h:3041
Evpu horzPos
The horizontal offset from default of the text repeat marker.
Definition Others.h:3033
Defines text repeat elements with font styling and justification.
Definition Others.h:3082
PoundReplaceOption poundReplace
"Replace # With" choice.
Definition Others.h:3105
TextRepeatDef(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:3096
PoundReplaceOption
Enum for poundReplace options.
Definition Others.h:3089
@ MeasureNumber
"Measure Number in Target" (xml value is "measNum")
@ Passes
"Number of Times Played" (the default: may never appear in xml)
@ RepeatID
"Text Repeat ID in Target" (xml value is "repeatID")
std::shared_ptr< FontInfo > font
The font for this text repeat. (xml nodes <fontID>, <fontSize>, and <efx>)
Definition Others.h:3102
bool useThisFont
"Use This Font" (for the # substitution)
Definition Others.h:3104
std::vector< int > passList
If this vector contains elements, they define the repeat passes that apply to this instance.
Definition Others.h:3109
AlignJustify justification
Definition Others.h:3106
bool hasEnclosure
Whether the text repeat has an enclosure. (xml node is <newEnclosure>)
Definition Others.h:3103
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:3111
static const xml::XmlElementArray< TextRepeatDef > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
The enclosure for a text expression (if it exists)
Definition Others.h:3124
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:3128
static const xml::XmlElementArray< TextRepeatEnclosure > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Per-instance positioning overrides for TextRepeatDef.
Definition Others.h:2434
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2438
Represents the text associated with a TextRepeatDef.
Definition Others.h:3141
TextRepeatText(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:3144
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:3151
static const xml::XmlElementArray< TextRepeatText > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::string text
The text.
Definition Others.h:3149
Represents an individual lower composite item in the time signature.
Definition Others.h:3176
static const xml::XmlElementArray< CompositeItem > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool startGroup
Indicates the start of a group.
Definition Others.h:3179
Edu unit
The size of the unit for this item. (xml node is <integer>)
Definition Others.h:3178
Represents the lower composite time signature array.
Definition Others.h:3164
static constexpr std::string_view XmlNodeName
XML node name.
Definition Others.h:3186
static const xml::XmlElementArray< TimeCompositeLower > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::vector< std::shared_ptr< CompositeItem > > items
composite items collection
Definition Others.h:3184
TimeCompositeLower(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:3167
Represents an individual composite item in the time signature.
Definition Others.h:3211
util::Fraction fullFraction() const
Return the beats as a complete fraction.
Definition Others.h:3218
bool startGroup
Indicates the start of a group.
Definition Others.h:3215
static const xml::XmlElementArray< CompositeItem > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Edu beats
The number of beats in this item. (xml node is <integer>)
Definition Others.h:3213
util::Fraction fraction
Fraction of beats (between 0 <= fraction < 1)
Definition Others.h:3214
Represents the upper composite time signature structure.
Definition Others.h:3199
static constexpr std::string_view XmlNodeName
XML node name.
Definition Others.h:3226
static const xml::XmlElementArray< TimeCompositeUpper > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::vector< std::shared_ptr< CompositeItem > > items
Collection of composite items.
Definition Others.h:3224
TimeCompositeUpper(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:3202
Maps the number of flats to a tonal center for a linear custom key. If there are zero flats or sharps...
Definition Others.h:3243
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:3249
static const xml::XmlElementArray< TonalCenterFlats > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Maps number of sharps (0..7) to a tonal center for a linear custom key. Also maps 0 sharps or flats....
Definition Others.h:3265
static const xml::XmlElementArray< TonalCenterSharps > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:3271
Wrapper class for interpreting and rendering Enigma-style strings with insert handling.
Definition EnigmaString.h:424
AccidentalStyle
Enumeration to specify the type of accidental substitution representation.
Definition EnigmaString.h:200
@ Ascii
Use ASCII substitutions for accidentals.
static TextInsertCallback defaultInsertsCallback
Inserts callback to take all default insert subsitutions determined by parseEnigmaText.
Definition EnigmaString.h:348
std::function< std::optional< std::string >(const std::vector< std::string > &parsedCommand)> TextInsertCallback
Iteration function type that the parser calls back when it encounters an Enigma text insert that requ...
Definition EnigmaString.h:345
A class to represent fractions with integer m_numerator and m_denominator, automatically reduced to s...
Definition Fraction.h:38
static constexpr Fraction fromPercent(int percent)
Constructs a Fraction from a percent (where 100 is 100%)
Definition Fraction.h:97
@ Info
Informational messages for general program operation.
static void log(LogLevel level, const std::string &message)
Logs a message with a specific severity level.
Definition Logger.h:87
RehearsalMarkStyle
Specifies the sequencing style for rehearsal marks.
Definition Others.h:931
@ MeasureNumber
Displays the current measure number.
@ None
Default value, no rehearsal mark style.
@ LetterNumbers
A, B, C...A1, B1, C1.
@ LettersNumbersLowerCase
a, b, c...a1, b1, c1
@ Letters
A, B, C...AA, BB, CC.
@ LettersLowerCase
a, b, c...aa, bb, cc
VerticalMeasExprAlign
Specifies the vertical alignment relative to musical elements for an expression or marking category.
Definition Others.h:993
@ AboveStaffOrEntry
Align above the staff or entry.
@ BottomNote
Align with bottom note.
@ BelowEntry
Align below entry.
@ RefLine
Align to staff reference line.
@ TopNote
Align with top note.
@ BelowStaffOrEntry
Align below the staff or entry.
@ AboveEntry
Align above entry.
@ BelowStaff
Align below the staff.
@ AboveStaff
Align above ths staff (the default).
HorizontalMeasExprAlign
Specifies the horizontal alignment relative to musical elements for an expression or marking category...
Definition Others.h:971
@ RightBarline
Align with left barline. (xml value is "rightEdge")
@ AfterClefKeyTime
Align after clef/key/time/repeat.
@ RightOfAllNoteheads
Align to the right of all noteheads.
@ StartTimeSig
Align at the start of the time signature.
@ LeftBarline
Align with left barline (the default). (xml value is "leftEdge", if encountered)
@ CenterPrimaryNotehead
Align to the center of the primary notehead.
@ CenterOverBarlines
Align over the center of the barlines.
@ CenterAllNoteheads
Align to the center of all noteheads.
@ CenterOverMusic
Align over the center of music.
@ LeftOfAllNoteheads
Align left of all noteheads.
@ LeftOfPrimaryNotehead
Align to the left of the primary notehead.
@ StartOfMusic
Align at start of music.
@ Manual
"Horizontal Click Position" alignment.
RepeatActionType
Enum for the possible values of the <action> element.
Definition Others.h:2146
@ Stop
Stops playback after a number of passes (e.g. "Fine")
@ JumpToMark
Jump to a specified repeat number (used by text repeats).
@ JumpAuto
Automatically Jump. (the default). The targetValue is meaningless for this action.
@ JumpAbsolute
Jump to the measure number specified in the targetValue field.
@ NoJump
Do not jump. The targetValue is meaningless for this action.
PlaybackType
Specifies the playback behavior for the an expression or marking category.
Definition Others.h:946
@ Swing
Playback in swing style.
@ SmartPlaybackOn
Turn on smart playback. (xml value is "hpOn")
@ SmartPlaybackOff
Turn off smart playback. (xml value is "hpOff")
@ IgnoreTempoToolChanges
Ignore changes from Tempo Tool. (xml value is "stopTempo")
@ RestrikeKeys
Playback retrikes keys. (xml value is "rekey")
@ Channel
Playback set the MIDI channel.
@ MidiPitchWheel
Playback affects the MIDI pitch wheel. (xml value is "midiPitchwheel")
@ KeyVelocity
Playback affects key velocity. (xml value is "amplitude")
@ MidiController
Playback type for MIDI controller commands.
@ MidiPatchChange
Playback changes the MIDI patch.
@ PercussionMidiMap
Playback uses percussion MIDI map. (xml value is "percMidiMap")
@ PlayTempoToolChanges
Play changes from Tempo Tool. (xml value is "startTempo")
@ Transpose
Playback causes transposition.
@ ChannelPressure
Playback affects MIDI channel pressure. (xml value is "midiPressure")
@ Tempo
Playback affects tempo. (xml value is "time")
@ Dump
Playback is an arbitrary data dump. (Data is in node <playDumpText> with the same Cmper value....
RepeatTriggerType
Enum for the possible values of the <trigger> element.
Definition Others.h:2161
@ Always
Always jump (the default)
@ OnPass
Jump on a sepecified pass number.
@ UntilPass
Jump until a specified pass number is reached.
ShowClefMode
Enum representing the clef display mode for a frame.
Definition EnumClasses.h:165
KnownShapeDefType
Enumerates the shape types we can recognize semantically.
Definition ShapeDesigner.h:39
uint16_t PercussionNoteTypeId
multiple times in one layout. The rest are the "pure" note type. See percussion::PercussionNoteType.
Definition Fundamentals.h:74
constexpr double EFIX_PER_SPACE
Number of Efix units per space (spatium)
Definition Fundamentals.h:89
NoteType
Enum class representing note types based on EDU values.
Definition EnumClasses.h:141
int16_t MeasCmper
Enigma meas Cmper (may be negative when not applicable)
Definition Fundamentals.h:64
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:39
unsigned int LayerIndex
Layer index (valid values are 0..3)
Definition Fundamentals.h:71
constexpr Cmper SCORE_PARTID
The part id of the score.
Definition Fundamentals.h:79
int16_t Inci
Enigma "incident" key type.
Definition Fundamentals.h:56
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
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
int32_t EntryNumber
Entry identifier.
Definition Fundamentals.h:69
std::shared_ptr< Document > DocumentPtr
Shared Document pointer.
Definition BaseClasses.h:55
int16_t StaffCmper
Enigma staff (staffId) Cmper (may be negative when not applicable)
Definition Fundamentals.h:65
int16_t SystemCmper
Enigma systems Cmper (may be negative when not applicable)
Definition Fundamentals.h:66
AlignJustify
Alignment and justification options for staff and group names.
Definition EnumClasses.h:30
int16_t PageCmper
Enigma page Cmper (may be negative when not applicable)
Definition Fundamentals.h:67
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
Represents a percussion note type mapping entry.
Definition PercussionNoteType.h:40