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,238 +1,238 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Classes to support a {@link SmoSystemStaff}, which is a container for measures and
|
|
3
|
-
* staff modifiers.
|
|
4
|
-
* @module /smo/data/systemStaff
|
|
5
|
-
* **/
|
|
6
|
-
import { SmoObjectParams, SmoAttrs, Pitch, ElementLike } from './common';
|
|
7
|
-
import { SmoMeasure, SmoMeasureParamsSer } from './measure';
|
|
8
|
-
import { SmoRehearsalMarkParams, SmoTempoTextParams, SmoVolta } from './measureModifiers';
|
|
9
|
-
import { SmoInstrumentParams, StaffModifierBase, SmoInstrument, SmoInstrumentMeasure, SmoTie, SmoStaffTextBracket, SmoStaffTextBracketParamsSer, StaffModifierBaseSer, SmoTabStave, SmoStaffHairpin } from './staffModifiers';
|
|
10
|
-
import { SmoPartInfo, SmoPartInfoParamsSer } from './partInfo';
|
|
11
|
-
import { SmoSelector } from '../xform/selections';
|
|
12
|
-
import { FontInfo } from '../../common/vex';
|
|
13
|
-
/**
|
|
14
|
-
* indicate that we need to serialize the key signature, etc.
|
|
15
|
-
* maps beause we are going to be deserializing again in a different score
|
|
16
|
-
* @category SmoObject
|
|
17
|
-
*/
|
|
18
|
-
export interface SmoStaffSerializationOptions {
|
|
19
|
-
skipMaps: boolean;
|
|
20
|
-
preserveIds: boolean;
|
|
21
|
-
transposeInstruments: boolean;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Constructor parameters for {@link SmoSystemStaff}.
|
|
25
|
-
* Usually you will call
|
|
26
|
-
* {@link SmoSystemStaff.defaults}, and modify the parameters you need to change,
|
|
27
|
-
* or get the defaults from an existing staff
|
|
28
|
-
* @param renumberingMap For alternate number, pickups, etc.
|
|
29
|
-
* @param keySignatureMap map of keys to measures
|
|
30
|
-
* @param measureInstrumentMap map of instruments to staves
|
|
31
|
-
* @param measures array of {@link SmoMeasure}
|
|
32
|
-
* @param modifiers slurs and such
|
|
33
|
-
* @param partInfo
|
|
34
|
-
* @category SmoObject
|
|
35
|
-
*/
|
|
36
|
-
export interface SmoSystemStaffParams {
|
|
37
|
-
staffId: number;
|
|
38
|
-
/**
|
|
39
|
-
* For alternate number, pickups, etc.
|
|
40
|
-
* */
|
|
41
|
-
renumberingMap: Record<number, number>;
|
|
42
|
-
/**
|
|
43
|
-
* map of keys to measures
|
|
44
|
-
*/
|
|
45
|
-
keySignatureMap: Record<number, string>;
|
|
46
|
-
measureInstrumentMap: Record<number, SmoInstrumentParams>;
|
|
47
|
-
/**
|
|
48
|
-
* array of {@link SmoMeasure})
|
|
49
|
-
*/
|
|
50
|
-
measures: SmoMeasure[];
|
|
51
|
-
/**
|
|
52
|
-
* modifiers slurs and such
|
|
53
|
-
* */
|
|
54
|
-
modifiers: StaffModifierBase[];
|
|
55
|
-
/**
|
|
56
|
-
* information about the part
|
|
57
|
-
*/
|
|
58
|
-
partInfo?: SmoPartInfo;
|
|
59
|
-
/**
|
|
60
|
-
* text lines
|
|
61
|
-
*/
|
|
62
|
-
textBrackets?: SmoStaffTextBracket[];
|
|
63
|
-
/**
|
|
64
|
-
*guitar tablature
|
|
65
|
-
*/
|
|
66
|
-
tabStaves: SmoTabStave[];
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Serialized components of a stave
|
|
70
|
-
* @category serialization
|
|
71
|
-
*/
|
|
72
|
-
export interface SmoSystemStaffParamsSer {
|
|
73
|
-
/**
|
|
74
|
-
* class name
|
|
75
|
-
*/
|
|
76
|
-
ctor: string;
|
|
77
|
-
/**
|
|
78
|
-
* index of the staff
|
|
79
|
-
*/
|
|
80
|
-
staffId: number;
|
|
81
|
-
/**
|
|
82
|
-
* map of measure numbers vs. indices of measures
|
|
83
|
-
*/
|
|
84
|
-
renumberingMap?: Record<number, number>;
|
|
85
|
-
/**
|
|
86
|
-
* locations of key signature changes
|
|
87
|
-
*/
|
|
88
|
-
keySignatureMap?: Record<number, string>;
|
|
89
|
-
/**
|
|
90
|
-
* map of measures to instruments (clef, transpose, sounds)
|
|
91
|
-
*/
|
|
92
|
-
measureInstrumentMap: Record<number, SmoInstrumentParams>;
|
|
93
|
-
/**
|
|
94
|
-
* measure container
|
|
95
|
-
*/
|
|
96
|
-
measures: SmoMeasureParamsSer[];
|
|
97
|
-
/**
|
|
98
|
-
* array of modifiers like slurs
|
|
99
|
-
*/
|
|
100
|
-
modifiers: StaffModifierBaseSer[];
|
|
101
|
-
/**
|
|
102
|
-
* Associated part information for this stave
|
|
103
|
-
*/
|
|
104
|
-
partInfo: SmoPartInfoParamsSer;
|
|
105
|
-
/**
|
|
106
|
-
* text brackets are another kind of modifier
|
|
107
|
-
*/
|
|
108
|
-
textBrackets: SmoStaffTextBracketParamsSer[];
|
|
109
|
-
/**
|
|
110
|
-
* guitar tablature
|
|
111
|
-
*/
|
|
112
|
-
tabStaves: SmoTabStave[];
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* A staff is a line of music that can span multiple measures.
|
|
116
|
-
* A system is a line of music for each staff in the score. So a staff
|
|
117
|
-
* spans multiple systems.
|
|
118
|
-
* A staff modifier connects 2 points in the staff.
|
|
119
|
-
* @category SmoObject
|
|
120
|
-
* */
|
|
121
|
-
export declare class SmoSystemStaff implements SmoObjectParams {
|
|
122
|
-
/**
|
|
123
|
-
* Gets the instrument assigned to a given measure
|
|
124
|
-
* @param measureInstrumentMap
|
|
125
|
-
* @param measureIndex
|
|
126
|
-
* @returns
|
|
127
|
-
*/
|
|
128
|
-
static getStaffInstrument(measureInstrumentMap: Record<number, SmoInstrument>, measureIndex: number): SmoInstrument;
|
|
129
|
-
static getStaffInstrumentArray(measureInstrumentMap: Record<number, SmoInstrumentParams>): SmoInstrumentMeasure[];
|
|
130
|
-
staffId: number;
|
|
131
|
-
renumberingMap: Record<number, number>;
|
|
132
|
-
keySignatureMap: Record<number, string>;
|
|
133
|
-
partInfo: SmoPartInfo;
|
|
134
|
-
measureInstrumentMap: Record<number, SmoInstrument>;
|
|
135
|
-
measures: SmoMeasure[];
|
|
136
|
-
modifiers: StaffModifierBase[];
|
|
137
|
-
textBrackets: SmoStaffTextBracket[];
|
|
138
|
-
bracketMap: Record<number, ElementLike[]>;
|
|
139
|
-
tabStaves: SmoTabStave[];
|
|
140
|
-
attrs: SmoAttrs;
|
|
141
|
-
ctor: string;
|
|
142
|
-
_mappedStaffId: number;
|
|
143
|
-
static get defaults(): SmoSystemStaffParams;
|
|
144
|
-
setMappedStaffId(value: number): void;
|
|
145
|
-
getMappedStaffId(): number;
|
|
146
|
-
constructor(params: SmoSystemStaffParams);
|
|
147
|
-
/**
|
|
148
|
-
* records need to be serialized separately from other elements in parameters
|
|
149
|
-
*
|
|
150
|
-
* @static
|
|
151
|
-
* @type {string[]}
|
|
152
|
-
* @memberof SmoSystemStaff
|
|
153
|
-
*/
|
|
154
|
-
static serializableElements: string[];
|
|
155
|
-
static recordElements: string[];
|
|
156
|
-
static get defaultParameters(): string[];
|
|
157
|
-
get renderableModifiers(): StaffModifierBase[];
|
|
158
|
-
serialize(options: SmoStaffSerializationOptions): SmoSystemStaffParamsSer;
|
|
159
|
-
static deserialize(jsonObj: SmoSystemStaffParamsSer, transposeInstruments: boolean): SmoSystemStaff;
|
|
160
|
-
/**
|
|
161
|
-
* We have created a score with staff mappings. Update the selectors in staff modifiers so that
|
|
162
|
-
* 'from' in the staff slot is 'to'
|
|
163
|
-
*/
|
|
164
|
-
mapStaffFromTo(from: number, to: number): void;
|
|
165
|
-
updateMeasureFormatsForPart(): void;
|
|
166
|
-
/**
|
|
167
|
-
* Get the active instrument at the given measure
|
|
168
|
-
* @param measureIndex
|
|
169
|
-
* @returns
|
|
170
|
-
*/
|
|
171
|
-
getStaffInstrument(measureIndex: number): SmoInstrument;
|
|
172
|
-
getInstrumentList(): SmoInstrument[];
|
|
173
|
-
consolidateInstruments(): void;
|
|
174
|
-
updateInstrumentOffsets(): void;
|
|
175
|
-
isRest(index: number): boolean;
|
|
176
|
-
/**
|
|
177
|
-
* for the purposes of breaking up multimeasure rests, isRepeat is true if
|
|
178
|
-
* the next bar has a start repeat, or the current bar has an end repeat.
|
|
179
|
-
* @param index
|
|
180
|
-
* @returns
|
|
181
|
-
*/
|
|
182
|
-
isRepeat(index: number): boolean;
|
|
183
|
-
isRepeatSymbol(index: number): boolean;
|
|
184
|
-
isRehearsal(index: number): boolean;
|
|
185
|
-
hasNonRestNotes(): boolean;
|
|
186
|
-
hasInstrument(): boolean;
|
|
187
|
-
findSimlarOverlap(modifier: StaffModifierBase): StaffModifierBase[];
|
|
188
|
-
removeTabStaves(delList: SmoTabStave[]): void;
|
|
189
|
-
updateTabStave(ts: SmoTabStave): void;
|
|
190
|
-
get maxVoiceCount(): number;
|
|
191
|
-
/**
|
|
192
|
-
* Get all the pitches that start ties to the next measure, so that their
|
|
193
|
-
* accidentals may be preserved
|
|
194
|
-
* @param selector
|
|
195
|
-
* @returns
|
|
196
|
-
*/
|
|
197
|
-
getTiedPitchesForNextMeasure(measureIndex: number): Pitch[];
|
|
198
|
-
getTabStaveForMeasure(selector: SmoSelector): SmoTabStave | undefined;
|
|
199
|
-
getTabStavesForMeasureRow(measures: SmoMeasure[]): SmoTabStave[];
|
|
200
|
-
addStaffModifier(modifier: StaffModifierBase): void;
|
|
201
|
-
removeStaffModifier(modifier: StaffModifierBase): void;
|
|
202
|
-
getVoltaMap(startIndex: number, endIndex: number): SmoVolta[];
|
|
203
|
-
getVoltasForMeasure(ix: number): SmoVolta[];
|
|
204
|
-
getModifiersAt(selector: SmoSelector): StaffModifierBase[];
|
|
205
|
-
getModifier(modData: any): StaffModifierBase | undefined;
|
|
206
|
-
setLyricFont(fontInfo: FontInfo): void;
|
|
207
|
-
setLyricAdjustWidth(adjustNoteWidth: boolean): void;
|
|
208
|
-
setChordFont(fontInfo: FontInfo): void;
|
|
209
|
-
setChordAdjustWidth(adjustNoteWidth: boolean): void;
|
|
210
|
-
addTextBracket(bracketParams: SmoStaffTextBracket): void;
|
|
211
|
-
removeTextBracket(bracketParams: SmoStaffTextBracket): void;
|
|
212
|
-
getTextBracketsStartingAt(selector: SmoSelector): SmoStaffTextBracket[];
|
|
213
|
-
getSlursStartingAt(selector: SmoSelector): StaffModifierBase[];
|
|
214
|
-
getSlursEndingAt(selector: SmoSelector): StaffModifierBase[];
|
|
215
|
-
getTiesStartingAt(selector: SmoSelector): SmoTie[];
|
|
216
|
-
getTiesEndingAt(selector: SmoSelector): StaffModifierBase[];
|
|
217
|
-
getHairpinsStartingAt(selector: SmoSelector): SmoStaffHairpin[];
|
|
218
|
-
getPedalMarkingsContaining(selector: SmoSelector): StaffModifierBase[];
|
|
219
|
-
getModifiers(): StaffModifierBase[];
|
|
220
|
-
applyBeams(): void;
|
|
221
|
-
addRehearsalMark(index: number, parameters: SmoRehearsalMarkParams): void;
|
|
222
|
-
removeTempo(index: number): void;
|
|
223
|
-
addTempo(tempo: SmoTempoTextParams, index: number): void;
|
|
224
|
-
removeRehearsalMark(index: number): void;
|
|
225
|
-
/**
|
|
226
|
-
* Sync the staff modifier indices between the full score and the score view, which may
|
|
227
|
-
* have fewer staves
|
|
228
|
-
* @param measureIndex
|
|
229
|
-
* @param ostaff
|
|
230
|
-
*/
|
|
231
|
-
syncStaffModifiers(measureIndex: number, ostaff: SmoSystemStaff): void;
|
|
232
|
-
deleteMeasure(index: number): void;
|
|
233
|
-
addKeySignature(measureIndex: number, key: string): void;
|
|
234
|
-
_updateKeySignatures(): void;
|
|
235
|
-
numberMeasures(): void;
|
|
236
|
-
addDefaultMeasure(index: number, params: SmoMeasure): void;
|
|
237
|
-
addMeasure(index: number, measure: SmoMeasure): void;
|
|
238
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Classes to support a {@link SmoSystemStaff}, which is a container for measures and
|
|
3
|
+
* staff modifiers.
|
|
4
|
+
* @module /smo/data/systemStaff
|
|
5
|
+
* **/
|
|
6
|
+
import { SmoObjectParams, SmoAttrs, Pitch, ElementLike } from './common';
|
|
7
|
+
import { SmoMeasure, SmoMeasureParamsSer } from './measure';
|
|
8
|
+
import { SmoRehearsalMarkParams, SmoTempoTextParams, SmoVolta } from './measureModifiers';
|
|
9
|
+
import { SmoInstrumentParams, StaffModifierBase, SmoInstrument, SmoInstrumentMeasure, SmoTie, SmoStaffTextBracket, SmoStaffTextBracketParamsSer, StaffModifierBaseSer, SmoTabStave, SmoStaffHairpin } from './staffModifiers';
|
|
10
|
+
import { SmoPartInfo, SmoPartInfoParamsSer } from './partInfo';
|
|
11
|
+
import { SmoSelector } from '../xform/selections';
|
|
12
|
+
import { FontInfo } from '../../common/vex';
|
|
13
|
+
/**
|
|
14
|
+
* indicate that we need to serialize the key signature, etc.
|
|
15
|
+
* maps beause we are going to be deserializing again in a different score
|
|
16
|
+
* @category SmoObject
|
|
17
|
+
*/
|
|
18
|
+
export interface SmoStaffSerializationOptions {
|
|
19
|
+
skipMaps: boolean;
|
|
20
|
+
preserveIds: boolean;
|
|
21
|
+
transposeInstruments: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Constructor parameters for {@link SmoSystemStaff}.
|
|
25
|
+
* Usually you will call
|
|
26
|
+
* {@link SmoSystemStaff.defaults}, and modify the parameters you need to change,
|
|
27
|
+
* or get the defaults from an existing staff
|
|
28
|
+
* @param renumberingMap For alternate number, pickups, etc.
|
|
29
|
+
* @param keySignatureMap map of keys to measures
|
|
30
|
+
* @param measureInstrumentMap map of instruments to staves
|
|
31
|
+
* @param measures array of {@link SmoMeasure}
|
|
32
|
+
* @param modifiers slurs and such
|
|
33
|
+
* @param partInfo
|
|
34
|
+
* @category SmoObject
|
|
35
|
+
*/
|
|
36
|
+
export interface SmoSystemStaffParams {
|
|
37
|
+
staffId: number;
|
|
38
|
+
/**
|
|
39
|
+
* For alternate number, pickups, etc.
|
|
40
|
+
* */
|
|
41
|
+
renumberingMap: Record<number, number>;
|
|
42
|
+
/**
|
|
43
|
+
* map of keys to measures
|
|
44
|
+
*/
|
|
45
|
+
keySignatureMap: Record<number, string>;
|
|
46
|
+
measureInstrumentMap: Record<number, SmoInstrumentParams>;
|
|
47
|
+
/**
|
|
48
|
+
* array of {@link SmoMeasure})
|
|
49
|
+
*/
|
|
50
|
+
measures: SmoMeasure[];
|
|
51
|
+
/**
|
|
52
|
+
* modifiers slurs and such
|
|
53
|
+
* */
|
|
54
|
+
modifiers: StaffModifierBase[];
|
|
55
|
+
/**
|
|
56
|
+
* information about the part
|
|
57
|
+
*/
|
|
58
|
+
partInfo?: SmoPartInfo;
|
|
59
|
+
/**
|
|
60
|
+
* text lines
|
|
61
|
+
*/
|
|
62
|
+
textBrackets?: SmoStaffTextBracket[];
|
|
63
|
+
/**
|
|
64
|
+
*guitar tablature
|
|
65
|
+
*/
|
|
66
|
+
tabStaves: SmoTabStave[];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Serialized components of a stave
|
|
70
|
+
* @category serialization
|
|
71
|
+
*/
|
|
72
|
+
export interface SmoSystemStaffParamsSer {
|
|
73
|
+
/**
|
|
74
|
+
* class name
|
|
75
|
+
*/
|
|
76
|
+
ctor: string;
|
|
77
|
+
/**
|
|
78
|
+
* index of the staff
|
|
79
|
+
*/
|
|
80
|
+
staffId: number;
|
|
81
|
+
/**
|
|
82
|
+
* map of measure numbers vs. indices of measures
|
|
83
|
+
*/
|
|
84
|
+
renumberingMap?: Record<number, number>;
|
|
85
|
+
/**
|
|
86
|
+
* locations of key signature changes
|
|
87
|
+
*/
|
|
88
|
+
keySignatureMap?: Record<number, string>;
|
|
89
|
+
/**
|
|
90
|
+
* map of measures to instruments (clef, transpose, sounds)
|
|
91
|
+
*/
|
|
92
|
+
measureInstrumentMap: Record<number, SmoInstrumentParams>;
|
|
93
|
+
/**
|
|
94
|
+
* measure container
|
|
95
|
+
*/
|
|
96
|
+
measures: SmoMeasureParamsSer[];
|
|
97
|
+
/**
|
|
98
|
+
* array of modifiers like slurs
|
|
99
|
+
*/
|
|
100
|
+
modifiers: StaffModifierBaseSer[];
|
|
101
|
+
/**
|
|
102
|
+
* Associated part information for this stave
|
|
103
|
+
*/
|
|
104
|
+
partInfo: SmoPartInfoParamsSer;
|
|
105
|
+
/**
|
|
106
|
+
* text brackets are another kind of modifier
|
|
107
|
+
*/
|
|
108
|
+
textBrackets: SmoStaffTextBracketParamsSer[];
|
|
109
|
+
/**
|
|
110
|
+
* guitar tablature
|
|
111
|
+
*/
|
|
112
|
+
tabStaves: SmoTabStave[];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* A staff is a line of music that can span multiple measures.
|
|
116
|
+
* A system is a line of music for each staff in the score. So a staff
|
|
117
|
+
* spans multiple systems.
|
|
118
|
+
* A staff modifier connects 2 points in the staff.
|
|
119
|
+
* @category SmoObject
|
|
120
|
+
* */
|
|
121
|
+
export declare class SmoSystemStaff implements SmoObjectParams {
|
|
122
|
+
/**
|
|
123
|
+
* Gets the instrument assigned to a given measure
|
|
124
|
+
* @param measureInstrumentMap
|
|
125
|
+
* @param measureIndex
|
|
126
|
+
* @returns
|
|
127
|
+
*/
|
|
128
|
+
static getStaffInstrument(measureInstrumentMap: Record<number, SmoInstrument>, measureIndex: number): SmoInstrument;
|
|
129
|
+
static getStaffInstrumentArray(measureInstrumentMap: Record<number, SmoInstrumentParams>): SmoInstrumentMeasure[];
|
|
130
|
+
staffId: number;
|
|
131
|
+
renumberingMap: Record<number, number>;
|
|
132
|
+
keySignatureMap: Record<number, string>;
|
|
133
|
+
partInfo: SmoPartInfo;
|
|
134
|
+
measureInstrumentMap: Record<number, SmoInstrument>;
|
|
135
|
+
measures: SmoMeasure[];
|
|
136
|
+
modifiers: StaffModifierBase[];
|
|
137
|
+
textBrackets: SmoStaffTextBracket[];
|
|
138
|
+
bracketMap: Record<number, ElementLike[]>;
|
|
139
|
+
tabStaves: SmoTabStave[];
|
|
140
|
+
attrs: SmoAttrs;
|
|
141
|
+
ctor: string;
|
|
142
|
+
_mappedStaffId: number;
|
|
143
|
+
static get defaults(): SmoSystemStaffParams;
|
|
144
|
+
setMappedStaffId(value: number): void;
|
|
145
|
+
getMappedStaffId(): number;
|
|
146
|
+
constructor(params: SmoSystemStaffParams);
|
|
147
|
+
/**
|
|
148
|
+
* records need to be serialized separately from other elements in parameters
|
|
149
|
+
*
|
|
150
|
+
* @static
|
|
151
|
+
* @type {string[]}
|
|
152
|
+
* @memberof SmoSystemStaff
|
|
153
|
+
*/
|
|
154
|
+
static serializableElements: string[];
|
|
155
|
+
static recordElements: string[];
|
|
156
|
+
static get defaultParameters(): string[];
|
|
157
|
+
get renderableModifiers(): StaffModifierBase[];
|
|
158
|
+
serialize(options: SmoStaffSerializationOptions): SmoSystemStaffParamsSer;
|
|
159
|
+
static deserialize(jsonObj: SmoSystemStaffParamsSer, transposeInstruments: boolean): SmoSystemStaff;
|
|
160
|
+
/**
|
|
161
|
+
* We have created a score with staff mappings. Update the selectors in staff modifiers so that
|
|
162
|
+
* 'from' in the staff slot is 'to'
|
|
163
|
+
*/
|
|
164
|
+
mapStaffFromTo(from: number, to: number): void;
|
|
165
|
+
updateMeasureFormatsForPart(): void;
|
|
166
|
+
/**
|
|
167
|
+
* Get the active instrument at the given measure
|
|
168
|
+
* @param measureIndex
|
|
169
|
+
* @returns
|
|
170
|
+
*/
|
|
171
|
+
getStaffInstrument(measureIndex: number): SmoInstrument;
|
|
172
|
+
getInstrumentList(): SmoInstrument[];
|
|
173
|
+
consolidateInstruments(): void;
|
|
174
|
+
updateInstrumentOffsets(): void;
|
|
175
|
+
isRest(index: number): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* for the purposes of breaking up multimeasure rests, isRepeat is true if
|
|
178
|
+
* the next bar has a start repeat, or the current bar has an end repeat.
|
|
179
|
+
* @param index
|
|
180
|
+
* @returns
|
|
181
|
+
*/
|
|
182
|
+
isRepeat(index: number): boolean;
|
|
183
|
+
isRepeatSymbol(index: number): boolean;
|
|
184
|
+
isRehearsal(index: number): boolean;
|
|
185
|
+
hasNonRestNotes(): boolean;
|
|
186
|
+
hasInstrument(): boolean;
|
|
187
|
+
findSimlarOverlap(modifier: StaffModifierBase): StaffModifierBase[];
|
|
188
|
+
removeTabStaves(delList: SmoTabStave[]): void;
|
|
189
|
+
updateTabStave(ts: SmoTabStave): void;
|
|
190
|
+
get maxVoiceCount(): number;
|
|
191
|
+
/**
|
|
192
|
+
* Get all the pitches that start ties to the next measure, so that their
|
|
193
|
+
* accidentals may be preserved
|
|
194
|
+
* @param selector
|
|
195
|
+
* @returns
|
|
196
|
+
*/
|
|
197
|
+
getTiedPitchesForNextMeasure(measureIndex: number): Pitch[];
|
|
198
|
+
getTabStaveForMeasure(selector: SmoSelector): SmoTabStave | undefined;
|
|
199
|
+
getTabStavesForMeasureRow(measures: SmoMeasure[]): SmoTabStave[];
|
|
200
|
+
addStaffModifier(modifier: StaffModifierBase): void;
|
|
201
|
+
removeStaffModifier(modifier: StaffModifierBase): void;
|
|
202
|
+
getVoltaMap(startIndex: number, endIndex: number): SmoVolta[];
|
|
203
|
+
getVoltasForMeasure(ix: number): SmoVolta[];
|
|
204
|
+
getModifiersAt(selector: SmoSelector): StaffModifierBase[];
|
|
205
|
+
getModifier(modData: any): StaffModifierBase | undefined;
|
|
206
|
+
setLyricFont(fontInfo: FontInfo): void;
|
|
207
|
+
setLyricAdjustWidth(adjustNoteWidth: boolean): void;
|
|
208
|
+
setChordFont(fontInfo: FontInfo): void;
|
|
209
|
+
setChordAdjustWidth(adjustNoteWidth: boolean): void;
|
|
210
|
+
addTextBracket(bracketParams: SmoStaffTextBracket): void;
|
|
211
|
+
removeTextBracket(bracketParams: SmoStaffTextBracket): void;
|
|
212
|
+
getTextBracketsStartingAt(selector: SmoSelector): SmoStaffTextBracket[];
|
|
213
|
+
getSlursStartingAt(selector: SmoSelector): StaffModifierBase[];
|
|
214
|
+
getSlursEndingAt(selector: SmoSelector): StaffModifierBase[];
|
|
215
|
+
getTiesStartingAt(selector: SmoSelector): SmoTie[];
|
|
216
|
+
getTiesEndingAt(selector: SmoSelector): StaffModifierBase[];
|
|
217
|
+
getHairpinsStartingAt(selector: SmoSelector): SmoStaffHairpin[];
|
|
218
|
+
getPedalMarkingsContaining(selector: SmoSelector): StaffModifierBase[];
|
|
219
|
+
getModifiers(): StaffModifierBase[];
|
|
220
|
+
applyBeams(): void;
|
|
221
|
+
addRehearsalMark(index: number, parameters: SmoRehearsalMarkParams): void;
|
|
222
|
+
removeTempo(index: number): void;
|
|
223
|
+
addTempo(tempo: SmoTempoTextParams, index: number): void;
|
|
224
|
+
removeRehearsalMark(index: number): void;
|
|
225
|
+
/**
|
|
226
|
+
* Sync the staff modifier indices between the full score and the score view, which may
|
|
227
|
+
* have fewer staves
|
|
228
|
+
* @param measureIndex
|
|
229
|
+
* @param ostaff
|
|
230
|
+
*/
|
|
231
|
+
syncStaffModifiers(measureIndex: number, ostaff: SmoSystemStaff): void;
|
|
232
|
+
deleteMeasure(index: number): void;
|
|
233
|
+
addKeySignature(measureIndex: number, key: string): void;
|
|
234
|
+
_updateKeySignatures(): void;
|
|
235
|
+
numberMeasures(): void;
|
|
236
|
+
addDefaultMeasure(index: number, params: SmoMeasure): void;
|
|
237
|
+
addMeasure(index: number, measure: SmoMeasure): void;
|
|
238
|
+
}
|