MUSX Document Model
Loading...
Searching...
No Matches
SmartShape.h
1/*
2 * Copyright (C) 2025, Robert Patterson
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22#pragma once
23
24#include "musx/util/Logger.h"
25#include "musx/util/Fraction.h"
26
27#include "BaseClasses.h"
28#include "CommonClasses.h"
29 // do not add other dom class dependencies. Use Implementations.cpp for implementations that need total class access.
30
31namespace musx {
32namespace dom {
33
34class EntryInfoPtr;
35
36namespace others {
37
44class SmartShape : public OthersBase
45{
46public:
48 explicit SmartShape(const DocumentWeakPtr& document, Cmper partId, ShareMode shareMode, Cmper cmper)
49 : OthersBase(document, partId, shareMode, cmper) {}
50
54 class EndPoint : public Base
55 {
56 public:
58 explicit EndPoint(const DocumentWeakPtr& document)
59 : Base(document, SCORE_PARTID, ShareMode::All) {}
60
65
68
71
75
76 bool requireAllFields() const override { return false; }
78 };
79
83 class EndPointAdjustment : public Base
84 {
85 public:
87 explicit EndPointAdjustment(const DocumentWeakPtr& document)
88 : Base(document, SCORE_PARTID, ShareMode::All) {}
89
92 bool active{};
93
94 bool requireAllFields() const override { return false; }
96 };
97
101 class TerminationSeg : public Base
102 {
103 public:
105 explicit TerminationSeg(const DocumentWeakPtr& document)
106 : Base(document, SCORE_PARTID, ShareMode::All) {}
107
108 std::shared_ptr<EndPoint> endPoint;
109 std::shared_ptr<EndPointAdjustment> endPointAdj;
110 std::shared_ptr<EndPointAdjustment> breakAdj;
112
113 void integrityCheck() override
114 {
116 if (!endPoint) {
117 endPoint = std::make_shared<EndPoint>(getDocument());
118 }
119 if (!endPointAdj) {
120 endPointAdj = std::make_shared<EndPointAdjustment>(getDocument());
121 }
122 if (!breakAdj) {
123 breakAdj = std::make_shared<EndPointAdjustment>(getDocument());
124 }
125 }
126
127 bool requireAllFields() const override { return false; }
129 };
130
184
186 bool entryBased{};
187 std::shared_ptr<TerminationSeg> startTermSeg;
188 std::shared_ptr<TerminationSeg> endTermSeg;
189 bool hidden{};
193
199 bool calcAppliesTo(const EntryInfoPtr& entryInfo) const;
200
201 void integrityCheck() override
202 {
204 if (!startTermSeg) {
205 startTermSeg = std::make_shared<TerminationSeg>(getDocument());
206 }
207 if (!endTermSeg) {
208 endTermSeg = std::make_shared<TerminationSeg>(getDocument());
209 }
210 startTermSeg->integrityCheck();
211 endTermSeg->integrityCheck();
212 }
213
214 bool requireAllFields() const override { return false; }
215 constexpr static std::string_view XmlNodeName = "smartShape";
217};
218
226{
227public:
229 explicit SmartShapeCustomLine(const DocumentWeakPtr& document, Cmper partId, ShareMode shareMode, Cmper cmper)
230 : OthersBase(document, partId, shareMode, cmper) {}
231
234 enum class LineStyle { Char, Solid, Dashed };
235
238 enum class LineCapType { None, Hook, ArrowheadPreset, ArrowheadCustom };
239
241 class CharParams : public Base
242 {
243 public:
245 explicit CharParams(const DocumentWeakPtr& document)
246 : Base(document, SCORE_PARTID, ShareMode::All), font(std::make_shared<FontInfo>(document))
247 {
248 }
249
250 char32_t lineChar{};
251 std::shared_ptr<FontInfo> font;
253
255 };
256
258 class SolidParams : public Base
259 {
260 public:
262 explicit SolidParams(const DocumentWeakPtr& document)
263 : Base(document, SCORE_PARTID, ShareMode::All)
264 {
265 }
266
268
270 };
271
273 class DashedParams : public Base {
274 public:
276 explicit DashedParams(const DocumentWeakPtr& document)
277 : Base(document, SCORE_PARTID, ShareMode::All) {}
278
282
284 };
285
287 std::shared_ptr<CharParams> charParams;
288 std::shared_ptr<SolidParams> solidParams;
289 std::shared_ptr<DashedParams> dashedParams;
290
295
296 bool makeHorz{};
300
306
317
323
326
327 void integrityCheck() override
328 {
330
331 if (lineStyle == LineStyle::Char && !charParams)
332 charParams = std::make_shared<CharParams>(getDocument());
333
334 if (lineStyle == LineStyle::Solid && !solidParams)
335 solidParams = std::make_shared<SolidParams>(getDocument());
336
337 if (lineStyle == LineStyle::Dashed && !dashedParams)
338 dashedParams = std::make_shared<DashedParams>(getDocument());
339 }
340
341 constexpr static std::string_view XmlNodeName = "ssLineStyle";
343};
344
357{
358public:
360 explicit SmartShapeMeasureAssign(const DocumentWeakPtr& document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
361 : OthersBase(document, partId, shareMode, cmper, inci)
362 {
363 }
364
368
369 constexpr static std::string_view XmlNodeName = "smartShapeMeasMark";
371};
372
373} // namespace others
374
375namespace details {
376
393{
394public:
395
404 explicit CenterShape(const DocumentWeakPtr& document, Cmper partId, ShareMode shareMode, Cmper shapeNum, Cmper centerShapeNum)
405 : DetailsBase(document, partId, shareMode, shapeNum, centerShapeNum)
406 {}
407
408 std::shared_ptr<others::SmartShape::EndPointAdjustment> startBreakAdj;
409 std::shared_ptr<others::SmartShape::EndPointAdjustment> endBreakAdj;
410
411 void integrityCheck() override
412 {
413 if (!startBreakAdj) {
414 startBreakAdj = std::make_shared<others::SmartShape::EndPointAdjustment>(getDocument());
415 }
416 if (!endBreakAdj) {
417 endBreakAdj = std::make_shared<others::SmartShape::EndPointAdjustment>(getDocument());
418 }
419 }
420
421 bool requireAllFields() const override { return false; }
422 constexpr static std::string_view XmlNodeName = "centerShape";
424};
425
433{
434public:
436 explicit SmartShapeEntryAssign(const DocumentWeakPtr& document, Cmper partId, ShareMode shareMode, EntryNumber entnum, Inci inci)
437 : EntryDetailsBase(document, partId, shareMode, entnum, inci)
438 {
439 }
440
442
443 constexpr static std::string_view XmlNodeName = "smartShapeEntryMark";
445};
446
447} // namespace details
448
449} // namespace dom
450} // namespace musx
Base class to enforce polymorphism across all DOM classes.
Definition BaseClasses.h:63
DocumentPtr getDocument() const
Gets a reference to the Document.
Definition BaseClasses.h:88
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:135
ShareMode
Describes how this instance is shared between part and score.
Definition BaseClasses.h:71
Base class for all "details" types.
Definition BaseClasses.h:301
Base class for all "details" types that use entnum rather than cmper and cmper.
Definition BaseClasses.h:342
Wraps a frame of shared_ptr<const EntryInfo> and an index for per entry access. This class manages ow...
Definition Entries.h:377
Represents the default font settings for a particular element type.
Definition CommonClasses.h:122
Base class for all "others" types.
Definition BaseClasses.h:226
Represents a center shape for a others::SmartShape that spans three or more measures.
Definition SmartShape.h:393
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition SmartShape.h:411
std::shared_ptr< others::SmartShape::EndPointAdjustment > startBreakAdj
Adjustment at the start break (xml: <startBreakAdj>)
Definition SmartShape.h:408
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition SmartShape.h:422
std::shared_ptr< others::SmartShape::EndPointAdjustment > endBreakAdj
Adjustment at the end break (xml: <endBreakAdj>)
Definition SmartShape.h:409
bool requireAllFields() const override
ignore other fields because they are difficult to figure out
Definition SmartShape.h:421
CenterShape(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper shapeNum, Cmper centerShapeNum)
Constructor.
Definition SmartShape.h:404
static const xml::XmlElementArray< CenterShape > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Assigns a smart shape to an entry.
Definition SmartShape.h:433
Cmper shapeNum
The Cmper of the others::SmartShape that is being assigned.
Definition SmartShape.h:441
SmartShapeEntryAssign(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, EntryNumber entnum, Inci inci)
Constructor function.
Definition SmartShape.h:436
static const xml::XmlElementArray< SmartShapeEntryAssign > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition SmartShape.h:443
Hold parameters for LineStyle::Char.
Definition SmartShape.h:242
static const xml::XmlElementArray< CharParams > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
char32_t lineChar
The character to use for the line.
Definition SmartShape.h:250
std::shared_ptr< FontInfo > font
<fontID>, <fontSize>, <fontEfx>
Definition SmartShape.h:251
int baselineShiftEms
The UI says the units are "EMs", but it may be 1/100 EMs.
Definition SmartShape.h:252
CharParams(const DocumentWeakPtr &document)
Constructor function.
Definition SmartShape.h:245
Hold parameters for LineStyle::Dashed.
Definition SmartShape.h:273
Efix dashOff
Length of gap between dashes.
Definition SmartShape.h:281
Efix dashOn
Dash length.
Definition SmartShape.h:280
DashedParams(const DocumentWeakPtr &document)
Constructor function.
Definition SmartShape.h:276
Efix lineWidth
Dashed line width.
Definition SmartShape.h:279
static const xml::XmlElementArray< DashedParams > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Hold parameters for LineStyle::Solid.
Definition SmartShape.h:259
SolidParams(const DocumentWeakPtr &document)
Constructor function.
Definition SmartShape.h:262
Efix lineWidth
Solid line width.
Definition SmartShape.h:267
static const xml::XmlElementArray< SolidParams > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Represents a Finale smart shape custom line style.
Definition SmartShape.h:226
Evpu leftContX
Left continuation position X.
Definition SmartShape.h:309
Evpu rightEndX
Right end position X.
Definition SmartShape.h:311
bool lineBeforeRightEndText
Line adjustments "Right H: Before Text".
Definition SmartShape.h:298
Evpu leftStartX
Left start position X.
Definition SmartShape.h:307
SmartShapeCustomLine(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition SmartShape.h:229
LineCapType lineCapEndType
Line cap end type.
Definition SmartShape.h:292
Evpu centerFullY
Center full position Y.
Definition SmartShape.h:314
Efix lineCapStartHookLength
Length of start hook (if lineStyle is Hook)
Definition SmartShape.h:324
Cmper centerFullRawTextId
Cmper of texts::SmartShapeText. xml node is <centerFullRawTextID>
Definition SmartShape.h:304
Evpu centerAbbrY
Center abbreviation position Y.
Definition SmartShape.h:316
static const xml::XmlElementArray< SmartShapeCustomLine > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
Efix lineCapEndHookLength
Length of end hook (if lineStyle is Hook)
Definition SmartShape.h:325
Cmper leftStartRawTextId
Cmper of texts::SmartShapeText. xml node is <leftStartRawTextID>
Definition SmartShape.h:301
Evpu lineEndX
Line adjustments "End H" value.
Definition SmartShape.h:320
Evpu rightEndY
Right end position Y.
Definition SmartShape.h:312
Evpu lineEndY
Line adjustments "Start H" value.
Definition SmartShape.h:321
std::shared_ptr< CharParams > charParams
Parameters for char line style. Only allocated if lineStyle is LineStyle::Char.
Definition SmartShape.h:287
std::shared_ptr< DashedParams > dashedParams
Parameters for dashed line style. Only allocated if lineStyle is LineStyle::Dashed.
Definition SmartShape.h:289
LineStyle lineStyle
Line style.
Definition SmartShape.h:286
Evpu centerAbbrX
Center abbreviation position X.
Definition SmartShape.h:315
bool lineAfterLeftContText
Line adjustments "Cont H: After Text".
Definition SmartShape.h:299
Evpu leftContY
Left continuation position Y.
Definition SmartShape.h:310
Cmper lineCapStartArrowId
Cmper of start arrowhead (preset or cmper of custom ShapeDef). xml node is <lineCapStartArrowID>
Definition SmartShape.h:293
bool lineAfterLeftStartText
Line adjustments "Start H: After Text".
Definition SmartShape.h:297
Evpu lineContX
Line adjustments "V" value (Finale syncs this with lineStartY.)
Definition SmartShape.h:322
Cmper rightEndRawTextId
Cmper of texts::SmartShapeText. xml node is <rightEndRawTextID>
Definition SmartShape.h:303
Evpu leftStartY
Left start position Y.
Definition SmartShape.h:308
bool makeHorz
"Horizontal"
Definition SmartShape.h:296
Cmper centerAbbrRawTextId
Cmper of texts::SmartShapeText. xml node is <centerAbbrRawTextID>
Definition SmartShape.h:305
Cmper leftContRawTextId
Cmper of texts::SmartShapeText. xml node is <leftContRawTextID>
Definition SmartShape.h:302
LineStyle
The type of line style.
Definition SmartShape.h:234
std::shared_ptr< SolidParams > solidParams
Parameters for solid line style. Only allocated if lineStyle is LineStyle::Solid.
Definition SmartShape.h:288
Cmper lineCapEndArrowId
Cmper of end arrowhead (preset or cmper of custom ShapeDef). xml node is <lineCapStartArrowID>
Definition SmartShape.h:294
LineCapType
The type of line cap.
Definition SmartShape.h:238
Evpu lineStartX
Line adjustments "Start H" value.
Definition SmartShape.h:318
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition SmartShape.h:341
Evpu centerFullX
Center full position X.
Definition SmartShape.h:313
Evpu lineStartY
Line adjustments "V" value (Finale syncs this with lineEndY.)
Definition SmartShape.h:319
LineCapType lineCapStartType
Line cap start type.
Definition SmartShape.h:291
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition SmartShape.h:327
Assigns a smart shape or center shape to a measure.
Definition SmartShape.h:357
static const xml::XmlElementArray< SmartShapeMeasureAssign > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
The XML node name for this type.
Definition SmartShape.h:369
SmartShapeMeasureAssign(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper, Inci inci)
Constructor function.
Definition SmartShape.h:360
Cmper shapeNum
The Cmper of the SmartShape that is being assigned.
Definition SmartShape.h:365
Cmper centerShapeNum
Definition SmartShape.h:366
Represents the endpoint adjustment of the smart shape.
Definition SmartShape.h:84
Evpu vertOffset
Vertical offset (xml node is <y>)
Definition SmartShape.h:91
EndPointAdjustment(const DocumentWeakPtr &document)
Constructor function.
Definition SmartShape.h:87
static const xml::XmlElementArray< EndPointAdjustment > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
bool requireAllFields() const override
ignore other fields because they are difficult to figure out
Definition SmartShape.h:94
Evpu horzOffset
Horizontal offset (xml node is <x>)
Definition SmartShape.h:90
bool active
If true, this adjustment should be used when it is applicable (xml node is <on>)
Definition SmartShape.h:92
Represents an endpoint of the smart shape.
Definition SmartShape.h:55
static const xml::XmlElementArray< EndPoint > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
util::Fraction calcGlobalPosition() const
Calculates the global position of the endpoint within its measure, based on whether it is measure- or...
Definition SmartShape.cpp:70
EndPoint(const DocumentWeakPtr &document)
Constructor function.
Definition SmartShape.h:58
bool requireAllFields() const override
Specifies if the parser should alert (print or throw) when an unknown xml tag is found for this class...
Definition SmartShape.h:76
MeasCmper measId
Measure ID (xml node is <meas>)
Definition SmartShape.h:62
EntryInfoPtr calcAssociatedEntry() const
Calculates the entry associated with the endpoint.
Definition SmartShape.cpp:34
InstCmper staffId
Staff ID (xml node is <inst>)
Definition SmartShape.h:61
Edu eduPosition
Edu position of endpoint (xml node is <edu>)
Definition SmartShape.h:63
util::Fraction calcPosition() const
Calculates the staff-level position of the endpoint within its measure, based on whether it is measur...
Definition SmartShape.cpp:59
EntryNumber entryNumber
Entry number. Zero if the endpoint is not entry-attached. (xml node is <entryNum>)
Definition SmartShape.h:64
Represents the termination segment of the smart shape.
Definition SmartShape.h:102
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition SmartShape.h:113
static const xml::XmlElementArray< TerminationSeg > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
std::shared_ptr< EndPoint > endPoint
Endpoint information (xml node is <endPt>)
Definition SmartShape.h:108
TerminationSeg(const DocumentWeakPtr &document)
Constructor function.
Definition SmartShape.h:105
std::shared_ptr< EndPointAdjustment > breakAdj
Definition SmartShape.h:110
std::shared_ptr< EndPointAdjustment > endPointAdj
Endpoint adjustment information (xml node is <endPtAdj>)
Definition SmartShape.h:109
bool requireAllFields() const override
ignore other fields because they are difficult to figure out
Definition SmartShape.h:127
Represents a Finale smart shape.
Definition SmartShape.h:45
SmartShape(const DocumentWeakPtr &document, Cmper partId, ShareMode shareMode, Cmper cmper)
Constructor function.
Definition SmartShape.h:48
Cmper lineStyleId
If non-zero, the SmartShapeCustomLine for this shape. Several ShapeType values use it....
Definition SmartShape.h:192
bool entryBased
Whether the shape is entry-based.
Definition SmartShape.h:186
NoteNumber startNoteId
If non-zero, the specific note with the entry that this shape starts from. (xml node is <startNoteID>...
Definition SmartShape.h:190
bool calcAppliesTo(const EntryInfoPtr &entryInfo) const
Calculates if the smart shape applies to the specified entry.
Definition SmartShape.cpp:85
std::shared_ptr< TerminationSeg > endTermSeg
End termination segment.
Definition SmartShape.h:188
NoteNumber endNoteId
If non-zero, the specific note with the entry that this shape ends on. (xml node is <endNoteID>)
Definition SmartShape.h:191
bool hidden
Inverse of "Show" option.
Definition SmartShape.h:189
ShapeType
All the smart shape types supported by Finale.
Definition SmartShape.h:140
@ TwoOctaveUp
Quindicesima (15ma) == 21.
@ DashLineDownLeft
Dashed line with downward left hook.
@ DashLineUpLeft
Dashed line with upward left hook. == 32.
@ CustomLine
User-created custom line with shape determined by lineStyleId. (xml value is "smartLine")
@ Crescendo
Crescendo hairpin. (xml value is "cresc")
@ SlurAuto
Slur with direction automatically determined.
@ DashSlurUp
Thin line dashed upward slur (tips point down).
@ Trill
Trill (includes "tr" symbol at the beginning). == 14.
@ DashLineUp
Dashed line with upward hook.
@ DashLineDownBoth
Dashed line with downward hooks on both ends. (xml value is "dashLineDown2")
@ SlurDown
Downward Slur (tips point up). This is the default and may not appear in the xml, but the text is in ...
@ WordExtension
Lyric word extension, used only with lyric assignments. (xml value is "wordExt")
@ TabSlide
Tab slide (a solid line that is often used as a note-attached glissando)
@ SolidLineDown
Solid line with downward right hook.
@ DashSlurDown
Thin line dashed downward slur (tips point up).
@ SolidLineDownBoth
Solid line with downward hooks on both ends. (xml value is "solidLineDown2")
@ Glissando
Glissando (shape is determined by lineStyleId) == 25 (24 has no value)
@ SolidLineDownUp
Solid line with downward left hook and upward right hook.
@ SolidLineUp
Solid line with upward right hook.
@ Decrescendo
Decrescendo hairpin. (xml value is "decresc")
@ BendHat
Bend hat (solid up-down line with a corner in the middle)
@ Hyphen
Lyric hyphen, used only with lyric assignments.
@ DashLineUpDown
Dashed line with upward left hook and downward right hook.
@ DashContourSlurAuto
Contoured line dashed slur with direction automatically determined.
@ DashContourSlurUp
Contoured line dashed upward slur (tips point down).
@ DashContourSlurDown
Contoured line dashed downward slur (tips point up).
@ SolidLineDownLeft
Solid line with downward left hook.
@ DashLineDown
Dashed line with downward hook. == 7.
@ DashLineUpBoth
Dashed line with upward hooks on both ends. (xml value is "dashLineUp2")
@ SolidLineUpBoth
Solid line with upward hooks on both ends. (xml value is "solidLineUp2")
@ DashSlurAuto
Thin line dashed slur with direction automatically determined.
@ SolidLineUpDown
Solid line with upward left hook and downward right hook.
@ TrillExtension
Trill extension: only the wavy line. (xml value is "trillExt")
@ SolidLineUpLeft
Solid line with upward left hook.
@ TwoOctaveDown
Quindicesima bassa (15ma bassa)
@ SlurUp
Upward Slur (tips point down).
@ DashLineDownUp
Dashed line with downward left hook and upward right hook.
static const xml::XmlElementArray< SmartShape > & xmlMappingArray()
Required for musx::factory::FieldPopulator.
static constexpr std::string_view XmlNodeName
XML node name.
Definition SmartShape.h:215
void integrityCheck() override
Allows a class to determine if it has been properly contructed by the factory and fix issues that it ...
Definition SmartShape.h:201
std::shared_ptr< TerminationSeg > startTermSeg
Start termination segment.
Definition SmartShape.h:187
bool requireAllFields() const override
ignore other fields because they are difficult to figure out
Definition SmartShape.h:214
ShapeType shapeType
Type of smart shape.
Definition SmartShape.h:185
A class to represent fractions with integer m_numerator and m_denominator, automatically reduced to s...
Definition Fraction.h:37
@ None
Default value, no rehearsal mark style.
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:79
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
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:56
int32_t EntryNumber
Entry identifier.
Definition Fundamentals.h:69
uint16_t NoteNumber
Note identifier.
Definition Fundamentals.h:70
std::vector< XmlElementDescriptor< T > > XmlElementArray
an array type for XmlElementDescriptor instances.
Definition XmlInterface.h:127
object model for musx file (enigmaxml)
Definition BaseClasses.h:35