MUSX Document Model
Loading...
Searching...
No Matches
EnumClasses.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
24namespace musx {
25namespace dom {
26
29enum class AlignJustify
30{
31 Left,
32 Right,
33 Center
34};
35
51enum class ArrowheadPreset : int
52{
53 SmallFilled = 1,
54 SmallOutline = 2,
55 SmallCurved = 3,
56 LargeCurved = 4,
57 MediumCurved = 5
58};
59
62{
63 // NOTE: the order here is important for sorting instances. Do not change it.
65 Down,
66 Up
67};
68
71enum class DateFormat : int
72{
73 Short = 0,
74 Long = 1,
75 Abbrev = 2
76};
77
84{
85 Treble = 0,
86 Alto = 1,
87 Tenor = 2,
88 Bass = 3,
89 Percussion = 4,
90 Treble8vb = 5,
91 Bass8vb = 6,
92 Baritone = 7,
93 FrenchViolin = 8,
94 BaritoneC = 9,
95 MezzoSoprano = 10,
96 Soprano = 11,
97 AltPercussion = 12,
98 Treble8va = 13,
99 Bass8va = 14,
100 Blank = 15,
101 Tab1 = 16,
102 Tab2 = 17
103};
104
108{
109 None,
110 Respell,
111 NoRespell
112};
113
119{
120 Verse,
121 Chorus,
122 Section,
123};
124
127enum class MatchVoice
128{
129 Default,
130 Voice2
131};
132
139enum class NoteType : Edu
140{
141 Maxima = 0x8000,
142 Longa = 0x4000,
143 Breve = 0x2000,
144 Whole = EDU_PER_WHOLE_NOTE,
145 Half = 0x0800,
146 Quarter = 0x0400,
147 Eighth = 0x0200,
148 Note16th = 0x0100,
149 Note32nd = 0x0080,
150 Note64th = 0x0040,
151 Note128th = 0x0020,
152 Note256th = 0x0010,
153 Note512th = 0x0008,
154 Note1024th = 0x0004,
155 Note2048th = 0x0002,
156 Note4096th = 0x0001
157};
158
161enum class PitchMode
162{
164 Written,
165 Concert
166};
167
171{
172 Automatic,
173 Over,
174 Under
175};
176
181enum class ShowClefMode
182{
183 WhenNeeded,
184 Never,
185 Always
186};
187
191{
192 Default,
193 AlwaysUp,
195};
196
202{
203 OverStartPosInner,
204 OverEndPosInner,
205 UnderStartPosInner,
206 UnderEndPosInner,
207 OverHighestNoteStartPosOver,
208 OverHighestNoteEndPosOver,
209 UnderLowestNoteStartPosUnder,
210 UnderLowestNoteEndPosUnder,
211 OverHighestNoteStemStartPosOver,
212 OverHighestNoteStemEndPosOver,
213 UnderLowestNoteStemStartPosUnder,
214 UnderLowestNoteStemEndPosUnder
215};
216
220{
222 Float,
223 Below,
224 Above
225};
226
227} // namespace dom
228} // namespace musx
ShowClefMode
Enum representing the clef display mode for a frame.
Definition EnumClasses.h:182
@ WhenNeeded
Clef is displayed only when needed (the default).
@ Always
Clef is always displayed. (xml value is "forced")
@ Never
Clef is never displayed. (xml value is "hidden")
CurveContourDirection
Curve contour direction for ties and slurs.
Definition EnumClasses.h:62
@ Down
contour is curved downward (tips face up)
@ Up
contour is curved upward (tips face down)
@ Unspecified
contour is automatic, indeterminate, or does not apply
LyricTextType
The lyric text type if this is a lyrics smart shape.
Definition EnumClasses.h:119
@ Verse
The assignment is to a Verse lyrics text block.
@ Chorus
The assignment is to a Chorus lyrics text block.
@ Section
The assignment is to a Section lyrics text block.
MatchVoice
Specifies which voice(s) are considered when matching entries.
Definition EnumClasses.h:128
@ Voice2
Require Entry::voice2 to be true.
@ Default
Default matching behavior: accept either voice, but prefer voice 1 when both voices coincide.
NoteType
Enum class representing note types based on EDU values.
Definition EnumClasses.h:140
ShapeDirection
Direction settings shared by smart-shape options and instances.
Definition EnumClasses.h:171
@ Under
The shape is placed under its reference.
@ Automatic
Direction is determined automatically.
@ Over
The shape is placed over its reference.
EnharmonicOverride
Provides a three-state override option for enharmonic respelling.
Definition EnumClasses.h:108
@ NoRespell
Do not apply enharmonic respelling, even if already respelled.
@ None
Do not override the existing enharmonic state. (Default)
@ Respell
Apply enharmonic respelling.
TieConnectStyleType
Enumeration for tie connect style types.
Definition EnumClasses.h:202
VerticalPlacement
Specifies a vertical placement relationship for notation objects.
Definition EnumClasses.h:220
@ Float
Above/below placement floats based on context (usually stem direction).
@ Above
Always positioned above the reference point or object.
@ NotApplicable
Above/below placement does not meaningfully apply.
@ Below
Always positioned below the reference point or object.
PitchMode
Selects the pitch representation used by contextual pitch calculations.
Definition EnumClasses.h:162
@ CurrentView
Use the pitch representation displayed in the requested Finale score or part.
@ Written
Use written pitch regardless of the requested Finale view.
@ Concert
Use concert pitch regardless of the requested Finale view.
DateFormat
Date format options. This value is coded into the Enigma date insert when the page title is created.
Definition EnumClasses.h:72
@ Short
Short date format, based on locale. US format is MM/DD/YY (Default value may not appear in the xml)
@ Long
Long date format, based on locale. US format is Month DD, YYYY.
@ Abbrev
Abbreviated date format, based on locale. US format is Mon DD, YYYY.
StemDirection
Three-state stem direction setting or override.
Definition EnumClasses.h:191
@ AlwaysDown
Stems are forced down.
@ AlwaysUp
Stems are forced up.
DefaultClefType
Clef types used by default in Finale documents. The values correspond to indices into musx::dom::opti...
Definition EnumClasses.h:84
@ Bass8vb
F clef, sounds one octave lower (8vb).
@ Alto
C clef, centered on third line (Alto clef).
@ BaritoneC
C clef on fifth line (Baritone clef).
@ Tab1
Tablature clef (5 lines).
@ Treble
G clef, standard treble.
@ FrenchViolin
G clef placed on first line (French violin clef).
@ Treble8va
G clef, sounds one octave higher (8va).
@ Bass8va
F clef, sounds one octave higher (8va).
@ AltPercussion
Alternate percussion clef, heavy vertical hash marks (no pitch).
@ Soprano
C clef on first line (Soprano clef).
@ Bass
F clef, standard bass.
@ Percussion
Percussion clef, open rectangle (no pitch).
@ Baritone
F clef on third line (Baritone clef).
@ Tab2
Tablature clef (5 lines, alternative style).
@ Treble8vb
G clef, sounds one octave lower (8vb).
@ Blank
Blank clef (invisible, no symbol).
@ MezzoSoprano
C clef on second line (Mezzo-soprano clef).
@ Tenor
C clef, centered on fourth line (Tenor clef).
uint16_t ClefIndex
Index into options::ClefOptions::clefDefs.
Definition Fundamentals.h:70
int32_t Edu
"Enigma Durational Units" value (1024 per quarter note)
Definition Fundamentals.h:63
ArrowheadPreset
Finale-defined arrowhead presets.
Definition EnumClasses.h:52
@ LargeCurved
Large curved-back arrowhead preset (≈4 staff spaces tall).
@ SmallCurved
Small curved-back arrowhead preset (≈1 staff space tall).
@ SmallOutline
Small outlined arrowhead preset (≈1 staff space tall).
@ SmallFilled
Small filled arrowhead preset (≈1 staff space tall).
@ MediumCurved
Medium curved-back arrowhead preset (≈2.5 staff spaces tall).
constexpr Edu EDU_PER_WHOLE_NOTE
Number of Edu units per whole note.
Definition Fundamentals.h:95
AlignJustify
Alignment and justification options for staff and group names.
Definition EnumClasses.h:30
@ Center
Center alignment.
@ Right
Right alignment.
@ Left
Left alignment or justification (the default value.)
object model for musx file (enigmaxml)
Definition BaseClasses.h:38