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.
- package/build/smoosic.js +1 -1
- package/package.json +1 -1
- package/release/smoosic.js +1 -1
- package/release/styles/ribbon.css +5 -10
- package/src/application/exports.ts +1 -0
- package/src/styles/ribbon.css +5 -10
- package/types/src/application/application.d.ts +102 -102
- package/types/src/application/common.d.ts +74 -74
- package/types/src/application/configuration.d.ts +74 -74
- package/types/src/application/dom.d.ts +8 -8
- package/types/src/application/dynamicInit.d.ts +1 -1
- package/types/src/application/eventHandler.d.ts +78 -78
- package/types/src/application/exports.d.ts +494 -493
- package/types/src/application/generateVexTests.d.ts +10 -10
- package/types/src/application/keyCommands.d.ts +90 -90
- package/types/src/common/bootstrap.bundle.d.ts +1138 -1138
- package/types/src/common/htmlHelpers.d.ts +105 -105
- package/types/src/common/jszip.d.ts +2 -2
- package/types/src/common/midi-parser.d.ts +38 -38
- package/types/src/common/promiseHelpers.d.ts +30 -30
- package/types/src/common/serializationHelpers.d.ts +29 -29
- package/types/src/common/textformatter.d.ts +140 -140
- package/types/src/common/vex.d.ts +222 -222
- package/types/src/render/audio/musicCursor.d.ts +25 -25
- package/types/src/render/audio/oscillator.d.ts +98 -98
- package/types/src/render/audio/player.d.ts +141 -141
- package/types/src/render/audio/samples.d.ts +56 -56
- package/types/src/render/sui/configuration.d.ts +12 -12
- package/types/src/render/sui/formatter.d.ts +151 -151
- package/types/src/render/sui/layoutDebug.d.ts +43 -43
- package/types/src/render/sui/mapper.d.ts +116 -116
- package/types/src/render/sui/piano.d.ts +46 -46
- package/types/src/render/sui/renderState.d.ts +88 -88
- package/types/src/render/sui/scoreRender.d.ts +93 -93
- package/types/src/render/sui/scoreView.d.ts +267 -267
- package/types/src/render/sui/scoreViewOperations.d.ts +594 -594
- package/types/src/render/sui/scroller.d.ts +34 -34
- package/types/src/render/sui/svgHelpers.d.ts +85 -85
- package/types/src/render/sui/svgPageMap.d.ts +318 -318
- package/types/src/render/sui/textEdit.d.ts +310 -310
- package/types/src/render/sui/textRender.d.ts +189 -189
- package/types/src/render/sui/tracker.d.ts +90 -90
- package/types/src/render/vex/glyphDimensions.d.ts +23 -23
- package/types/src/render/vex/smoAdapter.d.ts +46 -46
- package/types/src/render/vex/toVex.d.ts +13 -13
- package/types/src/render/vex/vxMeasure.d.ts +95 -95
- package/types/src/render/vex/vxNote.d.ts +55 -55
- package/types/src/render/vex/vxSystem.d.ts +64 -64
- package/types/src/smo/data/common.d.ts +220 -220
- package/types/src/smo/data/measure.d.ts +510 -510
- package/types/src/smo/data/measureModifiers.d.ts +506 -506
- package/types/src/smo/data/music.d.ts +438 -438
- package/types/src/smo/data/note.d.ts +485 -485
- package/types/src/smo/data/noteModifiers.d.ts +590 -590
- package/types/src/smo/data/partInfo.d.ts +162 -162
- package/types/src/smo/data/score.d.ts +395 -395
- package/types/src/smo/data/scoreModifiers.d.ts +433 -433
- package/types/src/smo/data/scoreText.d.ts +277 -277
- package/types/src/smo/data/staffModifiers.d.ts +767 -767
- package/types/src/smo/data/systemStaff.d.ts +238 -238
- package/types/src/smo/data/tuplet.d.ts +146 -146
- package/types/src/smo/midi/midiToSmo.d.ts +198 -198
- package/types/src/smo/midi/smoToMidi.d.ts +23 -23
- package/types/src/smo/mxml/smoToXml.d.ts +165 -165
- package/types/src/smo/mxml/xmlHelpers.d.ts +140 -140
- package/types/src/smo/mxml/xmlState.d.ts +257 -257
- package/types/src/smo/mxml/xmlToSmo.d.ts +92 -92
- package/types/src/smo/xform/beamers.d.ts +46 -46
- package/types/src/smo/xform/copypaste.d.ts +99 -99
- package/types/src/smo/xform/operations.d.ts +127 -127
- package/types/src/smo/xform/roadmap.d.ts +70 -70
- package/types/src/smo/xform/selections.d.ts +153 -153
- package/types/src/smo/xform/tickDuration.d.ts +155 -155
- package/types/src/smo/xform/tickMap.d.ts +34 -34
- package/types/src/smo/xform/undo.d.ts +142 -142
- package/types/src/smo/xform/updateAudio.d.ts +9 -9
- package/types/src/styles/font_metrics/Commissioner-Medium-Metrics.d.ts +871 -871
- package/types/src/styles/font_metrics/ConcertOne-Regular.d.ts +871 -871
- package/types/src/styles/font_metrics/Merriweather-Regular.d.ts +871 -871
- package/types/src/styles/font_metrics/arial_metrics.d.ts +870 -870
- package/types/src/styles/font_metrics/ssp-sans-metrics.d.ts +871 -871
- package/types/src/styles/font_metrics/ssp-serif-metrics.d.ts +871 -871
- package/types/src/styles/font_metrics/times_metrics.d.ts +870 -870
- package/types/src/ui/buttons/button.d.ts +95 -95
- package/types/src/ui/buttons/collapsable.d.ts +42 -42
- package/types/src/ui/buttons/display.d.ts +23 -23
- package/types/src/ui/buttons/ribbon.d.ts +76 -76
- package/types/src/ui/common.d.ts +45 -45
- package/types/src/ui/composable/draggable.d.ts +12 -12
- package/types/src/ui/configuration.d.ts +31 -31
- package/types/src/ui/dialogs/adapter.d.ts +107 -107
- package/types/src/ui/dialogs/addMeasure.d.ts +20 -20
- package/types/src/ui/dialogs/arpeggio.d.ts +2 -2
- package/types/src/ui/dialogs/articulation.d.ts +2 -2
- package/types/src/ui/dialogs/audioSettings.d.ts +32 -32
- package/types/src/ui/dialogs/chordChange.d.ts +35 -35
- package/types/src/ui/dialogs/clefChange.d.ts +2 -2
- package/types/src/ui/dialogs/components/baseComponent.d.ts +158 -158
- package/types/src/ui/dialogs/components/button.d.ts +54 -54
- package/types/src/ui/dialogs/components/buttonArray.d.ts +101 -101
- package/types/src/ui/dialogs/components/checkdrop.d.ts +27 -27
- package/types/src/ui/dialogs/components/dragText.d.ts +27 -27
- package/types/src/ui/dialogs/components/dropdown.d.ts +78 -78
- package/types/src/ui/dialogs/components/fileDownload.d.ts +28 -28
- package/types/src/ui/dialogs/components/fontComponent.d.ts +32 -32
- package/types/src/ui/dialogs/components/noteText.d.ts +98 -98
- package/types/src/ui/dialogs/components/pitch.d.ts +95 -95
- package/types/src/ui/dialogs/components/rocker.d.ts +66 -66
- package/types/src/ui/dialogs/components/staffComponents.d.ts +77 -77
- package/types/src/ui/dialogs/components/textCheck.d.ts +38 -38
- package/types/src/ui/dialogs/components/textInPlace.d.ts +90 -90
- package/types/src/ui/dialogs/components/textInput.d.ts +58 -58
- package/types/src/ui/dialogs/components/tie.d.ts +41 -41
- package/types/src/ui/dialogs/components/toggle.d.ts +53 -53
- package/types/src/ui/dialogs/components/tree.d.ts +46 -46
- package/types/src/ui/dialogs/customTuplets.d.ts +25 -25
- package/types/src/ui/dialogs/dialog.d.ts +201 -201
- package/types/src/ui/dialogs/durations.d.ts +2 -2
- package/types/src/ui/dialogs/dynamics.d.ts +37 -37
- package/types/src/ui/dialogs/endings.d.ts +61 -61
- package/types/src/ui/dialogs/factory.d.ts +15 -15
- package/types/src/ui/dialogs/fileDialogs.d.ts +4 -4
- package/types/src/ui/dialogs/fonts.d.ts +2 -2
- package/types/src/ui/dialogs/globalLayout.d.ts +2 -2
- package/types/src/ui/dialogs/gracenote.d.ts +2 -2
- package/types/src/ui/dialogs/hairpin.d.ts +35 -35
- package/types/src/ui/dialogs/instrument.d.ts +3 -3
- package/types/src/ui/dialogs/keySignature.d.ts +33 -33
- package/types/src/ui/dialogs/library.d.ts +70 -70
- package/types/src/ui/dialogs/lyric.d.ts +39 -39
- package/types/src/ui/dialogs/measureFormat.d.ts +52 -52
- package/types/src/ui/dialogs/microtones.d.ts +2 -2
- package/types/src/ui/dialogs/noteHead.d.ts +2 -2
- package/types/src/ui/dialogs/ornament.d.ts +2 -2
- package/types/src/ui/dialogs/pageLayout.d.ts +2 -2
- package/types/src/ui/dialogs/partInfo.d.ts +2 -2
- package/types/src/ui/dialogs/pedalMarking.d.ts +35 -35
- package/types/src/ui/dialogs/pitch.d.ts +2 -2
- package/types/src/ui/dialogs/preferences.d.ts +2 -2
- package/types/src/ui/dialogs/scoreId.d.ts +2 -2
- package/types/src/ui/dialogs/scoreView.d.ts +2 -2
- package/types/src/ui/dialogs/slur.d.ts +57 -57
- package/types/src/ui/dialogs/staffGroup.d.ts +2 -2
- package/types/src/ui/dialogs/tabNote.d.ts +32 -32
- package/types/src/ui/dialogs/tabStave.d.ts +43 -43
- package/types/src/ui/dialogs/tempo.d.ts +50 -50
- package/types/src/ui/dialogs/textBlock.d.ts +61 -61
- package/types/src/ui/dialogs/textBracket.d.ts +35 -35
- package/types/src/ui/dialogs/tie.d.ts +41 -41
- package/types/src/ui/dialogs/timeSignature.d.ts +34 -34
- package/types/src/ui/dialogs/transposeScore.d.ts +2 -2
- package/types/src/ui/dialogs/volta.d.ts +40 -40
- package/types/src/ui/eventSource.d.ts +63 -63
- package/types/src/ui/exceptions.d.ts +12 -12
- package/types/src/ui/fileio/fileInput.d.ts +12 -12
- package/types/src/ui/fileio/library.d.ts +40 -40
- package/types/src/ui/fileio/xhrLoader.d.ts +18 -18
- package/types/src/ui/help.d.ts +22 -22
- package/types/src/ui/i18n/language.d.ts +37 -37
- package/types/src/ui/i18n/language_ar.d.ts +5 -5
- package/types/src/ui/i18n/language_de.d.ts +1 -1
- package/types/src/ui/i18n/language_en.d.ts +18 -18
- package/types/src/ui/i18n/translationEditor.d.ts +14 -14
- package/types/src/ui/keyBindings/default/editorKeys.d.ts +7 -7
- package/types/src/ui/keyBindings/default/trackerKeys.d.ts +7 -7
- package/types/src/ui/menus/beams.d.ts +13 -13
- package/types/src/ui/menus/edit.d.ts +8 -8
- package/types/src/ui/menus/file.d.ts +26 -26
- package/types/src/ui/menus/help.d.ts +8 -8
- package/types/src/ui/menus/keySignature.d.ts +13 -13
- package/types/src/ui/menus/language.d.ts +12 -12
- package/types/src/ui/menus/manager.d.ts +57 -57
- package/types/src/ui/menus/measure.d.ts +8 -8
- package/types/src/ui/menus/menu.d.ts +136 -136
- package/types/src/ui/menus/note.d.ts +8 -8
- package/types/src/ui/menus/partSelection.d.ts +19 -19
- package/types/src/ui/menus/parts.d.ts +50 -50
- package/types/src/ui/menus/score.d.ts +20 -20
- package/types/src/ui/menus/staffModifier.d.ts +21 -21
- package/types/src/ui/menus/text.d.ts +8 -8
- package/types/src/ui/menus/timeSignature.d.ts +12 -12
- package/types/src/ui/menus/tuplets.d.ts +13 -13
- package/types/src/ui/menus/voices.d.ts +8 -8
- package/types/src/ui/modalDialogs.d.ts +1 -1
- package/types/src/ui/navigation.d.ts +15 -15
- package/types/src/ui/qwerty.d.ts +41 -41
- package/types/src/ui/ribbonLayout/default/defaultRibbon.d.ts +15 -15
- package/types/src/ui/ribbonLayout/default/tabletRibbon.d.ts +22 -22
- 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
|
+
}
|