smoosic 1.0.24 → 1.0.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/build/smoosic.js +1 -1
  2. package/package.json +1 -1
  3. package/release/smoosic.js +1 -1
  4. package/release/styles/ribbon.css +5 -10
  5. package/src/application/exports.ts +1 -0
  6. package/src/styles/ribbon.css +5 -10
  7. package/types/src/application/application.d.ts +102 -102
  8. package/types/src/application/common.d.ts +74 -74
  9. package/types/src/application/configuration.d.ts +74 -74
  10. package/types/src/application/dom.d.ts +8 -8
  11. package/types/src/application/dynamicInit.d.ts +1 -1
  12. package/types/src/application/eventHandler.d.ts +78 -78
  13. package/types/src/application/exports.d.ts +494 -493
  14. package/types/src/application/generateVexTests.d.ts +10 -10
  15. package/types/src/application/keyCommands.d.ts +90 -90
  16. package/types/src/common/bootstrap.bundle.d.ts +1138 -1138
  17. package/types/src/common/htmlHelpers.d.ts +105 -105
  18. package/types/src/common/jszip.d.ts +2 -2
  19. package/types/src/common/midi-parser.d.ts +38 -38
  20. package/types/src/common/promiseHelpers.d.ts +30 -30
  21. package/types/src/common/serializationHelpers.d.ts +29 -29
  22. package/types/src/common/textformatter.d.ts +140 -140
  23. package/types/src/common/vex.d.ts +222 -222
  24. package/types/src/render/audio/musicCursor.d.ts +25 -25
  25. package/types/src/render/audio/oscillator.d.ts +98 -98
  26. package/types/src/render/audio/player.d.ts +141 -141
  27. package/types/src/render/audio/samples.d.ts +56 -56
  28. package/types/src/render/sui/configuration.d.ts +12 -12
  29. package/types/src/render/sui/formatter.d.ts +151 -151
  30. package/types/src/render/sui/layoutDebug.d.ts +43 -43
  31. package/types/src/render/sui/mapper.d.ts +116 -116
  32. package/types/src/render/sui/piano.d.ts +46 -46
  33. package/types/src/render/sui/renderState.d.ts +88 -88
  34. package/types/src/render/sui/scoreRender.d.ts +93 -93
  35. package/types/src/render/sui/scoreView.d.ts +267 -267
  36. package/types/src/render/sui/scoreViewOperations.d.ts +594 -594
  37. package/types/src/render/sui/scroller.d.ts +34 -34
  38. package/types/src/render/sui/svgHelpers.d.ts +85 -85
  39. package/types/src/render/sui/svgPageMap.d.ts +318 -318
  40. package/types/src/render/sui/textEdit.d.ts +310 -310
  41. package/types/src/render/sui/textRender.d.ts +189 -189
  42. package/types/src/render/sui/tracker.d.ts +90 -90
  43. package/types/src/render/vex/glyphDimensions.d.ts +23 -23
  44. package/types/src/render/vex/smoAdapter.d.ts +46 -46
  45. package/types/src/render/vex/toVex.d.ts +13 -13
  46. package/types/src/render/vex/vxMeasure.d.ts +95 -95
  47. package/types/src/render/vex/vxNote.d.ts +55 -55
  48. package/types/src/render/vex/vxSystem.d.ts +64 -64
  49. package/types/src/smo/data/common.d.ts +220 -220
  50. package/types/src/smo/data/measure.d.ts +510 -510
  51. package/types/src/smo/data/measureModifiers.d.ts +506 -506
  52. package/types/src/smo/data/music.d.ts +438 -438
  53. package/types/src/smo/data/note.d.ts +485 -485
  54. package/types/src/smo/data/noteModifiers.d.ts +590 -590
  55. package/types/src/smo/data/partInfo.d.ts +162 -162
  56. package/types/src/smo/data/score.d.ts +395 -395
  57. package/types/src/smo/data/scoreModifiers.d.ts +433 -433
  58. package/types/src/smo/data/scoreText.d.ts +277 -277
  59. package/types/src/smo/data/staffModifiers.d.ts +767 -767
  60. package/types/src/smo/data/systemStaff.d.ts +238 -238
  61. package/types/src/smo/data/tuplet.d.ts +146 -146
  62. package/types/src/smo/midi/midiToSmo.d.ts +198 -198
  63. package/types/src/smo/midi/smoToMidi.d.ts +23 -23
  64. package/types/src/smo/mxml/smoToXml.d.ts +165 -165
  65. package/types/src/smo/mxml/xmlHelpers.d.ts +140 -140
  66. package/types/src/smo/mxml/xmlState.d.ts +257 -257
  67. package/types/src/smo/mxml/xmlToSmo.d.ts +92 -92
  68. package/types/src/smo/xform/beamers.d.ts +46 -46
  69. package/types/src/smo/xform/copypaste.d.ts +99 -99
  70. package/types/src/smo/xform/operations.d.ts +127 -127
  71. package/types/src/smo/xform/roadmap.d.ts +70 -70
  72. package/types/src/smo/xform/selections.d.ts +153 -153
  73. package/types/src/smo/xform/tickDuration.d.ts +155 -155
  74. package/types/src/smo/xform/tickMap.d.ts +34 -34
  75. package/types/src/smo/xform/undo.d.ts +142 -142
  76. package/types/src/smo/xform/updateAudio.d.ts +9 -9
  77. package/types/src/styles/font_metrics/Commissioner-Medium-Metrics.d.ts +871 -871
  78. package/types/src/styles/font_metrics/ConcertOne-Regular.d.ts +871 -871
  79. package/types/src/styles/font_metrics/Merriweather-Regular.d.ts +871 -871
  80. package/types/src/styles/font_metrics/arial_metrics.d.ts +870 -870
  81. package/types/src/styles/font_metrics/ssp-sans-metrics.d.ts +871 -871
  82. package/types/src/styles/font_metrics/ssp-serif-metrics.d.ts +871 -871
  83. package/types/src/styles/font_metrics/times_metrics.d.ts +870 -870
  84. package/types/src/ui/buttons/button.d.ts +95 -95
  85. package/types/src/ui/buttons/collapsable.d.ts +42 -42
  86. package/types/src/ui/buttons/display.d.ts +23 -23
  87. package/types/src/ui/buttons/ribbon.d.ts +76 -76
  88. package/types/src/ui/common.d.ts +45 -45
  89. package/types/src/ui/composable/draggable.d.ts +12 -12
  90. package/types/src/ui/configuration.d.ts +31 -31
  91. package/types/src/ui/dialogs/adapter.d.ts +107 -107
  92. package/types/src/ui/dialogs/addMeasure.d.ts +20 -20
  93. package/types/src/ui/dialogs/arpeggio.d.ts +2 -2
  94. package/types/src/ui/dialogs/articulation.d.ts +2 -2
  95. package/types/src/ui/dialogs/audioSettings.d.ts +32 -32
  96. package/types/src/ui/dialogs/chordChange.d.ts +35 -35
  97. package/types/src/ui/dialogs/clefChange.d.ts +2 -2
  98. package/types/src/ui/dialogs/components/baseComponent.d.ts +158 -158
  99. package/types/src/ui/dialogs/components/button.d.ts +54 -54
  100. package/types/src/ui/dialogs/components/buttonArray.d.ts +101 -101
  101. package/types/src/ui/dialogs/components/checkdrop.d.ts +27 -27
  102. package/types/src/ui/dialogs/components/dragText.d.ts +27 -27
  103. package/types/src/ui/dialogs/components/dropdown.d.ts +78 -78
  104. package/types/src/ui/dialogs/components/fileDownload.d.ts +28 -28
  105. package/types/src/ui/dialogs/components/fontComponent.d.ts +32 -32
  106. package/types/src/ui/dialogs/components/noteText.d.ts +98 -98
  107. package/types/src/ui/dialogs/components/pitch.d.ts +95 -95
  108. package/types/src/ui/dialogs/components/rocker.d.ts +66 -66
  109. package/types/src/ui/dialogs/components/staffComponents.d.ts +77 -77
  110. package/types/src/ui/dialogs/components/textCheck.d.ts +38 -38
  111. package/types/src/ui/dialogs/components/textInPlace.d.ts +90 -90
  112. package/types/src/ui/dialogs/components/textInput.d.ts +58 -58
  113. package/types/src/ui/dialogs/components/tie.d.ts +41 -41
  114. package/types/src/ui/dialogs/components/toggle.d.ts +53 -53
  115. package/types/src/ui/dialogs/components/tree.d.ts +46 -46
  116. package/types/src/ui/dialogs/customTuplets.d.ts +25 -25
  117. package/types/src/ui/dialogs/dialog.d.ts +201 -201
  118. package/types/src/ui/dialogs/durations.d.ts +2 -2
  119. package/types/src/ui/dialogs/dynamics.d.ts +37 -37
  120. package/types/src/ui/dialogs/endings.d.ts +61 -61
  121. package/types/src/ui/dialogs/factory.d.ts +15 -15
  122. package/types/src/ui/dialogs/fileDialogs.d.ts +4 -4
  123. package/types/src/ui/dialogs/fonts.d.ts +2 -2
  124. package/types/src/ui/dialogs/globalLayout.d.ts +2 -2
  125. package/types/src/ui/dialogs/gracenote.d.ts +2 -2
  126. package/types/src/ui/dialogs/hairpin.d.ts +35 -35
  127. package/types/src/ui/dialogs/instrument.d.ts +3 -3
  128. package/types/src/ui/dialogs/keySignature.d.ts +33 -33
  129. package/types/src/ui/dialogs/library.d.ts +70 -70
  130. package/types/src/ui/dialogs/lyric.d.ts +39 -39
  131. package/types/src/ui/dialogs/measureFormat.d.ts +52 -52
  132. package/types/src/ui/dialogs/microtones.d.ts +2 -2
  133. package/types/src/ui/dialogs/noteHead.d.ts +2 -2
  134. package/types/src/ui/dialogs/ornament.d.ts +2 -2
  135. package/types/src/ui/dialogs/pageLayout.d.ts +2 -2
  136. package/types/src/ui/dialogs/partInfo.d.ts +2 -2
  137. package/types/src/ui/dialogs/pedalMarking.d.ts +35 -35
  138. package/types/src/ui/dialogs/pitch.d.ts +2 -2
  139. package/types/src/ui/dialogs/preferences.d.ts +2 -2
  140. package/types/src/ui/dialogs/scoreId.d.ts +2 -2
  141. package/types/src/ui/dialogs/scoreView.d.ts +2 -2
  142. package/types/src/ui/dialogs/slur.d.ts +57 -57
  143. package/types/src/ui/dialogs/staffGroup.d.ts +2 -2
  144. package/types/src/ui/dialogs/tabNote.d.ts +32 -32
  145. package/types/src/ui/dialogs/tabStave.d.ts +43 -43
  146. package/types/src/ui/dialogs/tempo.d.ts +50 -50
  147. package/types/src/ui/dialogs/textBlock.d.ts +61 -61
  148. package/types/src/ui/dialogs/textBracket.d.ts +35 -35
  149. package/types/src/ui/dialogs/tie.d.ts +41 -41
  150. package/types/src/ui/dialogs/timeSignature.d.ts +34 -34
  151. package/types/src/ui/dialogs/transposeScore.d.ts +2 -2
  152. package/types/src/ui/dialogs/volta.d.ts +40 -40
  153. package/types/src/ui/eventSource.d.ts +63 -63
  154. package/types/src/ui/exceptions.d.ts +12 -12
  155. package/types/src/ui/fileio/fileInput.d.ts +12 -12
  156. package/types/src/ui/fileio/library.d.ts +40 -40
  157. package/types/src/ui/fileio/xhrLoader.d.ts +18 -18
  158. package/types/src/ui/help.d.ts +22 -22
  159. package/types/src/ui/i18n/language.d.ts +37 -37
  160. package/types/src/ui/i18n/language_ar.d.ts +5 -5
  161. package/types/src/ui/i18n/language_de.d.ts +1 -1
  162. package/types/src/ui/i18n/language_en.d.ts +18 -18
  163. package/types/src/ui/i18n/translationEditor.d.ts +14 -14
  164. package/types/src/ui/keyBindings/default/editorKeys.d.ts +7 -7
  165. package/types/src/ui/keyBindings/default/trackerKeys.d.ts +7 -7
  166. package/types/src/ui/menus/beams.d.ts +13 -13
  167. package/types/src/ui/menus/edit.d.ts +8 -8
  168. package/types/src/ui/menus/file.d.ts +26 -26
  169. package/types/src/ui/menus/help.d.ts +8 -8
  170. package/types/src/ui/menus/keySignature.d.ts +13 -13
  171. package/types/src/ui/menus/language.d.ts +12 -12
  172. package/types/src/ui/menus/manager.d.ts +57 -57
  173. package/types/src/ui/menus/measure.d.ts +8 -8
  174. package/types/src/ui/menus/menu.d.ts +136 -136
  175. package/types/src/ui/menus/note.d.ts +8 -8
  176. package/types/src/ui/menus/partSelection.d.ts +19 -19
  177. package/types/src/ui/menus/parts.d.ts +50 -50
  178. package/types/src/ui/menus/score.d.ts +20 -20
  179. package/types/src/ui/menus/staffModifier.d.ts +21 -21
  180. package/types/src/ui/menus/text.d.ts +8 -8
  181. package/types/src/ui/menus/timeSignature.d.ts +12 -12
  182. package/types/src/ui/menus/tuplets.d.ts +13 -13
  183. package/types/src/ui/menus/voices.d.ts +8 -8
  184. package/types/src/ui/modalDialogs.d.ts +1 -1
  185. package/types/src/ui/navigation.d.ts +15 -15
  186. package/types/src/ui/qwerty.d.ts +41 -41
  187. package/types/src/ui/ribbonLayout/default/defaultRibbon.d.ts +15 -15
  188. package/types/src/ui/ribbonLayout/default/tabletRibbon.d.ts +22 -22
  189. package/types/typedoc.d.ts +158 -158
