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,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
+ }