smoosic 1.0.25 → 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 (187) hide show
  1. package/build/smoosic.js +1 -1
  2. package/package.json +1 -1
  3. package/release/smoosic.js +1 -1
  4. package/src/application/exports.ts +1 -0
  5. package/types/src/application/application.d.ts +102 -102
  6. package/types/src/application/common.d.ts +74 -74
  7. package/types/src/application/configuration.d.ts +74 -74
  8. package/types/src/application/dom.d.ts +8 -8
  9. package/types/src/application/dynamicInit.d.ts +1 -1
  10. package/types/src/application/eventHandler.d.ts +78 -78
  11. package/types/src/application/exports.d.ts +494 -493
  12. package/types/src/application/generateVexTests.d.ts +10 -10
  13. package/types/src/application/keyCommands.d.ts +90 -90
  14. package/types/src/common/bootstrap.bundle.d.ts +1138 -1138
  15. package/types/src/common/htmlHelpers.d.ts +105 -105
  16. package/types/src/common/jszip.d.ts +2 -2
  17. package/types/src/common/midi-parser.d.ts +38 -38
  18. package/types/src/common/promiseHelpers.d.ts +30 -30
  19. package/types/src/common/serializationHelpers.d.ts +29 -29
  20. package/types/src/common/textformatter.d.ts +140 -140
  21. package/types/src/common/vex.d.ts +222 -222
  22. package/types/src/render/audio/musicCursor.d.ts +25 -25
  23. package/types/src/render/audio/oscillator.d.ts +98 -98
  24. package/types/src/render/audio/player.d.ts +141 -141
  25. package/types/src/render/audio/samples.d.ts +56 -56
  26. package/types/src/render/sui/configuration.d.ts +12 -12
  27. package/types/src/render/sui/formatter.d.ts +151 -151
  28. package/types/src/render/sui/layoutDebug.d.ts +43 -43
  29. package/types/src/render/sui/mapper.d.ts +116 -116
  30. package/types/src/render/sui/piano.d.ts +46 -46
  31. package/types/src/render/sui/renderState.d.ts +88 -88
  32. package/types/src/render/sui/scoreRender.d.ts +93 -93
  33. package/types/src/render/sui/scoreView.d.ts +267 -267
  34. package/types/src/render/sui/scoreViewOperations.d.ts +594 -594
  35. package/types/src/render/sui/scroller.d.ts +34 -34
  36. package/types/src/render/sui/svgHelpers.d.ts +85 -85
  37. package/types/src/render/sui/svgPageMap.d.ts +318 -318
  38. package/types/src/render/sui/textEdit.d.ts +310 -310
  39. package/types/src/render/sui/textRender.d.ts +189 -189
  40. package/types/src/render/sui/tracker.d.ts +90 -90
  41. package/types/src/render/vex/glyphDimensions.d.ts +23 -23
  42. package/types/src/render/vex/smoAdapter.d.ts +46 -46
  43. package/types/src/render/vex/toVex.d.ts +13 -13
  44. package/types/src/render/vex/vxMeasure.d.ts +95 -95
  45. package/types/src/render/vex/vxNote.d.ts +55 -55
  46. package/types/src/render/vex/vxSystem.d.ts +64 -64
  47. package/types/src/smo/data/common.d.ts +220 -220
  48. package/types/src/smo/data/measure.d.ts +510 -510
  49. package/types/src/smo/data/measureModifiers.d.ts +506 -506
  50. package/types/src/smo/data/music.d.ts +438 -438
  51. package/types/src/smo/data/note.d.ts +485 -485
  52. package/types/src/smo/data/noteModifiers.d.ts +590 -590
  53. package/types/src/smo/data/partInfo.d.ts +162 -162
  54. package/types/src/smo/data/score.d.ts +395 -395
  55. package/types/src/smo/data/scoreModifiers.d.ts +433 -433
  56. package/types/src/smo/data/scoreText.d.ts +277 -277
  57. package/types/src/smo/data/staffModifiers.d.ts +767 -767
  58. package/types/src/smo/data/systemStaff.d.ts +238 -238
  59. package/types/src/smo/data/tuplet.d.ts +146 -146
  60. package/types/src/smo/midi/midiToSmo.d.ts +198 -198
  61. package/types/src/smo/midi/smoToMidi.d.ts +23 -23
  62. package/types/src/smo/mxml/smoToXml.d.ts +165 -165
  63. package/types/src/smo/mxml/xmlHelpers.d.ts +140 -140
  64. package/types/src/smo/mxml/xmlState.d.ts +257 -257
  65. package/types/src/smo/mxml/xmlToSmo.d.ts +92 -92
  66. package/types/src/smo/xform/beamers.d.ts +46 -46
  67. package/types/src/smo/xform/copypaste.d.ts +99 -99
  68. package/types/src/smo/xform/operations.d.ts +127 -127
  69. package/types/src/smo/xform/roadmap.d.ts +70 -70
  70. package/types/src/smo/xform/selections.d.ts +153 -153
  71. package/types/src/smo/xform/tickDuration.d.ts +155 -155
  72. package/types/src/smo/xform/tickMap.d.ts +34 -34
  73. package/types/src/smo/xform/undo.d.ts +142 -142
  74. package/types/src/smo/xform/updateAudio.d.ts +9 -9
  75. package/types/src/styles/font_metrics/Commissioner-Medium-Metrics.d.ts +871 -871
  76. package/types/src/styles/font_metrics/ConcertOne-Regular.d.ts +871 -871
  77. package/types/src/styles/font_metrics/Merriweather-Regular.d.ts +871 -871
  78. package/types/src/styles/font_metrics/arial_metrics.d.ts +870 -870
  79. package/types/src/styles/font_metrics/ssp-sans-metrics.d.ts +871 -871
  80. package/types/src/styles/font_metrics/ssp-serif-metrics.d.ts +871 -871
  81. package/types/src/styles/font_metrics/times_metrics.d.ts +870 -870
  82. package/types/src/ui/buttons/button.d.ts +95 -95
  83. package/types/src/ui/buttons/collapsable.d.ts +42 -42
  84. package/types/src/ui/buttons/display.d.ts +23 -23
  85. package/types/src/ui/buttons/ribbon.d.ts +76 -76
  86. package/types/src/ui/common.d.ts +45 -45
  87. package/types/src/ui/composable/draggable.d.ts +12 -12
  88. package/types/src/ui/configuration.d.ts +31 -31
  89. package/types/src/ui/dialogs/adapter.d.ts +107 -107
  90. package/types/src/ui/dialogs/addMeasure.d.ts +20 -20
  91. package/types/src/ui/dialogs/arpeggio.d.ts +2 -2
  92. package/types/src/ui/dialogs/articulation.d.ts +2 -2
  93. package/types/src/ui/dialogs/audioSettings.d.ts +32 -32
  94. package/types/src/ui/dialogs/chordChange.d.ts +35 -35
  95. package/types/src/ui/dialogs/clefChange.d.ts +2 -2
  96. package/types/src/ui/dialogs/components/baseComponent.d.ts +158 -158
  97. package/types/src/ui/dialogs/components/button.d.ts +54 -54
  98. package/types/src/ui/dialogs/components/buttonArray.d.ts +101 -101
  99. package/types/src/ui/dialogs/components/checkdrop.d.ts +27 -27
  100. package/types/src/ui/dialogs/components/dragText.d.ts +27 -27
  101. package/types/src/ui/dialogs/components/dropdown.d.ts +78 -78
  102. package/types/src/ui/dialogs/components/fileDownload.d.ts +28 -28
  103. package/types/src/ui/dialogs/components/fontComponent.d.ts +32 -32
  104. package/types/src/ui/dialogs/components/noteText.d.ts +98 -98
  105. package/types/src/ui/dialogs/components/pitch.d.ts +95 -95
  106. package/types/src/ui/dialogs/components/rocker.d.ts +66 -66
  107. package/types/src/ui/dialogs/components/staffComponents.d.ts +77 -77
  108. package/types/src/ui/dialogs/components/textCheck.d.ts +38 -38
  109. package/types/src/ui/dialogs/components/textInPlace.d.ts +90 -90
  110. package/types/src/ui/dialogs/components/textInput.d.ts +58 -58
  111. package/types/src/ui/dialogs/components/tie.d.ts +41 -41
  112. package/types/src/ui/dialogs/components/toggle.d.ts +53 -53
  113. package/types/src/ui/dialogs/components/tree.d.ts +46 -46
  114. package/types/src/ui/dialogs/customTuplets.d.ts +25 -25
  115. package/types/src/ui/dialogs/dialog.d.ts +201 -201
  116. package/types/src/ui/dialogs/durations.d.ts +2 -2
  117. package/types/src/ui/dialogs/dynamics.d.ts +37 -37
  118. package/types/src/ui/dialogs/endings.d.ts +61 -61
  119. package/types/src/ui/dialogs/factory.d.ts +15 -15
  120. package/types/src/ui/dialogs/fileDialogs.d.ts +4 -4
  121. package/types/src/ui/dialogs/fonts.d.ts +2 -2
  122. package/types/src/ui/dialogs/globalLayout.d.ts +2 -2
  123. package/types/src/ui/dialogs/gracenote.d.ts +2 -2
  124. package/types/src/ui/dialogs/hairpin.d.ts +35 -35
  125. package/types/src/ui/dialogs/instrument.d.ts +3 -3
  126. package/types/src/ui/dialogs/keySignature.d.ts +33 -33
  127. package/types/src/ui/dialogs/library.d.ts +70 -70
  128. package/types/src/ui/dialogs/lyric.d.ts +39 -39
  129. package/types/src/ui/dialogs/measureFormat.d.ts +52 -52
  130. package/types/src/ui/dialogs/microtones.d.ts +2 -2
  131. package/types/src/ui/dialogs/noteHead.d.ts +2 -2
  132. package/types/src/ui/dialogs/ornament.d.ts +2 -2
  133. package/types/src/ui/dialogs/pageLayout.d.ts +2 -2
  134. package/types/src/ui/dialogs/partInfo.d.ts +2 -2
  135. package/types/src/ui/dialogs/pedalMarking.d.ts +35 -35
  136. package/types/src/ui/dialogs/pitch.d.ts +2 -2
  137. package/types/src/ui/dialogs/preferences.d.ts +2 -2
  138. package/types/src/ui/dialogs/scoreId.d.ts +2 -2
  139. package/types/src/ui/dialogs/scoreView.d.ts +2 -2
  140. package/types/src/ui/dialogs/slur.d.ts +57 -57
  141. package/types/src/ui/dialogs/staffGroup.d.ts +2 -2
  142. package/types/src/ui/dialogs/tabNote.d.ts +32 -32
  143. package/types/src/ui/dialogs/tabStave.d.ts +43 -43
  144. package/types/src/ui/dialogs/tempo.d.ts +50 -50
  145. package/types/src/ui/dialogs/textBlock.d.ts +61 -61
  146. package/types/src/ui/dialogs/textBracket.d.ts +35 -35
  147. package/types/src/ui/dialogs/tie.d.ts +41 -41
  148. package/types/src/ui/dialogs/timeSignature.d.ts +34 -34
  149. package/types/src/ui/dialogs/transposeScore.d.ts +2 -2
  150. package/types/src/ui/dialogs/volta.d.ts +40 -40
  151. package/types/src/ui/eventSource.d.ts +63 -63
  152. package/types/src/ui/exceptions.d.ts +12 -12
  153. package/types/src/ui/fileio/fileInput.d.ts +12 -12
  154. package/types/src/ui/fileio/library.d.ts +40 -40
  155. package/types/src/ui/fileio/xhrLoader.d.ts +18 -18
  156. package/types/src/ui/help.d.ts +22 -22
  157. package/types/src/ui/i18n/language.d.ts +37 -37
  158. package/types/src/ui/i18n/language_ar.d.ts +5 -5
  159. package/types/src/ui/i18n/language_de.d.ts +1 -1
  160. package/types/src/ui/i18n/language_en.d.ts +18 -18
  161. package/types/src/ui/i18n/translationEditor.d.ts +14 -14
  162. package/types/src/ui/keyBindings/default/editorKeys.d.ts +7 -7
  163. package/types/src/ui/keyBindings/default/trackerKeys.d.ts +7 -7
  164. package/types/src/ui/menus/beams.d.ts +13 -13
  165. package/types/src/ui/menus/edit.d.ts +8 -8
  166. package/types/src/ui/menus/file.d.ts +26 -26
  167. package/types/src/ui/menus/help.d.ts +8 -8
  168. package/types/src/ui/menus/keySignature.d.ts +13 -13
  169. package/types/src/ui/menus/language.d.ts +12 -12
  170. package/types/src/ui/menus/manager.d.ts +57 -57
  171. package/types/src/ui/menus/measure.d.ts +8 -8
  172. package/types/src/ui/menus/menu.d.ts +136 -136
  173. package/types/src/ui/menus/note.d.ts +8 -8
  174. package/types/src/ui/menus/partSelection.d.ts +19 -19
  175. package/types/src/ui/menus/parts.d.ts +50 -50
  176. package/types/src/ui/menus/score.d.ts +20 -20
  177. package/types/src/ui/menus/staffModifier.d.ts +21 -21
  178. package/types/src/ui/menus/text.d.ts +8 -8
  179. package/types/src/ui/menus/timeSignature.d.ts +12 -12
  180. package/types/src/ui/menus/tuplets.d.ts +13 -13
  181. package/types/src/ui/menus/voices.d.ts +8 -8
  182. package/types/src/ui/modalDialogs.d.ts +1 -1
  183. package/types/src/ui/navigation.d.ts +15 -15
  184. package/types/src/ui/qwerty.d.ts +41 -41
  185. package/types/src/ui/ribbonLayout/default/defaultRibbon.d.ts +15 -15
  186. package/types/src/ui/ribbonLayout/default/tabletRibbon.d.ts +22 -22
  187. 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
+ }