@@ -1,257 +1,257 @@
1
- import { XmlDurationAlteration, XmlLyricData, XmlSlurType, XmlTieType, XmlTupletType } from './xmlHelpers';
2
- import { SmoScore } from '../data/score';
3
- import { SmoFormattingManager, SmoSystemGroup } from '../data/scoreModifiers';
4
- import { SmoSystemStaff } from '../data/systemStaff';
5
- import { SmoInstrument, SmoInstrumentParams, SmoSlurParams } from '../data/staffModifiers';
6
- import { SmoTempoText } from '../data/measureModifiers';
7
- import { SmoPartInfo } from '../data/partInfo';
8
- import { SmoMeasure } from '../data/measure';
9
- import { SmoNote } from '../data/note';
10
- import { SmoGraceNote } from '../data/noteModifiers';
11
- import { SmoTuplet, SmoTupletTree } from '../data/tuplet';
12
- import { SmoSelector } from '../xform/selections';
13
- /**
14
- * @category serialization
15
- */
16
- export interface XmlClefInfo {
17
- clef: string;
18
- staffId: number;
19
- }
20
- /**
21
- * @category serialization
22
- */
23
- export interface XmlVoiceInfo {
24
- notes: SmoNote[];
25
- ticksUsed: number;
26
- }
27
- /**
28
- * @category serialization
29
- */
30
- export interface XmlStaffInfo {
31
- clefInfo: XmlClefInfo;
32
- measure: SmoMeasure | null;
33
- voices: Record<string | number, XmlVoiceInfo>;
34
- }
35
- /**
36
- * @category serialization
37
- */
38
- export interface XmlBeamGroupInfo {
39
- ticks: number;
40
- notes: number;
41
- }
42
- /**
43
- * @category serialization
44
- */
45
- export interface XmlSystemInfo {
46
- startSelector: SmoSelector;
47
- endSelector: SmoSelector;
48
- leftConnector: number;
49
- }
50
- /**
51
- * @category serialization
52
- */
53
- export interface XmlStaffGroupInfo {
54
- start: number;
55
- length: number;
56
- }
57
- /**
58
- * Wedge is a hairpin/cresc.
59
- */
60
- export interface XmlWedgeInfo {
61
- type: string;
62
- }
63
- /**
64
- * @category serialization
65
- */
66
- export interface XmlWedgeState {
67
- type: string;
68
- start: number;
69
- }
70
- /**
71
- * @category serialization
72
- */
73
- export interface XmlHairpinInfo {
74
- type: string;
75
- start: number;
76
- end: number;
77
- }
78
- /**
79
- * @category serialization
80
- */
81
- export interface XmlDynamicInfo {
82
- dynamic: string;
83
- offset: number;
84
- }
85
- /**
86
- * @category serialization
87
- */
88
- export interface XmlCompletedTies {
89
- startSelector: SmoSelector;
90
- endSelector: SmoSelector;
91
- fromPitch: number;
92
- toPitch: number;
93
- }
94
- /**
95
- * @category serialization
96
- */
97
- export interface XmlCompletedTuplet {
98
- tuplet: SmoTuplet;
99
- staffId: number;
100
- voiceId: number;
101
- }
102
- /**
103
- * @category serialization
104
- */
105
- export declare class XmlTupletStateTreeNode {
106
- tupletState: XmlTupletState;
107
- children: XmlTupletStateTreeNode[];
108
- constructor(tupletState: XmlTupletState);
109
- }
110
- /**
111
- * @category serialization
112
- */
113
- export interface XmlCompletedTupletState {
114
- tupletState: XmlTupletState;
115
- staffId: number;
116
- voiceId: number;
117
- }
118
- /**
119
- * @category serialization
120
- */
121
- export interface XmlTupletState {
122
- start: SmoSelector | null;
123
- end: SmoSelector | null;
124
- data: XmlTupletData | null;
125
- }
126
- /**
127
- * @category serialization
128
- */
129
- export interface XmlTupletData {
130
- numNotes: number;
131
- notesOccupied: number;
132
- stemTicks: number;
133
- }
134
- /**
135
- * @category serialization
136
- */
137
- export interface XmlEnding {
138
- start: number;
139
- end: number;
140
- number: number;
141
- }
142
- /**
143
- * @category serialization
144
- */
145
- export interface XmlPartGroup {
146
- partNum: number;
147
- group: SmoSystemGroup;
148
- parts: number[];
149
- }
150
- /**
151
- * Keep state of musical objects while parsing music xml
152
- * @category serialization
153
- * */
154
- export declare class XmlState {
155
- static get defaults(): {
156
- divisions: number;
157
- tempo: SmoTempoText;
158
- timeSignature: string;
159
- keySignature: string;
160
- clefInfo: never[];
161
- staffGroups: never[];
162
- smoStaves: never[];
163
- };
164
- clefInfo: XmlClefInfo[];
165
- systems: XmlSystemInfo[];
166
- staffGroups: XmlStaffGroupInfo[];
167
- smoStaves: SmoSystemStaff[];
168
- slurs: Record<number, XmlSlurType | null>;
169
- wedges: XmlWedgeState;
170
- hairpins: XmlHairpinInfo[];
171
- instrument: SmoInstrumentParams;
172
- instrumentMap: Record<number, SmoInstrument>;
173
- globalCursor: number;
174
- staffVoiceHash: Record<string | number, number[]>;
175
- endingMap: Record<number, XmlEnding[]>;
176
- startRepeatMap: Record<number, number>;
177
- endRepeatMap: Record<number, number>;
178
- startBarline: number;
179
- endBarline: number;
180
- measureIndex: number;
181
- completedSlurs: SmoSlurParams[];
182
- completedTies: XmlTieType[];
183
- verseMap: Record<number | string, number>;
184
- measureNumber: number;
185
- formattingManager: SmoFormattingManager;
186
- completedTupletStates: XmlCompletedTupletState[];
187
- tupletStatesInProgress: Record<number, XmlTupletState>;
188
- tickCursor: number;
189
- tempo: SmoTempoText;
190
- staffArray: XmlStaffInfo[];
191
- staffIndex: number;
192
- graceNotes: SmoGraceNote[];
193
- currentDuration: number;
194
- beamGroups: Record<number, XmlBeamGroupInfo | null>;
195
- dynamics: XmlDynamicInfo[];
196
- previousNote: SmoNote;
197
- completedTuplets: XmlCompletedTuplet[];
198
- newTitle: boolean;
199
- divisions: number;
200
- keySignature: string;
201
- timeSignature: string;
202
- voiceIndex: number;
203
- pixelsPerTenth: number;
204
- musicFontSize: number;
205
- partId: string;
206
- rehearsalMark: string;
207
- rehearsalMarks: Record<number, string>;
208
- parts: Record<string, SmoPartInfo>;
209
- openPartGroup: XmlPartGroup | null;
210
- initializeForPart(): void;
211
- initializeForMeasure(measureElement: Element): void;
212
- initializeStaff(staffIndex: number, voiceIndex: number): void;
213
- updateStaffGroups(): void;
214
- addLyric(note: SmoNote, lyricData: XmlLyricData): void;
215
- /**
216
- * process a wedge aka hairpin dynamic
217
- * @param wedgeInfo
218
- */
219
- processWedge(wedgeInfo: XmlWedgeInfo): void;
220
- backtrackHairpins(smoStaff: SmoSystemStaff, staffId: number): void;
221
- updateDynamics(): void;
222
- backtrackBeamGroup(voice: XmlVoiceInfo, beamGroup: XmlBeamGroupInfo): void;
223
- updateBeamState(beamState: number, alteration: XmlDurationAlteration, voice: XmlVoiceInfo, voiceIndex: number): void;
224
- updateTieStates(tieInfos: XmlTieType[]): void;
225
- updateEndings(barlineNode: Element): void;
226
- /**
227
- * While parsing a measure,
228
- * on a slur element, either complete a started
229
- * slur or start a new one.
230
- * @param slurInfos
231
- */
232
- updateSlurStates(slurInfos: XmlSlurType[]): void;
233
- assignRehearsalMarks(): void;
234
- /**
235
- * After reading in a measure, update any completed slurs and make them
236
- * into SmoSlur and add them to the SmoSystemGroup objects.
237
- * staffIndexOffset is the offset from the xml staffId and the score staff Id
238
- * (i.e. the staves that have already been parsed in other parts)
239
- */
240
- completeSlurs(): void;
241
- /**
242
- * Go through saved start ties, try to find the endpoint of the tie. Ties in music xml
243
- * are a little ambiguous, we assume we are tying to the same pitch
244
- * @param score
245
- */
246
- completeTies(score: SmoScore): void;
247
- updateTupletStates(tupletInfos: XmlTupletType[], voice: XmlVoiceInfo, staffIndex: number, voiceIndex: number): void;
248
- addTupletsToMeasure(smoMeasure: SmoMeasure, staffId: number, voiceId: number): void;
249
- private findAndRemoveCompletedTupletStatesByStaffAndVoice;
250
- private buildXmlTupletStateTrees;
251
- private sortTupletStates;
252
- /**
253
- * Create SmoTuplets out of completedTupletStates
254
- */
255
- buildSmoTupletTreesFromXmlTupletStateTrees(xmlTupletStateTrees: XmlTupletStateTreeNode[], notes: SmoNote[]): SmoTupletTree[];
256
- getSystems(): SmoSystemGroup[];
257
- }
1
+ import { XmlDurationAlteration, XmlLyricData, XmlSlurType, XmlTieType, XmlTupletType } from './xmlHelpers';
2
+ import { SmoScore } from '../data/score';
3
+ import { SmoFormattingManager, SmoSystemGroup } from '../data/scoreModifiers';
4
+ import { SmoSystemStaff } from '../data/systemStaff';
5
+ import { SmoInstrument, SmoInstrumentParams, SmoSlurParams } from '../data/staffModifiers';
6
+ import { SmoTempoText } from '../data/measureModifiers';
7
+ import { SmoPartInfo } from '../data/partInfo';
8
+ import { SmoMeasure } from '../data/measure';
9
+ import { SmoNote } from '../data/note';
10
+ import { SmoGraceNote } from '../data/noteModifiers';
11
+ import { SmoTuplet, SmoTupletTree } from '../data/tuplet';
12
+ import { SmoSelector } from '../xform/selections';
13
+ /**
14
+ * @category serialization
15
+ */
16
+ export interface XmlClefInfo {
17
+ clef: string;
18
+ staffId: number;
19
+ }
20
+ /**
21
+ * @category serialization
22
+ */
23
+ export interface XmlVoiceInfo {
24
+ notes: SmoNote[];
25
+ ticksUsed: number;
26
+ }
27
+ /**
28
+ * @category serialization
29
+ */
30
+ export interface XmlStaffInfo {
31
+ clefInfo: XmlClefInfo;
32
+ measure: SmoMeasure | null;
33
+ voices: Record<string | number, XmlVoiceInfo>;
34
+ }
35
+ /**
36
+ * @category serialization
37
+ */
38
+ export interface XmlBeamGroupInfo {
39
+ ticks: number;
40
+ notes: number;
41
+ }
42
+ /**
43
+ * @category serialization
44
+ */
45
+ export interface XmlSystemInfo {
46
+ startSelector: SmoSelector;
47
+ endSelector: SmoSelector;
48
+ leftConnector: number;
49
+ }
50
+ /**
51
+ * @category serialization
52
+ */
53
+ export interface XmlStaffGroupInfo {
54
+ start: number;
55
+ length: number;
56
+ }
57
+ /**
58
+ * Wedge is a hairpin/cresc.
59
+ */
60
+ export interface XmlWedgeInfo {
61
+ type: string;
62
+ }
63
+ /**
64
+ * @category serialization
65
+ */
66
+ export interface XmlWedgeState {
67
+ type: string;
68
+ start: number;
69
+ }
70
+ /**
71
+ * @category serialization
72
+ */
73
+ export interface XmlHairpinInfo {
74
+ type: string;
75
+ start: number;
76
+ end: number;
77
+ }
78
+ /**
79
+ * @category serialization
80
+ */
81
+ export interface XmlDynamicInfo {
82
+ dynamic: string;
83
+ offset: number;
84
+ }
85
+ /**
86
+ * @category serialization
87
+ */
88
+ export interface XmlCompletedTies {
89
+ startSelector: SmoSelector;
90
+ endSelector: SmoSelector;
91
+ fromPitch: number;
92
+ toPitch: number;
93
+ }
94
+ /**
95
+ * @category serialization
96
+ */
97
+ export interface XmlCompletedTuplet {
98
+ tuplet: SmoTuplet;
99
+ staffId: number;
100
+ voiceId: number;
101
+ }
102
+ /**
103
+ * @category serialization
104
+ */
105
+ export declare class XmlTupletStateTreeNode {
106
+ tupletState: XmlTupletState;
107
+ children: XmlTupletStateTreeNode[];
108
+ constructor(tupletState: XmlTupletState);
109
+ }
110
+ /**
111
+ * @category serialization
112
+ */
113
+ export interface XmlCompletedTupletState {
114
+ tupletState: XmlTupletState;
115
+ staffId: number;
116
+ voiceId: number;
117
+ }
118
+ /**
119
+ * @category serialization
120
+ */
121
+ export interface XmlTupletState {
122
+ start: SmoSelector | null;
123
+ end: SmoSelector | null;
124
+ data: XmlTupletData | null;
125
+ }
126
+ /**
127
+ * @category serialization
128
+ */
129
+ export interface XmlTupletData {
130
+ numNotes: number;
131
+ notesOccupied: number;
132
+ stemTicks: number;
133
+ }
134
+ /**
135
+ * @category serialization
136
+ */
137
+ export interface XmlEnding {
138
+ start: number;
139
+ end: number;
140
+ number: number;
141
+ }
142
+ /**
143
+ * @category serialization
144
+ */
145
+ export interface XmlPartGroup {
146
+ partNum: number;
147
+ group: SmoSystemGroup;
148
+ parts: number[];
149
+ }
150
+ /**
151
+ * Keep state of musical objects while parsing music xml
152
+ * @category serialization
153
+ * */
154
+ export declare class XmlState {
155
+ static get defaults(): {
156
+ divisions: number;
157
+ tempo: SmoTempoText;
158
+ timeSignature: string;
159
+ keySignature: string;
160
+ clefInfo: never[];
161
+ staffGroups: never[];
162
+ smoStaves: never[];
163
+ };
164
+ clefInfo: XmlClefInfo[];
165
+ systems: XmlSystemInfo[];
166
+ staffGroups: XmlStaffGroupInfo[];
167
+ smoStaves: SmoSystemStaff[];
168
+ slurs: Record<number, XmlSlurType | null>;
169
+ wedges: XmlWedgeState;
170
+ hairpins: XmlHairpinInfo[];
171
+ instrument: SmoInstrumentParams;
172
+ instrumentMap: Record<number, SmoInstrument>;
173
+ globalCursor: number;
174
+ staffVoiceHash: Record<string | number, number[]>;
175
+ endingMap: Record<number, XmlEnding[]>;
176
+ startRepeatMap: Record<number, number>;
177
+ endRepeatMap: Record<number, number>;
178
+ startBarline: number;
179
+ endBarline: number;
180
+ measureIndex: number;
181
+ completedSlurs: SmoSlurParams[];
182
+ completedTies: XmlTieType[];
183
+ verseMap: Record<number | string, number>;
184
+ measureNumber: number;
185
+ formattingManager: SmoFormattingManager;
186
+ completedTupletStates: XmlCompletedTupletState[];
187
+ tupletStatesInProgress: Record<number, XmlTupletState>;
188
+ tickCursor: number;
189
+ tempo: SmoTempoText;
190
+ staffArray: XmlStaffInfo[];
191
+ staffIndex: number;
192
+ graceNotes: SmoGraceNote[];
193
+ currentDuration: number;
194
+ beamGroups: Record<number, XmlBeamGroupInfo | null>;
195
+ dynamics: XmlDynamicInfo[];
196
+ previousNote: SmoNote;
197
+ completedTuplets: XmlCompletedTuplet[];
198
+ newTitle: boolean;
199
+ divisions: number;
200
+ keySignature: string;
201
+ timeSignature: string;
202
+ voiceIndex: number;
203
+ pixelsPerTenth: number;
204
+ musicFontSize: number;
205
+ partId: string;
206
+ rehearsalMark: string;
207
+ rehearsalMarks: Record<number, string>;
208
+ parts: Record<string, SmoPartInfo>;
209
+ openPartGroup: XmlPartGroup | null;
210
+ initializeForPart(): void;
211
+ initializeForMeasure(measureElement: Element): void;
212
+ initializeStaff(staffIndex: number, voiceIndex: number): void;
213
+ updateStaffGroups(): void;
214
+ addLyric(note: SmoNote, lyricData: XmlLyricData): void;
215
+ /**
216
+ * process a wedge aka hairpin dynamic
217
+ * @param wedgeInfo
218
+ */
219
+ processWedge(wedgeInfo: XmlWedgeInfo): void;
220
+ backtrackHairpins(smoStaff: SmoSystemStaff, staffId: number): void;
221
+ updateDynamics(): void;
222
+ backtrackBeamGroup(voice: XmlVoiceInfo, beamGroup: XmlBeamGroupInfo): void;
223
+ updateBeamState(beamState: number, alteration: XmlDurationAlteration, voice: XmlVoiceInfo, voiceIndex: number): void;
224
+ updateTieStates(tieInfos: XmlTieType[]): void;
225
+ updateEndings(barlineNode: Element): void;
226
+ /**
227
+ * While parsing a measure,
228
+ * on a slur element, either complete a started
229
+ * slur or start a new one.
230
+ * @param slurInfos
231
+ */
232
+ updateSlurStates(slurInfos: XmlSlurType[]): void;
233
+ assignRehearsalMarks(): void;
234
+ /**
235
+ * After reading in a measure, update any completed slurs and make them
236
+ * into SmoSlur and add them to the SmoSystemGroup objects.
237
+ * staffIndexOffset is the offset from the xml staffId and the score staff Id
238
+ * (i.e. the staves that have already been parsed in other parts)
239
+ */
240
+ completeSlurs(): void;
241
+ /**
242
+ * Go through saved start ties, try to find the endpoint of the tie. Ties in music xml
243
+ * are a little ambiguous, we assume we are tying to the same pitch
244
+ * @param score
245
+ */
246
+ completeTies(score: SmoScore): void;
247
+ updateTupletStates(tupletInfos: XmlTupletType[], voice: XmlVoiceInfo, staffIndex: number, voiceIndex: number): void;
248
+ addTupletsToMeasure(smoMeasure: SmoMeasure, staffId: number, voiceId: number): void;
249
+ private findAndRemoveCompletedTupletStatesByStaffAndVoice;
250
+ private buildXmlTupletStateTrees;
251
+ private sortTupletStates;
252
+ /**
253
+ * Create SmoTuplets out of completedTupletStates
254
+ */
255
+ buildSmoTupletTreesFromXmlTupletStateTrees(xmlTupletStateTrees: XmlTupletStateTreeNode[], notes: SmoNote[]): SmoTupletTree[];
256
+ getSystems(): SmoSystemGroup[];
257
+ }