25#include <unordered_map>
32#include "musx/util/EnigmaString.h"
33#include "musx/util/Logger.h"
34#include "musx/util/Fraction.h"
36#include "BaseClasses.h"
37#include "CommonClasses.h"
47class IndependentStaffDetails;
76 std::string_view xmlTag()
const override {
return XmlNodeName; }
81 constexpr static std::string_view
XmlNodeName =
"acciAmountFlats";
108 std::string_view xmlTag()
const override {
return XmlNodeName; }
113 constexpr static std::string_view
XmlNodeName =
"acciAmountSharps";
134 std::string_view xmlTag()
const override {
return XmlNodeName; }
165 std::string_view xmlTag()
const override {
return XmlNodeName; }
170 constexpr static std::string_view
XmlNodeName =
"acciOrderSharps";
319 :
OthersBase(document, partId, shareMode, cmper, inci)
352 MUSX_INTEGRITY_ERROR(
"Beat chart for measure " + std::to_string(
getCmper()) +
" has a control instance in inci " + std::to_string(*
getInci()));
355 control = std::make_shared<Control>();
356 MUSX_INTEGRITY_ERROR(
"Beat chart for measure " + std::to_string(
getCmper()) +
" is missing its control instance.");
398 std::shared_ptr<FontInfo>
font;
425 std::string_view xmlTag()
const override {
return XmlNodeName; }
430 constexpr static std::string_view
XmlNodeName =
"chordSuffixPlay";
447 :
OthersBase(document, partId, shareMode, cmper, inci) {}
473 static constexpr uint32_t SYMBOL_CHARSET_MAC = 0xfff;
474 static constexpr uint32_t SYMBOL_CHARSET_WIN = 2;
479 :
OthersBase(document, partId, shareMode, cmper) {}
544 :
OthersBase(document, partId, shareMode, cmper, inci) {}
555 std::vector<std::shared_ptr<const Entry>>
getEntries();
561 MUSX_INTEGRITY_ERROR(
"Frame " + std::to_string(
getCmper()) +
" has non-zero startTime and non-zero startEntry or endEntry.");
564 MUSX_INTEGRITY_ERROR(
"Frame " + std::to_string(
getCmper()) +
" has no start entry.");
567 MUSX_INTEGRITY_ERROR(
"Frame " + std::to_string(
getCmper()) +
" has no end entry.");
586 :
OthersBase(document, partId, shareMode, cmper, inci) {}
593 std::shared_ptr<Staff>
getStaff()
const;
598 static std::shared_ptr<Staff>
getStaffAtIndex(
const std::vector<std::shared_ptr<InstrumentUsed>>& iuArray,
Cmper index);
619 :
OthersBase(document, partId, shareMode, cmper) {}
638 :
OthersBase(document, partId, shareMode, cmper) {}
651 std::vector<std::shared_ptr<StepElement>>
steps;
656 return static_cast<unsigned>(std::count_if(
steps.begin(),
steps.end(), [](
const auto& step) {
657 return step->diatonic;
678 :
OthersBase(document, partId, shareMode, cmper) {}
788class ShapeExpressionDef;
789class TextExpressionDef;
814 :
OthersBase(document, partId, shareMode, cmper) {}
860 constexpr static std::string_view
XmlNodeName =
"markingsCategory";
876 :
OthersBase(document, partId, shareMode, cmper) {}
880 constexpr static std::string_view
XmlNodeName =
"markingsCategoryName";
894 :
OthersBase(document, measureId, shareMode, cmper) {}
992 std::shared_ptr<KeySignature>
createKeySignature(
const std::optional<InstCmper>& forStaff = std::nullopt)
const;
996 std::shared_ptr<TimeSignature>
createTimeSignature(
const std::optional<InstCmper>& forStaff = std::nullopt)
const;
1006 if (!globalKeySig) {
1030 :
OthersBase(document, ID, shareMode, cmper, inci) {}
1057 MUSX_INTEGRITY_ERROR(
"Expression assignment at measure " + std::to_string(
getCmper()) +
" inci " + std::to_string(
getInci().value_or(-1))
1058 +
" has no expression definition ID.");
1060 MUSX_INTEGRITY_ERROR(
"Expression assignment at measure " + std::to_string(
getCmper()) +
" inci " + std::to_string(
getInci().value_or(-1))
1061 +
" has both text expr ID " + std::to_string(
textExprId) +
" and shape expr ID " + std::to_string(
shapeExprId));
1081 :
OthersBase(document, partId, shareMode, cmper) {}
1204 :
OthersBase(document, partId, shareMode, startMeasure) {}
1232 MUSX_INTEGRITY_ERROR(
"Multimeasure rest at " + std::to_string(
getCmper()) +
" in part " + std::to_string(
getPartId()) +
" spans 0 or fewer measures.");
1250 :
OthersBase(document, partId, shareMode, cmper) {}
1268 :
OthersBase(document, partId, shareMode, cmper) {}
1282 for (
size_t x = 0; x <
staffNums.size(); x++) {
1285 return std::nullopt;
1295 MUSX_INTEGRITY_ERROR(
"MultiStaffInstrumentGroup " + std::to_string(
getCmper()) +
" contains no staves.");
1297 MUSX_INTEGRITY_ERROR(
"MultiStaffInstrumentGroup " + std::to_string(
getCmper()) +
" contains more than 3 staves.");
1301 constexpr static std::string_view
XmlNodeName =
"multiStaffInstGroup";
1315 :
OthersBase(document, pageId, shareMode, cmper) {}
1350 :
OthersBase(document, partId, shareMode, cmper) {}
1401 :
OthersBase(document, partId, shareMode, cmper) {}
1457 :
OthersBase(document, partId, shareMode, cmper) {}
1492 :
OthersBase(document, partId, shareMode, cmper)
1526 MUSX_INTEGRITY_ERROR(
"RepeatEndingStart at measure " + std::to_string(
getCmper()) +
" has an unexpected trigger value " +
1527 std::to_string(
int(
trigger)));
1549 :
OthersBase(document, partId, shareMode, cmper) {}
1567 std::string_view xmlTag()
const override {
return XmlNodeName; }
1584 std::string_view xmlTag()
const override {
return XmlNodeName; }
1605 :
OthersBase(document, partId, shareMode, cmper)
1688 :
OthersBase(document, partId, shareMode, cmper) {}
1728 :
OthersBase(document, partId, shareMode, cmper)
1827 :
OthersBase(document, partId, shareMode, cmper) {}
1934 MUSX_INTEGRITY_ERROR(
"Staff " + std::to_string(
getCmper()) +
" has neither a standard nor a custom staff definition.");
1936 MUSX_INTEGRITY_ERROR(
"Staff " + std::to_string(
getCmper()) +
" has both a standard and a custom staff definition.");
1940 [](
const auto& a,
const auto& b) { return a < b; });
1944 MUSX_INTEGRITY_ERROR(
"Staff " + std::to_string(
getCmper()) +
" has transposition with neither keysig nor chromatic transposition defined.");
1946 MUSX_INTEGRITY_ERROR(
"Staff " + std::to_string(
getCmper()) +
" has transposition with both keysig and chromatic transposition defined.");
1974 :
Staff(document, partId, shareMode, cmper) {}
2028 +
" (" + std::to_string(
getCmper()) +
") does not override anything.");
2048 :
MusicRange(document, partId, shareMode, cmper, inci) {}
2061 MUSX_INTEGRITY_ERROR(std::string(
"Staff style assignment has no staff style id:")
2062 +
" Part " + std::to_string(
getPartId())
2063 +
" Staff " + std::to_string(
getCmper())
2088 void applyStyle(
const std::shared_ptr<StaffStyle>& staffStyle);
2116 :
OthersBase(document, staffSystemId, shareMode, cmper)
2165 :
OthersBase(document, partId, shareMode, cmper, inci)
2210 :
OthersBase(document, partId, shareMode, cmper) {}
2255 :
OthersBase(document, partId, shareMode, cmper) {}
2302 constexpr static std::string_view
XmlNodeName =
"textExpressionEnclosure";
2319 :
OthersBase(document, partId, shareMode, cmper, inci)
2398 constexpr static std::string_view
XmlNodeName =
"textRepeatEnclosure";
2415 :
OthersBase(document, partId, shareMode, cmper)
2438 :
OthersBase(document, partId, shareMode, cmper)
2454 std::vector<std::shared_ptr<CompositeItem>>
items;
2473 :
OthersBase(document, partId, shareMode, cmper)
2494 std::vector<std::shared_ptr<CompositeItem>>
items;
2514 std::string_view xmlTag()
const override {
return XmlNodeName; }
2536 std::string_view xmlTag()
const override {
return XmlNodeName; }
Base class to enforce polymorphism across all DOM classes.
Definition BaseClasses.h:64
Cmper getPartId() const
Gets the partId for this instance (or 0 for score)
Definition BaseClasses.h:102
DocumentPtr getDocument() const
Gets a reference to the Document.
Definition BaseClasses.h:89
virtual void integrityCheck()
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition BaseClasses.h:133
ShareMode
Describes how this instance is shared between part and score.
Definition BaseClasses.h:72
Represents the default font settings for a particular element type.
Definition CommonClasses.h:83
Template pattern for OthersBase items consisting of an array of a single item.
Definition BaseClasses.h:259
OthersArray(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition BaseClasses.h:265
Base class for all "others" types.
Definition BaseClasses.h:220
std::optional< Inci > getInci() const
Gets the optional array index (inci).
Definition BaseClasses.h:247
Cmper getCmper() const
Gets the cmper key value.
Definition BaseClasses.h:240
Lists the aleration values of each nth flat in a custom key signature. Normally these values are all ...
Definition Others.h:75
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:81
Lists the aleration values of each nth sharp in a custom key signature. Normally these values are all...
Definition Others.h:107
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:113
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:133
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:139
Lists the order of sharps by pitch class index (0..6 = C..B) in a custom key signature....
Definition Others.h:164
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:170
static const xml::XmlElementArray< AcciOrderSharps > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Stores the properties and behaviors of articulation definitions.
Definition Others.h:184
bool autoVert
Whether vertical auto-positioning is enabled.
Definition Others.h:232
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:269
Evpu xOffsetAlt
Horizontal offset for the alternate symbol.
Definition Others.h:247
Evpu yOffsetMain
Vertical offset for the main symbol.
Definition Others.h:243
char32_t charAlt
Alternate symbol character (utf32).
Definition Others.h:240
int startTopNoteDelta
Attack change for the top note.
Definition Others.h:253
int durBotNoteDelta
Duration change for the bottom note.
Definition Others.h:258
char32_t charMain
Main symbol character (utf32).
Definition Others.h:228
Cmper mainShape
Main shape ID (if applicable).
Definition Others.h:251
bool autoStack
Whether automatic stacking is enabled.
Definition Others.h:237
int ampTopNotePercent
Key velocity percentage for the top note.
Definition Others.h:263
bool requireAllFields() const override
Definition Others.h:267
int durTopNotePercent
Duration percent change for the top note.
Definition Others.h:259
bool aboveSymbolAlt
Whether the alternate symbol is used above. (Otherwise main symbol is used.)
Definition Others.h:234
int ampBotNotePercent
Key velocity percentage for the bottom note.
Definition Others.h:264
bool centerOnStem
Whether centering on the stem is enabled.
Definition Others.h:238
SlurInteractionMode
Defines the interaction mode with slurs.
Definition Others.h:214
@ Ignore
default value (may not appear in xml)
Evpu defVertPos
Default vertical position.
Definition Others.h:244
Evpu xOffsetMain
Horizontal offset for the main symbol.
Definition Others.h:242
Evpu yOffsetAlt
Vertical offset for the alternate symbol.
Definition Others.h:248
Cmper altShape
Alternate shape ID (if applicable).
Definition Others.h:252
bool altIsShape
Whether the alternate symbol is a shape.
Definition Others.h:250
std::shared_ptr< FontInfo > fontAlt
The font info for the alternate symbol. (xml nodes <fontAlt>, <sizeAlt>, and <efxAlt>)
Definition Others.h:241
int startTopNotePercent
Attack change percent for the top note.
Definition Others.h:255
bool playArtic
Whether playback articulation is enabled.
Definition Others.h:246
bool insideSlur
Whether the articulation is inside a slur. (Used in addition to SlurInteractionMode::InsideSlur)
Definition Others.h:236
AutoVerticalMode autoVertMode
Auto vertical positioning mode.
Definition Others.h:233
int durTopNoteDelta
Duration change for the top note.
Definition Others.h:257
std::shared_ptr< FontInfo > fontMain
The font info for the main symbol. (xml nodes <fontMain>, <sizeMain>, and <efxMain>)
Definition Others.h:229
bool belowSymbolAlt
Whether the alternate symbol is used below. (Otherwise main symbol is used.)
Definition Others.h:235
int ampBotNoteDelta
Key velocity change for the bottom note.
Definition Others.h:262
SlurInteractionMode slurInteractionMode
Slur interaction mode.
Definition Others.h:239
int startBotNotePercent
Attack change percent for the bottom note.
Definition Others.h:256
bool mainIsShape
Whether the main symbol is a shape.
Definition Others.h:249
int durBotNotePercent
Duration percent change for the bottom note.
Definition Others.h:260
CopyMode
Defines the character copy mode (vertical or horizontal)
Definition Others.h:204
@ 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:261
AutoVerticalMode
Defines the automatic vertical positioning mode. These values are only meaningful if autoVert is true...
Definition Others.h:191
@ 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:254
bool outsideStaff
Whether the articulation is outside the staff.
Definition Others.h:265
bool autoHorz
Whether horizontal auto-positioning is enabled.
Definition Others.h:231
ArticulationDef(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor.
Definition Others.h:225
CopyMode copyMode
"Copy Main Symbol" option.
Definition Others.h:230
bool avoidStaffLines
Whether to avoid staff lines.
Definition Others.h:245
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:329
Edu totalDur
Total logical duration of the measure (XML: <totalDur>)
Definition Others.h:331
Evpu minWidth
Minimum required width (XML: <minWidth>)
Definition Others.h:333
static const xml::XmlElementArray< Control > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu totalWidth
Total width allocated to the measure (XML: <totalWidth>)
Definition Others.h:332
Evpu allotWidth
Allotted width before justification (XML: <allotWidth>)
Definition Others.h:334
A single beat chart element from Finale's music spacing system.
Definition Others.h:315
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:360
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition Others.h:348
Edu dur
Duration of this beat span.
Definition Others.h:343
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:340
BeatChartElement(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:318
Evpu minPos
Minimum position (see remarks in the class-level description of BeatChartElement)
Definition Others.h:346
Evpu endPos
End position of the beat span.
Definition Others.h:345
Evpu pos
Horizontal position within the measure.
Definition Others.h:344
Represents a single element in a chord suffix (e.g., a symbol like "1" or "+").
Definition Others.h:377
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:398
Evpu xdisp
Horizontal displacement in EVPU.
Definition Others.h:400
Prefix prefix
Optional prefix for the symbol, e.g., "plus".
Definition Others.h:403
bool isNumber
Indicates the symbol value is numeric rather than a UTF-32 character.
Definition Others.h:402
char32_t symbol
Unicode symbol (xml node is <suffix>)
Definition Others.h:399
Evpu ydisp
Vertical displacement in EVPU.
Definition Others.h:401
ChordSuffixElement(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:393
Prefix
Enum for chord symbol prefix options.
Definition Others.h:384
@ 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:405
Represents a list of repeat ending numbers for a RepeatEndingStart instance.
Definition Others.h:424
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:430
Represents an element in multimeasure clef list with its positioning and percentage values.
Definition Others.h:443
bool afterBarline
"Place Clef After Barline"
Definition Others.h:457
ShowClefMode clefMode
The clef mode from the <clefMode> element.
Definition Others.h:455
static const xml::XmlElementArray< ClefList > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
int xEvpuOffset
The xEvpuOffset value from the <xEvpuOffset> element.
Definition Others.h:454
Edu xEduPos
The xEduPos value from the <xEduPos> element.
Definition Others.h:451
ClefIndex clefIndex
The 0-based clef index from the <clef> element.
Definition Others.h:450
bool unlockVert
"Allow Vertical Drag"
Definition Others.h:456
ClefList(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:446
Evpu yEvpuPos
The yEvpuPos value from the <yEvpuPos> element.
Definition Others.h:452
int percent
The percentage value from the <percent> element.
Definition Others.h:453
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:459
Represents the enclosure settings for text expressions.
Definition CommonClasses.h:419
Enclosure(const DocumentWeakPtr &document, Cmper partId=0, ShareMode shareMode=ShareMode::All, Cmper cmper=0)
Constructs an Enclosure object.
Definition CommonClasses.h:445
The name and font characteristics of fonts contained.
Definition Others.h:472
int charsetVal
Definition Others.h:491
bool calcIsSymbolFont() const
Calculates if this font is a symbol font.
Definition Others.h:513
FontDefinition(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:478
CharacterSetBank charsetBank
The character set bank.
Definition Others.h:490
CharacterSetBank
The character set for the bank.
Definition Others.h:484
@ Windows
xml value is "Mac"
std::string name
The font name e.g., "Broadway Copyist Text".
Definition Others.h:498
int family
Represents the <family> element, e.g., 0. (use unknown)
Definition Others.h:497
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:524
int pitch
Represents the <pitch> element, e.g., 0. (use unknown)
Definition Others.h:496
Represents the attributes of a TGF entry frame.
Definition Others.h:540
std::vector< std::shared_ptr< const Entry > > getEntries()
Returns a vector of entries contained in the frame.
Definition Implementations.cpp:811
Frame(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci=0)
Constructor function.
Definition Others.h:543
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:571
Edu startTime
The starting position within the measure. (Appears to be zero when startEntry and endEntry are suppli...
Definition Others.h:549
EntryNumber endEntry
End entry number for this frame. (Appears to be zero when startTime is supplied.)
Definition Others.h:548
EntryNumber startEntry
Start entry number for this frame. (Appears to be zero when startTime is supplied....
Definition Others.h:547
static const xml::XmlElementArray< Frame > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition Others.h:557
An array of InstrumentUsed defines a set of staves in a staff system or in Scroll View.
Definition Others.h:582
static std::shared_ptr< Staff > getStaffAtIndex(const std::vector< std::shared_ptr< InstrumentUsed > > &iuArray, Cmper index)
Returns the Staff instance at a specified index of iuArray or nullptr if not found.
Definition Implementations.cpp:1060
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:605
static std::optional< size_t > getIndexForStaff(const std::vector< std::shared_ptr< InstrumentUsed > > &iuArray, InstCmper staffId)
Returns the 0-based index of the InstCmper or std::nullopt if not found.
Definition Implementations.cpp:1067
InstrumentUsed(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:585
std::shared_ptr< MusicRange > range
The music range. (Late versions of Finale may always include the entire piece here....
Definition Others.h:590
Evpu distFromTop
Distance from the top of the system (negative is down)
Definition Others.h:589
InstCmper staffId
Staff cmper (xml node is <inst>)
Definition Others.h:588
std::shared_ptr< Staff > getStaff() const
Returns the Staff instance for this element.
Definition Implementations.cpp:1051
static const xml::XmlElementArray< InstrumentUsed > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Represents a single <keych> element inside the <keyMap>.
Definition Others.h:643
bool diatonic
Whether the step is diatonic (true if <diatonic> is present).
Definition Others.h:645
unsigned hlevel
Harmonic level (scale degree) of this step. (xml node is <hlevel>)
Definition Others.h:646
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:634
std::vector< std::shared_ptr< StepElement > > steps
Collection of keych step elements.
Definition Others.h:651
unsigned countDiatonicSteps() const
Counts the number of diatonic steps in the steps array.
Definition Others.h:654
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:661
KeyMapArray(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:637
static const xml::XmlElementArray< KeyMapArray > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Represents the attributes of a Finale "layer".
Definition Others.h:674
bool freezeLayer
"Freeze Stems and Ties"
Definition Others.h:686
bool playback
If true, playback this layer. If false, the layer is muted.
Definition Others.h:687
int restOffset
"Adjust Floating Rests by " number of staff steps.
Definition Others.h:681
bool ignoreHiddenLayers
"Ignore Hidden Layers"
Definition Others.h:690
bool freezeStemsUp
If true, freeze stems up, otherwise freeze stems down. Only used if freezeLayer is true....
Definition Others.h:685
bool ignoreHiddenNotesOnly
"Ignore Layers Containing Only Hidden Notes" (xml node is <ignoreHidden>)
Definition Others.h:689
bool hideLayer
"Hide Layer when Inactive"
Definition Others.h:691
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:693
bool affectSpacing
"Affect Music Spacing" (xml node is <spacing>)
Definition Others.h:688
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:684
bool onlyIfOtherLayersHaveNotes
"Apply Settings Only if Notes are in Other Layers" (xml node is <floatLayer>)
Definition Others.h:683
LayerAttributes(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:677
bool freezTiesToStems
"Freeze Ties in the Same Direction as Stems" (xml node is <flipTies>)
Definition Others.h:682
Represents the name associated with a MarkingCategory.
Definition Others.h:872
std::string name
The name of the marking category.
Definition Others.h:878
static const xml::XmlElementArray< MarkingCategoryName > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
MarkingCategoryName(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:875
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:880
Represents a category of markings used.
Definition Others.h:797
bool usesTextFont
whether this category uses the text font
Definition Others.h:833
Evpu horzOffset
Additional horizontal offset.
Definition Others.h:828
bool usesMusicFont
whether this category uses the music font
Definition Others.h:834
std::string getName() const
gets the name of the marking category
Definition Implementations.cpp:1330
bool usesBreakMmRests
whether this category uses the breakMmRest setting
Definition Others.h:838
bool usesNumberFont
whether this category uses the number font
Definition Others.h:835
Evpu vertOffsetBaseline
Additional vertical offset.
Definition Others.h:829
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:860
bool userCreated
whether the user created this category
Definition Others.h:840
CategoryType
Enumeration for the type of marking category.
Definition Others.h:801
@ 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::shared_ptr< FontInfo > musicFont
Music font.
Definition Others.h:820
static const xml::XmlElementArray< MarkingCategory > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu vertOffsetEntry
Additional vertical entry offset.
Definition Others.h:830
std::shared_ptr< FontInfo > textFont
Text font.
Definition Others.h:819
HorizontalTextJustification justification
Justification for the text within the marking.
Definition Others.h:825
std::map< Cmper, std::weak_ptr< ShapeExpressionDef > > shapeExpressions
A list of shape expressions in this category.
Definition Others.h:849
VerticalMeasExprAlign vertAlign
Vertical alignment for the marking.
Definition Others.h:824
Cmper staffList
The staff list if useStaffList is true.
Definition Others.h:843
bool breakMmRest
whether expressions in this category break multimeasure rests
Definition Others.h:839
bool usesPositioning
whether this category uses the positioning elements (Finale UI only allows true)
Definition Others.h:836
bool usesStaffList
whether this category uses a staff list
Definition Others.h:837
std::map< Cmper, std::weak_ptr< TextExpressionDef > > textExpressions
A list of text expressions in this category.
Definition Others.h:855
MarkingCategory(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:813
HorizontalMeasExprAlign horzAlign
Horizontal alignment for the marking.
Definition Others.h:823
CategoryType categoryType
Category type of the marking.
Definition Others.h:816
std::shared_ptr< FontInfo > numberFont
Number font.
Definition Others.h:821
Assigns a TextExpressionDef or ShapeExpressionDef to a measure.
Definition Others.h:1026
static const xml::XmlElementArray< MeasureExprAssign > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool hidden
True if the dynamic is hidden.
Definition Others.h:1043
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition Others.h:1053
bool dontScaleWithEntry
Inverse of "Scale Expression with Attached Note".
Definition Others.h:1040
Cmper staffList
The cmper of the staff list to use if staffAssign is negative.
Definition Others.h:1042
InstCmper staffAssign
The staff to which this expression is assigned, or -1 if it uses staffList.
Definition Others.h:1038
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1067
Cmper shapeExprId
The Cmper of a shape expression (xml node is <shapeExprID>)
Definition Others.h:1034
MeasureExprAssign(const DocumentWeakPtr &document, Cmper ID, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:1029
Cmper textExprId
The Cmper of a text expression (xml node is <textExprID>)
Definition Others.h:1033
std::shared_ptr< ShapeExpressionDef > getShapeExpression() const
Gets the assigned shape expression.
Definition Implementations.cpp:1421
bool requireAllFields() const override
Definition Others.h:1065
int layer
The 1-based layer number to which this expression is assigned. (0 means all)
Definition Others.h:1039
Evpu horzEvpuOff
Horizontal Evpu offset from the default position.
Definition Others.h:1035
std::shared_ptr< TextExpressionDef > getTextExpression() const
Gets the assigned text expression.
Definition Implementations.cpp:1413
Cmper staffGroup
Not sure what this is used for, but it seems to be a details::StaffGroup cmper.
Definition Others.h:1041
Evpu vertEvpuOff
Vertical Evpu offset from the default position (xml node is <vertOff>)
Definition Others.h:1037
Edu eduPosition
Horizontal Edu position (xml node is <horzEduOff>)
Definition Others.h:1036
Measure number data that can differ in score or part.
Definition Others.h:1102
bool showOnStart
"Show On Start of Staff System" (xml node is <startOfLine>)
Definition Others.h:1126
Evpu multipleXdisp
Horizontal offset for mid-system numbers.
Definition Others.h:1115
bool showOnEvery
"Show on Every" activates mid-system numbers. (xml node is <multipleOf>)
Definition Others.h:1127
bool useMultipleEncl
Use enclosure for mid-system settings.
Definition Others.h:1132
bool showOnBottom
Show measure numbers on the bottom staff.
Definition Others.h:1134
bool useStartEncl
Use enclosure for start-of-system settings.
Definition Others.h:1131
std::shared_ptr< Enclosure > startEnclosure
Enclosure settings for numbers at start of system.
Definition Others.h:1110
std::shared_ptr< FontInfo > startFont
The font used for numbers at start of system.
Definition Others.h:1107
AlignJustify multipleJustify
Justification for mid-system numbers.
Definition Others.h:1138
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:1109
AlignJustify startAlign
Alignment of numbers at the start of system.
Definition Others.h:1123
bool showOnTop
Show measure numbers on the top staff.
Definition Others.h:1133
int incidence
"Show on Every" value.
Definition Others.h:1122
ScorePartData(const DocumentWeakPtr &document)
Constructor.
Definition Others.h:1105
Evpu startYdisp
Vertical offset for numbers at start of system.
Definition Others.h:1114
bool showMmRange
"Show Measure Ranges on Multimeasure Rests" (xml node is <mmRestRange>)
Definition Others.h:1129
bool excludeOthers
Exclude other staves.
Definition Others.h:1135
int startWith
"Beginning with" value. (This value is 0-based. The Finale UI adds 1 for user display....
Definition Others.h:1121
AlignJustify mmRestJustify
Justification for multi-measure rest ranges.
Definition Others.h:1139
AlignJustify startJustify
Justification for numbers at the start of system.
Definition Others.h:1137
char32_t rightMmBracketChar
UTF-32 code for the right bracket of multi-measure rest ranges.
Definition Others.h:1120
bool hideFirstMeasure
"Hide First Measure Number in Region." (xml node is <exceptFirstMeas>)
Definition Others.h:1128
std::shared_ptr< FontInfo > multipleFont
The font used for mid-system numbers.
Definition Others.h:1108
AlignJustify mmRestAlign
Alignment for multi-measure ranges.
Definition Others.h:1125
Evpu multipleYdisp
Vertical offset for mid-system numbers.
Definition Others.h:1116
bool showOnMmRest
"Show on Multimeasure Rests" (xml node is <mmRestRangeForce>)
Definition Others.h:1130
AlignJustify multipleAlign
Alignment for mid-system numbers.
Definition Others.h:1124
Evpu mmRestXdisp
Horizontal offset for multi-measure rest ranges.
Definition Others.h:1117
char32_t leftMmBracketChar
UTF-32 code for the left bracket of multi-measure rest ranges.
Definition Others.h:1119
std::shared_ptr< Enclosure > multipleEnclosure
Enclosure settings for mid-system numbers.
Definition Others.h:1111
Evpu startXdisp
Horizontal offset for numbers at start of system.
Definition Others.h:1113
Evpu mmRestYdisp
Vertical offset for multi-measure rest ranges.
Definition Others.h:1118
bool breakMmRest
Mid-system numbers break multimeasure rests.
Definition Others.h:1136
Represents the Measure Number Region with detailed font and enclosure settings for score and part dat...
Definition Others.h:1077
int calcDisplayNumberFor(MeasCmper measureId) const
Returns the visible number for a measure id with respect to the region.
Definition Implementations.cpp:1444
bool smpteFrames
SMPTE frames (when showing real time measure numbers). This option supercedes timePrecision.
Definition Others.h:1161
std::shared_ptr< ScorePartData > scoreData
Score-wide measure number data.
Definition Others.h:1145
bool hidePage
Indicates if numbers are hidden in Page View.
Definition Others.h:1166
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:1165
AlignJustify
Alignment and justification options for measure numbers.
Definition Others.h:1085
@ Center
Center alignment.
@ Left
Left alignment or justification (the default value.)
std::string prefix
Text prefix for measure numbers (encoded UTF-8).
Definition Others.h:1153
MeasureNumberRegion(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1080
int base
The base used for measure number calculations. (Frequently 10 for numeric or 26 for alpha)
Definition Others.h:1151
bool doubleUp
Indicates "a, b, c...aa, bb, cc" number style: the symbols are repeated when they exceed the base.
Definition Others.h:1158
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:1163
TimePrecision timePrecision
Precision for real-time sequences.
Definition Others.h:1164
bool calcIncludesMeasure(MeasCmper measureId) const
Calculates whether the input measure is covered by this measure number region.
Definition Others.h:1170
TimePrecision
Precision for time display.
Definition Others.h:1093
@ WholeSeconds
the default value
bool noZero
Indicates the base has no zero value: true for alpha sequences and false for numeric sequences.
Definition Others.h:1157
char32_t startChar
UTF-32 code for the first character in the sequence. (Frequently '0', 'a', or 'A')
Definition Others.h:1150
MeasCmper startMeas
Starting measure number for the region.
Definition Others.h:1148
bool time
Display real time sequences rather than numbers or letters.
Definition Others.h:1159
std::string suffix
Text suffix for measure numbers (encoded UTF-8).
Definition Others.h:1154
static std::shared_ptr< MeasureNumberRegion > findMeasure(const DocumentPtr &document, MeasCmper measureId)
Finds the measure number region containing a measure.
Definition Implementations.cpp:1433
MeasCmper endMeas
Ending measure number for the region (non-inclusive).
Definition Others.h:1149
int numberOffset
This value is 1 less than the "Starting Number" field in the Finale UI. (xml node is <offset>)
Definition Others.h:1152
int getStartNumber() const
Returns the starting measure number for this region.
Definition Others.h:1176
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:1156
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1188
std::shared_ptr< ScorePartData > partData
Part-specific measure number data.
Definition Others.h:1146
bool includeHours
Display hours (when showing real time measure numbers)
Definition Others.h:1160
bool useScoreInfoForPart
Use score-wide settings for parts.
Definition Others.h:1162
Represents the attributes of a measure.
Definition Others.h:890
std::shared_ptr< KeySignature > createKeySignature(const std::optional< InstCmper > &forStaff=std::nullopt) const
Creates and returns a shared pointer to an instance of the KeySignature for this measure and staff.
Definition Implementations.cpp:1354
std::shared_ptr< KeySignature > globalKeySig
the key global signature on this measure. Guaranteed to be non-null. (xml node is <keySig>)
Definition Others.h:941
Evpu width
"Ideal" measure width in Evpu. Page layout determines actual width.
Definition Others.h:940
PositioningType
Positioning (music spacing) type for the measure.
Definition Others.h:899
@ 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:942
bool useDisplayTimesig
Indicates whether to use the display time signature.
Definition Others.h:974
bool requireAllFields() const override
Definition Others.h:1011
Evpu backSpaceExtra
Extra space at end of bar.
Definition Others.h:947
bool breakMmRest
"Break a Multimeasure Rests" (xml node is <breakRest>)
Definition Others.h:960
bool abbrvTime
Definition Others.h:972
bool hasSmartShape
Indicates if the measure has a smart shape.
Definition Others.h:950
bool groupBarlineOverride
Override the barline specified by a details::StaffGroup (if any)
Definition Others.h:953
std::shared_ptr< TimeSignature > createTimeSignature(const std::optional< InstCmper > &forStaff=std::nullopt) const
Create a shared pointer to an instance of the TimeSignature for this measure and staff.
Definition Implementations.cpp:1374
bool hasEnding
Indicates the presence of a repeat ending. (xml node is <barEnding>)
Definition Others.h:967
bool compositeNumerator
Indicates a composite numerator for the time signature. (xml node is <altNumTsig>)
Definition Others.h:970
Cmper divBeat
Divisions per beat (Edu) or the Cmper to a timesigLower composite denominator list.
Definition Others.h:943
bool showFullNames
"Show Full Staff & Group Names"
Definition Others.h:951
bool compositeDispNumerator
Indicates a composite numerator for the display time signature. (xml node is <displayAltNumTsig>)
Definition Others.h:976
bool evenlyAcrossMeasure
"Position Evenly Across Measure" (xml node is <indivPosDef>)
Definition Others.h:963
BarlineType barlineType
Barline type. (xml node is <barline>)
Definition Others.h:962
Cmper customBarShape
Cmper of Shape Designer ShapeDef for custom right barline.
Definition Others.h:954
ShowKeySigMode
How and whether to show a Key Signature in this measure.
Definition Others.h:925
@ 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:910
@ 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")
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition Others.h:1003
Cmper dispDivbeat
Displayed divisions per beat (Edu) or the Cmper to a timesigLower composite denominator list.
Definition Others.h:945
int calcDisplayNumber() const
Calculates the visible number of the measure, based on the first MeasureNumberRegion that contains it...
Definition Implementations.cpp:1343
Evpu frontSpaceExtra
Extra space at front of bar.
Definition Others.h:946
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1013
bool compositeDenominator
Indicates a composite denominator for the time signature. (xml node is <altDenTsig>)
Definition Others.h:971
std::shared_ptr< TimeSignature > createDisplayTimeSignature(const std::optional< InstCmper > &forStaff=std::nullopt) const
Create a shared pointer to an instance of the display TimeSignature for this measure and staff.
Definition Implementations.cpp:1390
ShowKeySigMode showKey
Show mode for key signatures.
Definition Others.h:956
Cmper customLeftBarShape
Cmper of Shape Designer ShapeDef for custom left barline.
Definition Others.h:955
ShowTimeSigMode
How and whether to show a Time Signature in this measure.
Definition Others.h:934
bool calcShouldShowFullNames() const
Calculates if a measure should show full names vs. abbreviated names.
Definition Others.h:980
bool hasExpression
Indicates if the measure has an expression assigned. See MeasureExprAssign. (xml node is <hasExpr>)
Definition Others.h:964
Cmper dispBeats
Displayed beats in the measure or the Cmper to a timesigUpper composite numerator list.
Definition Others.h:944
PositioningType positioningMode
Positioning type for the measure. (xml node is <posMode>)
Definition Others.h:958
bool forwardRepeatBar
Indicates a forward repeat bar on this measure. (xml node is <forRepBar>)
Definition Others.h:965
bool hasTextRepeat
Indicates the presence of one or more text repeat assigments. (xml node is <txtRepeats>)
Definition Others.h:968
bool compositeDispDenominator
Indicates a composite denominator for the display time signature. (xml node is <displayAltDenTsig>)
Definition Others.h:977
static const xml::XmlElementArray< Measure > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool noMeasNum
Inverse of "Include in Measure Numbering".
Definition Others.h:961
BarlineType leftBarlineType
Left barline type. (xml node is <leftBarline>)
Definition Others.h:975
ShowTimeSigMode showTime
Show mode for time signatures.
Definition Others.h:957
bool allowSplitPoints
"Allow Horizontal Split Points" (xml node is <posSplit>)
Definition Others.h:952
Measure(const DocumentWeakPtr &document, Cmper measureId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:893
bool hasChord
Indicates the presence of one or more chords.
Definition Others.h:969
bool hideCaution
"Hide Cautionary Clefs, Key, and Time Signature"
Definition Others.h:949
bool breakWordExt
Barline ends word extensions on lyrics.
Definition Others.h:948
bool backwardsRepeatBar
Indicates a forward repeat bar on this measure. (xml node is <bacRepBar>)
Definition Others.h:966
bool beginNewSystem
"Begin a New Staff System" (xml node is <lineBreak>)
Definition Others.h:959
Represents a group ID for a multi-staff setup.
Definition Others.h:1246
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1254
MultiStaffGroupId(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1249
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:1252
Represents a group of instruments spanning multiple staves.
Definition Others.h:1264
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1301
std::shared_ptr< Staff > getFirstStaff() const
Returns the first staff (with integrity check)
Definition Implementations.cpp:1478
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition Others.h:1291
std::shared_ptr< details::StaffGroup > getStaffGroup() const
Gets the group associated with this multistaff instrument, or nullptr if not found.
Definition Implementations.cpp:1487
std::vector< InstCmper > staffNums
Vector of Cmper values representing up to 3 staff numbers.
Definition Others.h:1270
std::shared_ptr< Staff > getStaffAtIndex(size_t x) const
Returns the staff at the index position or null if out of range or not found.
Definition Implementations.cpp:1467
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:1267
std::optional< size_t > getIndexOf(InstCmper staffId) const
Returns the index of the input staffId or std::nullopt if not found.
Definition Others.h:1280
Represents the attributes of a multimeasure rest in the page layout.
Definition Others.h:1200
int symbolThreshold
If the number of rests is less than this value, symbols are used when useSymbols is true....
Definition Others.h:1212
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:1208
Cmper shapeDef
Cmper of Shape Designer ShapeDef that specifies the H-bar.
Definition Others.h:1209
bool useSymbols
Use symbols instead of an H-bar, based on symbolThreshold. (xml node is <useCharRestStyle>)
Definition Others.h:1217
int calcNumberOfMeasures() const
Calculates the number of measures spanned by this multimeasure rest.
Definition Others.h:1223
MeasCmper nextMeas
Next measure after the multimeasure west.
Definition Others.h:1207
MultimeasureRest(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper startMeasure)
Constructor function.
Definition Others.h:1203
MeasCmper getStartMeasure() const
Get the start measure of this multimeasure rest.
Definition Others.h:1220
Evpu measWidth
Width of the multemeasure rest "measure" in Evpu. (xml node is <meaSpace>)
Definition Others.h:1206
Evpu shapeStartAdjust
Start adjustment for the H-bar shape in Evpu. (xml node is <startAdjust>)
Definition Others.h:1215
Evpu shapeEndAdjust
End adjustment for the shape in Evpu. (xml node is <endAdjust>)
Definition Others.h:1216
Evpu symbolSpacing
Spacing between symbols in Evpu. (xml node is <spacing>)
Definition Others.h:1213
int numStart
Definition Others.h:1210
Evpu numHorzAdj
Horizontal number adjustment in Evpu. (xml node is <numAdjX>)
Definition Others.h:1214
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition Others.h:1228
bool calcIsNumberVisible() const
Calculates if the number on this multimeasure rest is visible.
Definition Others.h:1226
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1236
Represents a range of music using measure and EDUs.
Definition CommonClasses.h:472
Represents the attributes of a page in the page layout.
Definition Others.h:1311
Evpu margTop
Top margin in Evpu. (Sign reversed in Finale UI.)
Definition Others.h:1322
bool isBlank() const
is this a blank page
Definition Others.h:1330
Evpu width
Page width in Evpu.
Definition Others.h:1318
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1332
static const xml::XmlElementArray< Page > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
int percent
Percent value (scaling factor).
Definition Others.h:1319
Evpu height
Page height in Evpu.
Definition Others.h:1317
Evpu margLeft
Left margin in Evpu.
Definition Others.h:1323
Evpu margBottom
Bottom margin in Evpu.
Definition Others.h:1324
std::optional< SystemCmper > lastSystem
Computed by the Resolver function. This value is not in the xml.
Definition Others.h:1327
Evpu margRight
Right margin in Evpu. (Sign reversed in Finale UI.)
Definition Others.h:1325
SystemCmper firstSystem
First system on the page (-1 if page is blank). See StaffSystem.
Definition Others.h:1320
Page(const DocumentWeakPtr &document, Cmper pageId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1314
bool holdMargins
"Hold Margins" (xml node is <scaleContentOnly>)
Definition Others.h:1321
Represents the attributes of a Finale "partDef".
Definition Others.h:1346
Cmper nameId
Cmper of the part name TextBlock. (xml tag is <nameID>)
Definition Others.h:1353
Cmper calcSystemIuList(Cmper systemId) const
Return the InstrumentUsed cmper by this part for the specified system.
Definition Implementations.cpp:1740
static std::vector< std::shared_ptr< PartDefinition > > getInUserOrder(const DocumentPtr &document)
Return the linked parts sorted in UI order by partOrder.
Definition Implementations.cpp:1759
int smartMusicInst
SmartMusic instrument ID (-1 if not used).
Definition Others.h:1359
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1385
int copies
Number of copies to print.
Definition Others.h:1355
static const xml::XmlElementArray< PartDefinition > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Cmper defaultNameStaff
If non-zero, this points to the Staff that has the default name (if unspecified by nameId....
Definition Others.h:1360
int partOrder
Value that determines the order of listed parts in Finale's UI.
Definition Others.h:1354
bool extractPart
Indicates if the part should be extracted.
Definition Others.h:1356
static std::shared_ptr< PartDefinition > getScore(const DocumentPtr &document)
Return the instance for the score.
Definition Implementations.cpp:1750
PartDefinition(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1349
Cmper defaultNameGroup
If non-zero, this points to the details::StaffGroup that has the default name (if unspecified by name...
Definition Others.h:1361
bool requireAllFields() const override
Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class...
Definition Others.h:1383
std::string getName(util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii) const
Get the part name if any.
Definition Implementations.cpp:1718
bool useAsSmpInst
Indicates if the part is used as a SmartMusic instrument.
Definition Others.h:1358
bool isScore() const
Return true if this part corresponds to the score.
Definition Others.h:1367
bool needsRecalc
Indicates if the part needs update layout.
Definition Others.h:1357
Represents global values that can vary by part.
Definition Others.h:1397
Cmper scrollViewIUlist
If this value is non-zero, it is the iuList Cmper of the current Staff List in Scroll View.
Definition Others.h:1405
bool showTransposed
If true, "Display Concert Pitch" is unchecked for the part.
Definition Others.h:1404
Cmper specialPartExtractionIUList
If non-zero, Special Part Extraction is in effect and this is the Cmper for its InstrumentUsed array.
Definition Others.h:1413
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:1400
Cmper studioViewIUlist
The iuList Cmper for Studio View.
Definition Others.h:1406
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1415
Represents a repeat-backward marker with positioning and behavior properties.
Definition Others.h:1453
bool resetOnAction
"Reset on Repeat Action" (xml tag is <clrOnChange>)
Definition Others.h:1468
Evpu rightVPos
The vertical position of the upper right bracket, relative to the default. (xml tag is <line2>)
Definition Others.h:1473
RepeatTriggerType trigger
The condition that triggers the jumpAction.
Definition Others.h:1470
static const xml::XmlElementArray< RepeatBack > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
int passNumber
Definition Others.h:1460
Evpu leftVPos
The vertical position of the lower left bracket, relative to the default. (xml tag is <line1>)
Definition Others.h:1465
Evpu leftHPos
The horizontal position of the left bracket, relative to the default. (xml tag is <pos1>)
Definition Others.h:1464
Evpu rightHPos
The horizontal position of the upper right bracket, relative to the default. (xml tag is <pos2>)
Definition Others.h:1472
RepeatActionType jumpAction
The jump action for this repeat ending. The automatic jump is to the next ending. (xml tag is <action...
Definition Others.h:1469
Cmper staffList
If non-zero, specifies a staff list for which staves to show the ending.
Definition Others.h:1471
bool topStaffOnly
"Show On: Top Staff Only"
Definition Others.h:1467
int targetValue
Absolute or relative measure number, depending on jumpAction. (xml tag is <target>)
Definition Others.h:1463
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1475
RepeatBack(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1456
bool individualPlacement
"Allow Individual Edits Per Staff" (xml tag is <indivPlac>)
Definition Others.h:1466
Represents a repeat ending start marker in the document.
Definition Others.h:1488
Evpu leftVPos
The vertical position of the lower left bracket, relative to the default. (xml tag is <line1>)
Definition Others.h:1500
Evpu rightVPos
The vertical position of the upper right bracket, relative to the default. (xml tag is <line2>)
Definition Others.h:1511
RepeatTriggerType trigger
Definition Others.h:1504
Evpu leftHPos
The horizontal position of the lower left bracket, relative to the default. (xml tag is <pos1>)
Definition Others.h:1499
Evpu textVPos
The vertical position of the text relative to leftVPos. (xml tag is <textLine>)
Definition Others.h:1509
Evpu endLineVPos
The vertical offset of the final bracket, relative to rightVPos or 0 if the ending is open....
Definition Others.h:1508
void integrityCheck()
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition Others.h:1522
Evpu rightHPos
The horizontal position of the upper right bracket, relative to the default. (xml tag is <pos2>)
Definition Others.h:1510
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 Implementations.cpp:1808
Evpu textHPos
The horizontal position of the text relative to leftHPos. (xml tag is <textPos>)
Definition Others.h:1498
int targetValue
Absolute or relative measure number, depending on jumpAction. (xml tag is <nextEnd>)
Definition Others.h:1497
bool jumpIfIgnoring
"Skip Ending if Ignoring Repeats" (xml tag is <jmpIgnore>)
Definition Others.h:1507
bool topStaffOnly
"Show On: Top Staff Only"
Definition Others.h:1502
Cmper staffList
If non-zero, specifies a staff list for which staves to show the ending.
Definition Others.h:1496
RepeatActionType jumpAction
The jump action for this repeat ending. The automatic jump is to the next ending. (xml tag is <action...
Definition Others.h:1503
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1531
int calcEndingLength() const
Calculates the number of measures in the ending based on jumpAction.
Definition Implementations.cpp:1772
bool individualPlacement
"Allow Individual Edits Per Staff" (xml tag is <indivPlac>)
Definition Others.h:1501
RepeatEndingStart(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1491
Represents the text associated with a RepeatEndingStart.
Definition Others.h:1545
static const xml::XmlElementArray< RepeatEndingText > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::string text
The text.
Definition Others.h:1551
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1553
RepeatEndingText(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1548
Represents a list of repeat ending numbers for a RepeatEndingStart instance.
Definition Others.h:1566
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:1572
Represents the data for instruction associated with a ShapeDef.
Definition Others.h:1583
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1589
static const xml::XmlElementArray< ShapeData > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Represents a shape created in Finale's Shape Designer.
Definition Others.h:1601
Cmper dataList
Instruction data list Cmper.
Definition Others.h:1661
ShapeType
Represents different types of shapes in Finale's Shape Designer.
Definition Others.h:1647
@ Executable
Corresponds to "executable" in XML.
@ Clef
Corresponds to "clef" in XML.
@ Other
May Correspond to "other" in XML (but may not appear in XML). All pre-Fin2k shapes use this value.
@ CustomStem
Corresponds to "note" in XML.
@ Expression
Corresponds to "expression" in XML.
@ Articulation
Corresponds to "articulation" in XML.
@ Barline
Corresponds to "barline" in XML.
@ Arrowhead
Corresponds to "arrowhead" in XML.
@ Fretboard
Corresponds to "fretboard" in XML.
ShapeDef(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1604
void iterateInstructions(std::function< bool(InstructionType, std::vector< int >)> callback) const
Iterates through the instructions in the shape.
Definition Implementations.cpp:1837
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1670
ShapeType shapeType
Shape type (specifies which type of entity this shape pertains to)
Definition Others.h:1662
Cmper instructionList
Instruction list Cmper. (xml node is <instList>)
Definition Others.h:1660
static const xml::XmlElementArray< ShapeDef > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
InstructionType
Defines the instruction types for Shape Designer shapes.
Definition Others.h:1611
@ Undocumented
catch-all for instruction tags not yet documented
bool requireAllFields() const override
Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class...
Definition Others.h:1668
Stores the properties and behaviors of shape expressions.
Definition Others.h:1680
int auxData1
Auxiliary data for the expression. (xml node is "auxdata1")
Definition Others.h:1694
bool masterShape
Whether this expression references the master copy of the shape.
Definition Others.h:1698
PlaybackType playbackType
Playback behavior of the text expression.
Definition Others.h:1701
int playPass
"Play Only on Pass" value.
Definition Others.h:1695
Cmper categoryId
Identifier for the category of the text expression. (xml node is "categoryID")
Definition Others.h:1691
bool breakMmRest
Whether the text breaks multimeasure rests.
Definition Others.h:1696
bool requireAllFields() const override
Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class...
Definition Others.h:1711
bool noPrint
Inverse of "Hidden" checkbox.
Definition Others.h:1699
int value
Value associated with the expression (e.g., velocity).
Definition Others.h:1693
std::string description
Description of the text expression. (xml node is "descStr")
Definition Others.h:1709
Cmper shapeDef
Identifier for the Shape Designer ShapeDef associated with this expression.
Definition Others.h:1690
bool useAuxData
Whether auxiliary data is used.
Definition Others.h:1697
static const xml::XmlElementArray< ShapeExpressionDef > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
HorizontalTextJustification horzExprJustification
Horizontal justification of the text expression.
Definition Others.h:1704
HorizontalMeasExprAlign horzMeasExprAlign
Horizontal alignment of the expression.
Definition Others.h:1702
Evpu yAdjustEntry
Vertical adjustment for entry alignment.
Definition Others.h:1706
RehearsalMarkStyle rehearsalMarkStyle
Auto-sequencing style for rehearsal marks.
Definition Others.h:1692
bool useCategoryPos
Whether to use category position.
Definition Others.h:1708
VerticalMeasExprAlign vertMeasExprAlign
Vertical alignment of the expression.
Definition Others.h:1703
ShapeExpressionDef(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor.
Definition Others.h:1687
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1713
Evpu measXAdjust
Horizontal adjustment for measurement alignment.
Definition Others.h:1705
bool noHorzStretch
Inverse of "Allow Horizontal Stretching" checkbox.
Definition Others.h:1700
Evpu yAdjustBaseline
Vertical adjustment for baseline alignment.
Definition Others.h:1707
An instruction in the shape.
Definition Others.h:1734
static const xml::XmlElementArray< Instruction > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
ShapeDef::InstructionType type
the type of instruction
Definition Others.h:1738
int numData
the number of data items consumed by this instruction (See ShapeData.)
Definition Others.h:1737
Represents the data for instruction associated with a ShapeDef.
Definition Others.h:1724
std::vector< std::shared_ptr< Instruction > > instructions
The instructions.
Definition Others.h:1743
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1745
static const xml::XmlElementArray< ShapeInstructionList > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
ShapeInstructionList(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1727
Represents a composite of an underlying Staff instance with any applicable StaffStyle instances appli...
Definition Others.h:2080
static std::shared_ptr< StaffComposite > createCurrent(const DocumentPtr &document, Cmper partId, InstCmper staffId, MeasCmper measId, Edu eduPosition)
Calculates the current staff at the specified metric position by applying all relevant staff styles,...
Definition Implementations.cpp:2262
Represents an assignment.
Definition Others.h:2044
std::shared_ptr< StaffStyle > getStaffStyle() const
Returns the StaffStyle instance for this assignment.
Definition Implementations.cpp:2352
Cmper styleId
The cmper of the assigned StaffStyle.
Definition Others.h:2050
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition Others.h:2057
StaffStyleAssign(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:2047
static const xml::XmlElementArray< StaffStyleAssign > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2068
lists the masks that deterimine if this staff style overrides the staff settings
Definition Others.h:1979
bool requireAllFields() const override
Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class...
Definition Others.h:2000
bool fullName
overrides fullNameTextId.
Definition Others.h:1995
bool showNameParts
overrides showNameInParts
Definition Others.h:1998
Masks(const DocumentWeakPtr &document)
Default constructor.
Definition Others.h:1985
bool staffType
overrides staff properties (see StaffComposite::applyStyle)
Definition Others.h:1991
bool hideKeySigsShowAccis
overrides "Hide Key Signature and Show Accidentals"
Definition Others.h:1993
bool negNameScore
overrides hideNameInScore.
Definition Others.h:1994
static const xml::XmlElementArray< Masks > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool transposition
overrides transposition fields
Definition Others.h:1992
bool abrvName
overrides abbrvNameTextId.
Definition Others.h:1996
bool showStems
overrides stem properties (see StaffComposite::applyStyle)
Definition Others.h:1997
bool floatKeys
overrides "Independent Key Signature" setting
Definition Others.h:1989
bool floatTime
overrides "Independent Time Signature" setting
Definition Others.h:1990
bool defaultClef
overrides default clef
Definition Others.h:1988
Represents a Finale staff style.
Definition Others.h:1965
std::shared_ptr< Masks > masks
Definition Others.h:2007
static const xml::XmlElementArray< StaffStyle > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static std::vector< std::shared_ptr< StaffStyle > > findAllOverlappingStyles(const DocumentPtr &document, Cmper partId, InstCmper staffId, MeasCmper measId, Edu eduPosition)
Finds a subset from all StaffStyle instances that overlap with the specified metric position on a giv...
Definition Implementations.cpp:2328
StaffStyle(const std::shared_ptr< Staff > &staff)
protected constructor for StaffComposite
Definition Others.h:1968
bool requireAllFields() const override
Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class...
Definition Others.h:2020
StaffStyle(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1973
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition Others.h:2022
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2033
std::string styleName
name of staff style
Definition Others.h:2005
bool addToMenu
add this staff style to the context menu for staff styles
Definition Others.h:2006
Represents the attributes of a staff system in the page layout.
Definition Others.h:2112
bool hasStaffScaling
Indicates if any individual staff in the system has scaling applied.
Definition Others.h:2133
Evpu right
Right margin in Evpu. (Sign reversed in Finale UI.)
Definition Others.h:2128
MeasCmper startMeas
Starting measure of the staff system. See Measure.
Definition Others.h:2120
bool scaleVert
"Resize Vertical Space"
Definition Others.h:2135
StaffSystem(const DocumentWeakPtr &document, Cmper staffSystemId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:2115
Evpu left
Left margin in Evpu.
Definition Others.h:2127
Efix staffHeight
Staff height in Efix units. Note that this is different units than options::PageFormatOptions::PageFo...
Definition Others.h:2125
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2141
bool holdMargins
"Hold Margins" (xml node is <scaleContentOnly>)
Definition Others.h:2136
double horzPercent
Definition Others.h:2122
bool placeEndSpaceBeforeBarline
Indicates that extra space is placed before the barline.
Definition Others.h:2134
Evpu distanceToPrev
Distance to the previous staff system in Evpu.
Definition Others.h:2137
Evpu bottom
Definition Others.h:2129
Evpu extraEndSystemSpace
Extra space at the end of the staff system in Evpu.
Definition Others.h:2139
Evpu top
Top margin in Evpu. (Sign reversed in Finale UI.)
Definition Others.h:2126
bool noNames
Definition Others.h:2131
MeasCmper endMeas
Ending measure of the staff system. See Measure.
Definition Others.h:2121
static const xml::XmlElementArray< StaffSystem > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Evpu extraStartSystemSpace
Extra space at the start of the staff system in Evpu.
Definition Others.h:2138
int ssysPercent
Staff system scaling percentage (100 means no scaling).
Definition Others.h:2124
Represents chromatic transposition details.
Definition Others.h:1795
static const xml::XmlElementArray< ChromaticTransposition > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
int diatonic
The diatonic interval. See music_theory::Transposer for more information.
Definition Others.h:1798
int alteration
The alteration that defines the chromatic interval (in chromatic half-steps). See music_theory::Trans...
Definition Others.h:1797
Represents key signature transposition details.
Definition Others.h:1782
int adjust
The adjustment to the number of sharps or flats in the key signature.
Definition Others.h:1785
static const xml::XmlElementArray< KeySigTransposition > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
int interval
The diatonic transposition interval.
Definition Others.h:1784
Encapsulates transposition options for a staff.
Definition Others.h:1811
std::shared_ptr< ChromaticTransposition > chromatic
Shared pointer to the chromatic transposition details, if any.
Definition Others.h:1820
std::shared_ptr< KeySigTransposition > keysig
Shared pointer to the key signature transposition details, if any.
Definition Others.h:1817
bool noSimplifyKey
Inverse of "Simplify Key" (xml node is <noKeyOpt>)
Definition Others.h:1814
static const xml::XmlElementArray< Transposition > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool setToClef
If true, forces the clef in Staff::transposedClef.
Definition Others.h:1813
Represents the definition of a Finale staff.
Definition Others.h:1757
AutoNumberingStyle
Enum for auto-numbering style. Auto-numbering is based on instUuid.
Definition Others.h:1761
@ ArabicSuffix
Arabic numeral suffix (default). May not appear in xml.
@ ArabicPrefix
Arabic numeral prefix (with dot): 1. 2. 3. ...
@ RomanSuffix
Roman numeral suffix.
@ OrdinalPrefix
Ordinal number prefix: 1st 2nd 3rd, ...
@ AlphaSuffix
Alphabetic suffix.
Evpu dwRestOffset
Offset for downstem rests.
Definition Others.h:1848
ClefIndex defaultClef
Index of default clef for the staff.
Definition Others.h:1833
Evpu hRestOffset
Offset for half rests.
Definition Others.h:1850
std::optional< int > staffLines
Number of lines in the staff (if no custom staff)
Definition Others.h:1835
Cmper multiStaffInstId
Definition Others.h:1865
ClefIndex calcFirstClefIndex() const
Returns the first clef in this staff.
Definition Others.h:1918
std::optional< std::vector< int > > customStaff
A list of stafflines from 0..26 where a standard 5-line staff is values 11, 12, 13,...
Definition Others.h:1836
std::shared_ptr< MultiStaffInstrumentGroup > getMultiStaffInstGroup() const
Returns the MultiStaffInstrumentGroup for this staff if it is part of one. Otherwise nullptr.
Definition Implementations.cpp:2102
bool hasStyles
Indicates that this staff has staff style assignments.
Definition Others.h:1842
std::string addAutoNumbering(const std::string &plainName) const
Add auto numbering as a prefix or suffix, if needed.
Definition Implementations.cpp:2070
StemDirection stemDirection
stem direction for staff (xml node is <stemDir>)
Definition Others.h:1860
bool hideStems
Inverse of "Display Stems".
Definition Others.h:1858
Evpu otherRestOffset
Offset for other rests.
Definition Others.h:1851
std::string getFullInstrumentName(util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii, bool preferStaffName=false) const
Returns the full instrument name for this staff without Enigma tags and with autonumbering (if any)
Definition Implementations.cpp:2113
std::optional< int > autoNumberValue
Calculated autonumbering value. It is computed by calcAutoNumberValues.
Definition Others.h:1867
Evpu lineSpace
Distance between staff lines.
Definition Others.h:1837
Evpu wRestOffset
Offset for whole rests.
Definition Others.h:1849
Staff(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:1826
bool floatKeys
"Independent Key Signature"
Definition Others.h:1839
Cmper fullNameTextId
Full name TextBlock ID. (xml node is <fullName>)
Definition Others.h:1853
StemDirection
Enum for staff-level stem direction override.
Definition Others.h:1771
@ AlwaysDown
stems are always down on this staff
@ Default
the default (may not occur in xml)
@ AlwaysUp
stems are always up on this staff
bool useAutoNumbering
Whether names should be auto-numbered. (xml node is <useAutoNum>)
Definition Others.h:1862
bool showNameInParts
"Display Staff Name in Parts" (xml node is <showNameParts>)
Definition Others.h:1843
ClefIndex transposedClef
Index of transposed clef for the staff. Only used if Transposition::setToClef is true.
Definition Others.h:1834
bool floatTime
"Independent Time Signature"
Definition Others.h:1840
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition Others.h:1930
int calcMiddleStaffPosition() const
Returns the middle staff position. For staves with even numbers of lines, it is the middle space.
Definition Implementations.cpp:2167
static void calcAutoNumberValues(const DocumentPtr &document)
Get the auto-numbering value for this staff, if applicable.
Definition Implementations.cpp:1931
bool requireAllFields() const override
Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class...
Definition Others.h:1951
Evpu botBarlineOffset
Offset for the bottom barline.
Definition Others.h:1847
std::string getFullName(util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii) const
Returns the full staff name without Enigma tags.
Definition Implementations.cpp:2092
Cmper abbrvNameTextId
Abbreviated name TextBlock ID. (xml node is <abbrvName>)
Definition Others.h:1854
std::string getAbbreviatedName(util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii) const
Returns the abbreviated staff name without Enigma tags.
Definition Implementations.cpp:2097
Evpu topRepeatDotOff
Offset for top repeat dots.
Definition Others.h:1856
Evpu topBarlineOffset
Offset for the top barline.
Definition Others.h:1846
bool hideBeams
Inverse of "Show Beams".
Definition Others.h:1859
bool showNamesForPart(Cmper partId) const
Returns if names should be shown for the specified part.
Definition Others.h:1893
int stemReversal
Stem reversal value.
Definition Others.h:1852
Evpu botRepeatDotOff
Offset for bottom repeat dots.
Definition Others.h:1855
ClefIndex calcClefIndexAt(MeasCmper measureId, Edu position) const
Returns the clef in this staff at the specified location.
Definition Implementations.cpp:2145
Evpu vertTabNumOff
Vertical offset for tab number.
Definition Others.h:1857
static const xml::XmlElementArray< Staff > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::shared_ptr< Transposition > transposition
Transposition details, if non-null.
Definition Others.h:1844
bool hideKeySigsShowAccis
"Hide Key Signature and Show Accidentals" transposition option.
Definition Others.h:1863
AutoNumberingStyle autoNumbering
Autonumbering style if useAutoNumbering is true. (xml node is <autoNum>)
Definition Others.h:1861
bool hideNameInScore
Inverse of "Display Staff Name in Score" (xml node is <hideStfNameInScore>)
Definition Others.h:1845
std::string instUuid
Unique identifier for the type of instrument.
Definition Others.h:1838
std::string getAbbreviatedInstrumentName(util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii, bool preferStaffName=false) const
Returns the abbreviated instrument name for this staff without Enigma tags and with autonumbering (if...
Definition Implementations.cpp:2129
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:1953
A single tempo change value entered with Finale's Tempo tool.
Definition Others.h:2161
int unit
Hardware ticks/sec. For Macs this is 1000.
Definition Others.h:2174
TempoChange(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:2164
int ratio
Definition Others.h:2169
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2185
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 Implementations.cpp:2368
Edu eduPosition
The position within the measure. (xml node is <eldur>)
Definition Others.h:2173
bool isRelative
Definition Others.h:2175
Represents the attributes of a Finale "textBlock".
Definition Others.h:2199
TextType textType
Text tag indicating the type of text block. (xml tag is <textTag>)
Definition Others.h:2223
bool noExpandSingleWord
Do not expand single word.
Definition Others.h:2217
bool roundCorners
Use rounded corners on frame.
Definition Others.h:2221
bool wordWrap
Wrap words (in frames)
Definition Others.h:2218
bool newPos36
This is likely a compatibility setting. Best guess is that blocks created before Finale 3....
Definition Others.h:2215
TextType
Enum for textTag values.
Definition Others.h:2203
@ Expression
textId is a Cmper for a texts::ExpressionText
@ Block
textId is a Cmper for a texts::BlockText
bool requireAllFields() const override
Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class...
Definition Others.h:2235
Efix cornerRadius
Corner radius for rounded corners.
Definition Others.h:2222
bool showShape
Show shape.
Definition Others.h:2216
std::string getText(bool trimTags=false, util::EnigmaString::AccidentalStyle accidentalStyle=util::EnigmaString::AccidentalStyle::Ascii) const
return display text with Enigma tags removed
Definition Implementations.cpp:2432
std::shared_ptr< TextsBase > getRawTextBlock() const
Gets the raw text block (from the texts pool) based on textType.
Definition Implementations.cpp:2421
Evpu width
Width of frame.
Definition Others.h:2219
Evpu height
Height of frame.
Definition Others.h:2220
int lineSpacingPercentage
Line spacing percentage.
Definition Others.h:2214
Cmper textId
Cmper of the text block. (xml tag is <textID>)
Definition Others.h:2213
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:2209
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2237
Stores the properties and behaviors of text expressions.
Definition Others.h:2247
Evpu yAdjustBaseline
Vertical adjustment for baseline alignment.
Definition Others.h:2275
RehearsalMarkStyle rehearsalMarkStyle
Auto-sequencing style for rehearsal marks.
Definition Others.h:2259
bool matchPlayback
purpose needs investigation.
Definition Others.h:2264
bool hideMeasureNum
"Hide Measure Numbers" (used on Rehearsal Marks)
Definition Others.h:2263
Cmper categoryId
Identifier for the category of the text expression.
Definition Others.h:2258
PlaybackType playbackType
Playback behavior of the text expression.
Definition Others.h:2269
Evpu measXAdjust
Horizontal adjustment for measurement alignment.
Definition Others.h:2273
int playPass
"Play Only on Pass" value.
Definition Others.h:2262
std::shared_ptr< Enclosure > getEnclosure() const
Gets the enclosure for this expression, or nullptr if none.
Definition Implementations.cpp:2458
std::shared_ptr< TextBlock > getTextBlock() const
Gets the enclosure for this expression, or nullptr if none.
Definition Implementations.cpp:2453
int auxData1
Auxiliary data for the expression. (xml node is "auxdata1")
Definition Others.h:2261
bool useCategoryFonts
Whether to use category fonts.
Definition Others.h:2276
static const xml::XmlElementArray< TextExpressionDef > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::string description
Description of the text expression. (xml node is "descStr")
Definition Others.h:2278
TextExpressionDef(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor.
Definition Others.h:2254
bool hasEnclosure
Whether the text expression has an enclosure. (xml node is "newEnclosure")
Definition Others.h:2266
int value
Value associated with the expression (e.g., velocity).
Definition Others.h:2260
bool createdByHp
Whether the text block was created by Finale's smart playback system.
Definition Others.h:2268
bool useAuxData
Whether auxiliary data is used.
Definition Others.h:2265
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2286
bool breakMmRest
Whether the text breaks multimeasure rests.
Definition Others.h:2267
VerticalMeasExprAlign vertMeasExprAlign
Vertical alignment of the expression.
Definition Others.h:2271
Evpu yAdjustEntry
Vertical adjustment for entry alignment.
Definition Others.h:2274
HorizontalMeasExprAlign horzMeasExprAlign
Horizontal alignment of the expression.
Definition Others.h:2270
bool useCategoryPos
Whether to use category position.
Definition Others.h:2277
HorizontalTextJustification horzExprJustification
Horizontal justification of the text expression.
Definition Others.h:2272
Cmper textIdKey
Identifier for the TextBlock associated with this.
Definition Others.h:2257
The enclosure for a text expression (if it exists)
Definition Others.h:2298
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2302
static const xml::XmlElementArray< TextExpressionEnclosure > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Represents a text repeat assignment with positioning and behavior properties.
Definition Others.h:2315
bool jumpOnMultiplePasses
If true, use TextRepeatDef::passList to get the passes and ignore passNumber. (xml tag is <multiActua...
Definition Others.h:2332
bool individualPlacement
"Allow Individual Edits Per Staff" (xml tag is <indivPlac>)
Definition Others.h:2329
Cmper textRepeatId
The Cmper of the assigned TextRepeatDef. (xml tag is <repnum>)
Definition Others.h:2327
Cmper staffList
If non-zero, specifies a staff list for which staves to show the ending.
Definition Others.h:2337
int targetValue
Measure number, TextRepeatDef ID, or offset, depending on jumpAction. (xml tag is <target>)
Definition Others.h:2326
TextRepeatAssign(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition Others.h:2318
bool autoUpdate
"Auto-Update Target"
Definition Others.h:2334
int passNumber
Play Section N Times, Jump on Pass, Stop on Pass value, depending on jumpAction and trigger....
Definition Others.h:2325
bool topStaffOnly
"Show On: Top Staff Only"
Definition Others.h:2330
Evpu vertPos
The vertical offset from default of the text repeat marker.
Definition Others.h:2328
bool jumpIfIgnoring
"Jump if Ignoring Repeats" (xml tag is <jmpIgnore>)
Definition Others.h:2336
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2339
static const xml::XmlElementArray< TextRepeatAssign > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
RepeatTriggerType trigger
The condition that triggers the jumpAction.
Definition Others.h:2335
RepeatActionType jumpAction
The jump action for this repeat assignment. (xml tag is <action>)
Definition Others.h:2333
bool resetOnAction
"Reset on Repeat Action" (xml tag is <clrOnChange>)
Definition Others.h:2331
Evpu horzPos
The horizontal offset from default of the text repeat marker.
Definition Others.h:2324
Defines text repeat elements with font styling and justification.
Definition Others.h:2355
PoundReplaceOption poundReplace
"Replace # With" choice.
Definition Others.h:2375
TextRepeatDef(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:2366
PoundReplaceOption
Enum for poundReplace options.
Definition Others.h:2359
@ 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:2372
bool useThisFont
"Use This Font" (for the # substitution)
Definition Others.h:2374
std::vector< int > passList
If this vector contains elements, they define the repeat passes that apply to this instance.
Definition Others.h:2379
bool hasEnclosure
Whether the text repeat has an enclosure. (xml node is <newEnclosure>)
Definition Others.h:2373
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2381
static const xml::XmlElementArray< TextRepeatDef > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
HorizontalTextJustification justification
Definition Others.h:2376
The enclosure for a text expression (if it exists)
Definition Others.h:2394
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2398
static const xml::XmlElementArray< TextRepeatEnclosure > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Represents the text associated with a TextRepeatDef.
Definition Others.h:2411
TextRepeatText(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:2414
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition Others.h:2421
static const xml::XmlElementArray< TextRepeatText > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::string text
The text.
Definition Others.h:2419
Represents an individual lower composite item in the time signature.
Definition Others.h:2446
static const xml::XmlElementArray< CompositeItem > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool startGroup
Indicates the start of a group.
Definition Others.h:2449
Edu unit
The size of the unit for this item. (xml node is <integer>)
Definition Others.h:2448
Represents the lower composite time signature array.
Definition Others.h:2434
static constexpr std::string_view XmlNodeName
XML node name.
Definition Others.h:2456
static const xml::XmlElementArray< TimeCompositeLower > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::vector< std::shared_ptr< CompositeItem > > items
composite items collection
Definition Others.h:2454
TimeCompositeLower(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:2437
Represents an individual composite item in the time signature.
Definition Others.h:2481
util::Fraction fullFraction() const
Return the beats as a complete fraction.
Definition Others.h:2488
bool startGroup
Indicates the start of a group.
Definition Others.h:2485
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:2483
util::Fraction fraction
Fraction of beats (between 0 <= fraction < 1)
Definition Others.h:2484
Represents the upper composite time signature structure.
Definition Others.h:2469
static constexpr std::string_view XmlNodeName
XML node name.
Definition Others.h:2496
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:2494
TimeCompositeUpper(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition Others.h:2472
Maps the number of flats to a tonal center for a linear custom key. If there are zero flats or sharps...
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< 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:2535
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:2541
AccidentalStyle
Enumeration to specify the type of accidental replacement.
Definition EnigmaString.h:48
@ Ascii
Use ASCII substitutions for accidentals.
A class to represent fractions with integer m_numerator and m_denominator, automatically reduced to s...
Definition Fraction.h:37
@ Verbose
Informational messages that should only displayed when verbose logging is requested.
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:702
@ 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:764
@ 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).
HorizontalTextJustification
Specifies the horizontal alignment for text expressions and marking categories.
Definition Others.h:782
@ Center
Justified center.
HorizontalMeasExprAlign
Specifies the horizontal alignment relative to musical elements for an expression or marking category...
Definition Others.h:742
@ 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:1424
@ 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:717
@ 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:1439
@ 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 CommonClasses.h:69
NoteType
Enum class representing note types based on EDU values.
Definition CommonClasses.h:46
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
constexpr Cmper SCORE_PARTID
The part id of the score.
Definition Fundamentals.h:75
int16_t InstCmper
Enigma staff (inst) Cmper (may be negative when not applicable)
Definition Fundamentals.h:65
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:67
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:68
std::shared_ptr< Document > DocumentPtr
Shared Document pointer.
Definition BaseClasses.h:55
int16_t SystemCmper
Enigma systems Cmper (may be negative when not applicable)
Definition Fundamentals.h:66
std::vector< XmlElementDescriptor< T > > XmlElementArray
an array type for XmlElementDescriptor instances.
Definition XmlInterface.h:127
object model for musx file (enigmaxml)
Definition BaseClasses.h:32