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,594 +1,594 @@
1
- import { SuiScoreView, updateStaffModifierFunc } from './scoreView';
2
- import { engravingFontType } from '../../smo/data/score';
3
- import { SmoSystemStaffParams } from '../../smo/data/systemStaff';
4
- import { SmoPartInfo } from '../../smo/data/partInfo';
5
- import { SmoMeasure } from '../../smo/data/measure';
6
- import { KeyEvent, SvgBox, Pitch, PitchLetter } from '../../smo/data/common';
7
- import { SmoSystemGroup, SmoPageLayout, SmoGlobalLayout, SmoAudioPlayerSettings, SmoScorePreferences, SmoScoreInfo } from '../../smo/data/scoreModifiers';
8
- import { SmoTextGroup } from '../../smo/data/scoreText';
9
- import { SmoDynamicText, SmoArticulation, SmoOrnament, SmoLyric, SmoArpeggioType, SmoClefChange, SmoTabNote } from '../../smo/data/noteModifiers';
10
- import { SmoTempoText, SmoVolta, SmoMeasureFormat, TimeSignature } from '../../smo/data/measureModifiers';
11
- import { createStaffModifierType, MakeTupletOperation } from '../../smo/xform/operations';
12
- import { BatchSelectionOperation } from '../../smo/xform/operations';
13
- import { FontInfo } from '../../common/vex';
14
- import { SmoSelection, SmoSelector } from '../../smo/xform/selections';
15
- import { StaffModifierBase, SmoInstrument, SmoInstrumentParams, SmoStaffTextBracket, SmoTabStave } from '../../smo/data/staffModifiers';
16
- /**
17
- * MVVM-like operations on the displayed score.
18
- *
19
- * All operations that can be performed on a 'live' score go through this
20
- * module. It maps the score view to the actual score and makes sure the
21
- * model and view stay in sync.
22
- *
23
- * Because this object operates on the current selections,
24
- * all operations return promise so applications can wait for the
25
- * operation to complete and update the selection list.
26
- * @category SuiRender
27
- */
28
- export declare class SuiScoreViewOperations extends SuiScoreView {
29
- /**
30
- * Add a new text group to the score
31
- * @param textGroup a new text group
32
- * @returns
33
- */
34
- addTextGroup(textGroup: SmoTextGroup): Promise<void>;
35
- /**
36
- * Remove the text group from the score
37
- * @param textGroup
38
- * @returns
39
- */
40
- removeTextGroup(textGroup: SmoTextGroup): Promise<void>;
41
- /**
42
- * UPdate an existing text group. The original is passed in, because since TG not tied to a musical
43
- * element, we need to find the one we're updating.
44
- * @param oldVersion
45
- * @param newVersion
46
- * @returns
47
- */
48
- updateTextGroup(newVersion: SmoTextGroup): Promise<void>;
49
- /**
50
- * load an mxml score remotely, return a promise that
51
- * completes when the file is loaded
52
- * @param url where to find the xml file
53
- * @returns
54
- */
55
- loadRemoteXml(url: string): Promise<any>;
56
- /**
57
- * load a remote score in SMO format
58
- * @param url url to find the score
59
- * @returns
60
- */
61
- loadRemoteJson(url: string): Promise<any>;
62
- /**
63
- * Load a remote score, return promise when it's been loaded
64
- * from afar.
65
- * @param pref
66
- * @returns
67
- */
68
- loadRemoteScore(url: string): Promise<any>;
69
- updateAudioSettings(pref: SmoAudioPlayerSettings): Promise<void>;
70
- /**
71
- * Global settings that control how the score editor behaves
72
- * @param pref
73
- * @returns
74
- */
75
- updateScorePreferences(pref: SmoScorePreferences): Promise<void>;
76
- /**
77
- * Update information about the score, composer etc.
78
- * @param scoreInfo
79
- * @returns
80
- */
81
- updateScoreInfo(scoreInfo: SmoScoreInfo): Promise<void>;
82
- addRemoveArpeggio(code: SmoArpeggioType): Promise<void>;
83
- /**
84
- * A clef change mid-measure (clefNote)
85
- * @param clef
86
- */
87
- addRemoveClefChange(clef: SmoClefChange): Promise<void>;
88
- /**
89
- * Modify the dynamics assoicated with the specific selection
90
- * @param selection
91
- * @param dynamic
92
- * @returns
93
- */
94
- addDynamic(selection: SmoSelection, dynamic: SmoDynamicText): Promise<void>;
95
- /**
96
- * Remove dynamics from the current selection
97
- * @param dynamic
98
- * @returns
99
- */
100
- removeDynamic(dynamic: SmoDynamicText): Promise<void>;
101
- /**
102
- * we never really delete a note, but we will convert it into a rest and if it's
103
- * already a rest we will try to hide it.
104
- * Operates on current selections
105
- * */
106
- deleteNote(): Promise<void>;
107
- /**
108
- * The lyric editor moves around, so we can't depend on the tracker for the
109
- * correct selection. We get it directly from the editor.
110
- *
111
- * @param selector - the selector of the note with the lyric to remove
112
- * @param lyric - a copy of the lyric to remove. We use the verse, parser to identify it
113
- * @returns render promise
114
- */
115
- removeLyric(selector: SmoSelector, lyric: SmoLyric): Promise<void>;
116
- /**
117
- * @param selector where to add or update the lyric
118
- * @param lyric a copy of the lyric to remove
119
- * @returns
120
- */
121
- addOrUpdateLyric(selector: SmoSelector, lyric: SmoLyric): Promise<void>;
122
- /**
123
- * Delete all the notes for the currently selected voice
124
- * @returns
125
- */
126
- depopulateVoice(): Promise<void>;
127
- /**
128
- * Change the active voice in a multi-voice measure.
129
- * @param index
130
- * @returns
131
- */
132
- _changeActiveVoice(index: number): SmoSelection[];
133
- /**
134
- * Populate a new voice with default notes
135
- * @param index the voice to populate
136
- * @returns
137
- */
138
- populateVoice(index: number): Promise<void>;
139
- swapVoices(voice1: number, voice2: number): Promise<void>;
140
- /**
141
- * Assign an instrument to a set of measures
142
- * @param instrument the instrument to assign to the selections
143
- * @param selections
144
- * @returns
145
- */
146
- changeInstrument(instrument: SmoInstrument, selections: SmoSelection[]): Promise<void>;
147
- /**
148
- * Set the time signature for a selection
149
- * @param timeSignature actual time signature
150
- */
151
- setTimeSignature(timeSignature: TimeSignature): Promise<void>;
152
- /**
153
- * Move selected staff up or down in the score.
154
- * @param index direction to move
155
- * @returns
156
- */
157
- moveStaffUpDown(index: number): Promise<void>;
158
- /**
159
- * Update the staff group for a score, which determines how the staves
160
- * are justified and bracketed
161
- * @param staffGroup
162
- */
163
- addOrUpdateStaffGroup(staffGroup: SmoSystemGroup): Promise<void>;
164
- removeStaffGroup(staffGroup: SmoSystemGroup): Promise<void>;
165
- clearSystemGroups(): Promise<void>;
166
- updateTabStave(tabStave: SmoTabStave): Promise<void>;
167
- removeTabStave(): Promise<void>;
168
- /**
169
- * Update tempo for all or part of the score
170
- * @param measure the measure with the tempo. Tempo is measure-wide parameter
171
- * @param scoreMode if true, update whole score. Else selections
172
- * @returns
173
- */
174
- updateTempoScore(measure: SmoMeasure, tempo: SmoTempoText, scoreMode: boolean, selectionMode: boolean): Promise<void>;
175
- updateTabNote(tabNote: SmoTabNote): Promise<void>;
176
- removeTabNote(): Promise<void>;
177
- /**
178
- * 'remove' tempo, which means either setting the bars to the
179
- * default tempo, or the previously-set tempo.
180
- * @param scoreMode whether to reset entire score
181
- */
182
- removeTempo(measure: SmoMeasure, tempo: SmoTempoText, scoreMode: boolean, selectionMode: boolean): Promise<void>;
183
- /**
184
- * Add a grace note to the selected real notes.
185
- */
186
- addGraceNote(): Promise<void>;
187
- /**
188
- * remove selected grace note
189
- * @returns
190
- */
191
- removeGraceNote(): Promise<void>;
192
- /**
193
- * Toggle slash in stem of grace note
194
- */
195
- slashGraceNotes(): Promise<void>;
196
- transposeScore(offset: number): Promise<void>;
197
- /**
198
- * transpose selected notes
199
- * @param offset 1/2 steps
200
- * @returns
201
- */
202
- transposeSelections(offset: number): Promise<void>;
203
- /**
204
- * toggle the accidental spelling of the selected notes
205
- * @returns
206
- */
207
- toggleEnharmonic(): Promise<void>;
208
- /**
209
- * Toggle cautionary/courtesy accidentals
210
- */
211
- toggleCourtesyAccidentals(): Promise<void>;
212
- /**
213
- * change the duration of notes for selected, creating more
214
- * or fewer notes.
215
- * After the change, reset the selection so it's as close as possible
216
- * to the original length
217
- * @param operation
218
- * @returns
219
- */
220
- batchDurationOperation(operation: BatchSelectionOperation): Promise<void>;
221
- /**
222
- * Toggle selected modifier on selected notes
223
- * @param modifier
224
- * @param ctor parent class constructor (e.g. SmoOrnament)
225
- * @returns
226
- */
227
- toggleArticulation(modifier: string, ctor: string): Promise<void>;
228
- setArticulation(modifier: SmoArticulation, set: boolean): Promise<void>;
229
- setOrnament(modifier: SmoOrnament, set: boolean): Promise<void>;
230
- /**
231
- * convert non-tuplet not to a tuplet
232
- * @param params
233
- */
234
- makeTuplet(params: MakeTupletOperation): Promise<void>;
235
- /**
236
- * Convert selected tuplet to a single (if possible) non-tuplet
237
- */
238
- unmakeTuplet(): Promise<void>;
239
- /**
240
- * Create a chord by adding an interval to selected note
241
- * @param interval 1/2 steps
242
- * @returns
243
- */
244
- setInterval(interval: number): Promise<void>;
245
- /**
246
- * change the selected chord into a single note
247
- * @returns
248
- */
249
- collapseChord(): Promise<void>;
250
- /**
251
- * Toggle chicken-scratches, for jazz improv, comping etc.
252
- */
253
- toggleSlash(): Promise<void>;
254
- /**
255
- * make selected notes into a rest, or visa-versa
256
- * @returns
257
- */
258
- makeRest(): Promise<void>;
259
- clearAllBeams(): Promise<void>;
260
- clearSelectedBeams(): Promise<void>;
261
- /**
262
- * toggle the 'end beam' flag for selected notes
263
- * @returns
264
- */
265
- unbeamSelections(): Promise<void>;
266
- toggleCue(): Promise<void>;
267
- /**
268
- * up or down
269
- * @returns
270
- */
271
- toggleBeamDirection(): Promise<void>;
272
- /**
273
- * Add the selected notes to a beam group
274
- */
275
- beamSelections(): Promise<void>;
276
- /**
277
- * change key signature for selected measures
278
- * @param keySignature vex key signature
279
- */
280
- addKeySignature(keySignature: string): Promise<void>;
281
- /**
282
- * Sets a pitch from the piano widget.
283
- * @param pitch {Pitch}
284
- * @param chordPedal {boolean} - indicates we are adding to a chord
285
- */
286
- setPitchPiano(pitch: Pitch, chordPedal: boolean): Promise<void>;
287
- /**
288
- * show or hide the piano widget
289
- * @param value to show it
290
- */
291
- showPiano(value: boolean): Promise<void>;
292
- /**
293
- * Render a pitch for each letter name-pitch in the string,
294
- * @param pitches letter names for pitches
295
- * @returns promise, resolved when all pitches rendered
296
- * @see setPitch
297
- */
298
- setPitchesPromise(pitches: PitchLetter[]): Promise<any>;
299
- /**
300
- * Add a pitch to the score at the cursor. This tries to find the best pitch
301
- * to match the letter key (F vs F# for instance) based on key and surrounding notes
302
- * @param letter string
303
- */
304
- setPitch(letter: PitchLetter): Promise<void>;
305
- /**
306
- * Generic clipboard copy action
307
- */
308
- copy(): Promise<void>;
309
- /**
310
- * clipboard paste action
311
- * @returns
312
- */
313
- paste(): Promise<void>;
314
- /**
315
- * Paste only the chords.
316
- */
317
- pasteChords(): Promise<void>;
318
- /**
319
- * specify a note head other than the default for the duration
320
- * @param head
321
- */
322
- setNoteHead(head: string): Promise<void>;
323
- /**
324
- * Add a volta for selected measures
325
- */
326
- addEnding(): Promise<void>;
327
- /**
328
- * @param ending volta settings
329
- * @returns
330
- */
331
- updateEnding(ending: SmoVolta): Promise<void>;
332
- /**
333
- *
334
- * @param ending volta to remove
335
- * @returns
336
- */
337
- removeEnding(ending: SmoVolta): Promise<void>;
338
- /**
339
- *
340
- * @param position begin or end
341
- * @param barline barline type
342
- * @returns
343
- */
344
- setBarline(position: number, barline: number): Promise<void>;
345
- /**
346
- *
347
- * @param position start or end
348
- * @param symbol coda, etc.
349
- */
350
- setRepeatSymbol(position: number, symbol: number): Promise<void>;
351
- /**
352
- * toggle rehearsal mark on first selected measure
353
- * @returns
354
- */
355
- toggleRehearsalMark(): Promise<void>;
356
- _removeStaffModifier(modifier: StaffModifierBase): void;
357
- /**
358
- * Remove selected modifier
359
- * @param modifier slur, hairpin, etc.
360
- * @returns
361
- */
362
- removeStaffModifier(modifier: StaffModifierBase): Promise<void>;
363
- /**
364
- * Change a staff modifier
365
- * @param original original version
366
- * @param modifier modified version
367
- * @returns
368
- */
369
- addOrUpdateStaffModifier(original: StaffModifierBase, modifier: StaffModifierBase): Promise<void>;
370
- lineOperation(op: createStaffModifierType<StaffModifierBase>): void;
371
- /**
372
- * Add crescendo to selection
373
- */
374
- crescendo(): Promise<void>;
375
- /**
376
- * Add crescendo to selection
377
- */
378
- crescendoBracket(): Promise<void>;
379
- /**
380
- * Add crescendo to selection
381
- */
382
- dimenuendo(): Promise<void>;
383
- /**
384
- * Add crescendo to selection
385
- */
386
- accelerando(): Promise<void>;
387
- /**
388
- * Add crescendo to selection
389
- */
390
- ritard(): Promise<void>;
391
- /**
392
- * diminuendo hairpin
393
- * @returns
394
- */
395
- decrescendo(): Promise<void>;
396
- removeTextBracket(bracket: SmoStaffTextBracket): Promise<void>;
397
- addOrReplaceStaffModifier(callback: updateStaffModifierFunc, modifier: StaffModifierBase): Promise<void>;
398
- addOrReplaceTextBracket(modifier: SmoStaffTextBracket): Promise<void>;
399
- /**
400
- * Slur selected notes
401
- * @returns
402
- */
403
- addSlur(): Promise<void>;
404
- /**
405
- * tie selected notes
406
- * @returns
407
- */
408
- tie(): Promise<void>;
409
- updateZoom(zoomFactor: number): Promise<void>;
410
- /**
411
- * set global page for score, zoom etc.
412
- * @param layout global SVG settings
413
- * @returns
414
- */
415
- setGlobalLayout(layout: SmoGlobalLayout): Promise<void>;
416
- /**
417
- * Set the layout of a single page
418
- * @param layout page layout
419
- * @param pageIndex which page to change
420
- * @returns
421
- */
422
- setPageLayout(layout: SmoPageLayout, pageIndex: number): Promise<void>;
423
- setPageLayouts(layout: SmoPageLayout, startIndex: number, endIndex: number): Promise<void>;
424
- /**
425
- * Update the music font
426
- * @param family
427
- * @returns
428
- */
429
- setEngravingFontFamily(family: engravingFontType): Promise<void>;
430
- /**
431
- * Upate global font used for chord changes
432
- * @param fontInfo
433
- * @returns
434
- */
435
- setChordFont(fontInfo: FontInfo): Promise<void>;
436
- /**
437
- * Update font used for lyrics
438
- * @param fontInfo
439
- * @returns
440
- */
441
- setLyricFont(fontInfo: FontInfo): Promise<void>;
442
- /**
443
- * @param value if false, lyric widths don't affect measure width
444
- * @returns
445
- */
446
- setLyricAdjustWidth(value: boolean): Promise<void>;
447
- /**
448
- * delete selected measures
449
- * @returns
450
- */
451
- deleteMeasure(): Promise<void>;
452
- /**
453
- * add number of measures, with default notes selections
454
- * @param append
455
- * @param numberToAdd
456
- * @returns
457
- */
458
- addMeasures(append: boolean, numberToAdd: number): Promise<void>;
459
- /**
460
- * add a single measure before or after selection
461
- * @param append
462
- * @returns
463
- */
464
- addMeasure(append: boolean): Promise<void>;
465
- /**
466
- * remove an entire line of music
467
- * @returns
468
- */
469
- removeStaff(): Promise<void>;
470
- addStaff(instrument: SmoSystemStaffParams): Promise<void>;
471
- /**
472
- * Update part info assumes that the part is currently exposed - that
473
- * staff 0 is the first staff in the part prior to editing.
474
- * @param info
475
- */
476
- updatePartInfo(info: SmoPartInfo): Promise<void>;
477
- /**
478
- * A simpler API for applications to add a new staff to the score.
479
- * @param params - the instrument, which determines clef, etc.
480
- * @returns
481
- */
482
- addStaffSimple(params: Partial<SmoInstrumentParams>): Promise<void>;
483
- /**
484
- * Save the score to local storage.
485
- */
486
- quickSave(): void;
487
- updateRepeatCount(count: number): Promise<any>;
488
- /**
489
- * Update the measure formatting parameters for the current selection
490
- * @param format generic measure formatting parameters
491
- * @returns
492
- */
493
- setMeasureFormat(format: SmoMeasureFormat): Promise<any>;
494
- /**
495
- * Remove system breaks from the measure formatting for selected measures
496
- * @returns
497
- */
498
- removeSystemBreaks(): Promise<any>;
499
- renumberMeasures(measureIndex: number, localIndex: number): Promise<void>;
500
- /**
501
- * Play the music from the starting selection
502
- * @returns
503
- */
504
- playFromSelection(): Promise<void>;
505
- stopPlayer(): void;
506
- pausePlayer(): void;
507
- /**
508
- * Proxy calls to move the tracker parameters according to the
509
- * rules of the 'Home' key (depending on shift/ctrl/alt)
510
- * @param ev
511
- * @returns
512
- */
513
- moveHome(ev: KeyEvent): Promise<any>;
514
- /**
515
- * Proxy calls to move the tracker parameters according to the
516
- * rules of the 'End' key (depending on shift/ctrl/alt)
517
- * @param ev
518
- * @returns
519
- */
520
- moveEnd(ev: KeyEvent): Promise<any>;
521
- /**
522
- * Grow the current selection by one to the left, if possible
523
- * @param ev
524
- * @returns
525
- */
526
- growSelectionLeft(): Promise<any>;
527
- /**
528
- * Grow the current selection by one to the right, if possible
529
- * @param ev
530
- * @returns
531
- */
532
- growSelectionRight(): Promise<any>;
533
- /**
534
- * Select the next tabbable modifier near one of the selected notes
535
- * @param keyEv
536
- * @returns
537
- */
538
- advanceModifierSelection(keyEv: KeyEvent): Promise<any>;
539
- /**
540
- * Select the next entire measure, if possible
541
- * @returns
542
- */
543
- growSelectionRightMeasure(): Promise<any>;
544
- /**
545
- * Advance cursor forwards, if possible
546
- * @param ev
547
- * @returns
548
- */
549
- moveSelectionRight(): Promise<any>;
550
- /**
551
- * Advance cursor backwards, if possible
552
- * @param ev
553
- * @returns
554
- */
555
- moveSelectionLeft(): Promise<any>;
556
- /**
557
- * Advance cursor back entire measure, if possible
558
- * @returns
559
- */
560
- moveSelectionLeftMeasure(): Promise<any>;
561
- /**
562
- * Advance cursor forward one measure, if possible
563
- * @returns
564
- */
565
- moveSelectionRightMeasure(): Promise<any>;
566
- /**
567
- * Move cursor to a higher pitch in the current chord, with wrap
568
- * @returns
569
- */
570
- moveSelectionPitchUp(): Promise<any>;
571
- /**
572
- * Move cursor to a lower pitch in the current chord, with wrap
573
- */
574
- moveSelectionPitchDown(): Promise<any>;
575
- /**
576
- * Move cursor up a staff in the system, if possible
577
- * @returns
578
- */
579
- moveSelectionUp(): Promise<any>;
580
- /**
581
- * Move cursor down a staff in the system, if possible
582
- * @returns
583
- */
584
- moveSelectionDown(): Promise<any>;
585
- /**
586
- * Set the current suggestions (hover element) as the selection
587
- * @returns
588
- */
589
- selectSuggestion(evData: KeyEvent): Promise<any>;
590
- /**
591
- * Find an element at the given box, and make it the current selection
592
- * */
593
- intersectingArtifact(evData: SvgBox): Promise<any>;
594
- }
1
+ import { SuiScoreView, updateStaffModifierFunc } from './scoreView';
2
+ import { engravingFontType } from '../../smo/data/score';
3
+ import { SmoSystemStaffParams } from '../../smo/data/systemStaff';
4
+ import { SmoPartInfo } from '../../smo/data/partInfo';
5
+ import { SmoMeasure } from '../../smo/data/measure';
6
+ import { KeyEvent, SvgBox, Pitch, PitchLetter } from '../../smo/data/common';
7
+ import { SmoSystemGroup, SmoPageLayout, SmoGlobalLayout, SmoAudioPlayerSettings, SmoScorePreferences, SmoScoreInfo } from '../../smo/data/scoreModifiers';
8
+ import { SmoTextGroup } from '../../smo/data/scoreText';
9
+ import { SmoDynamicText, SmoArticulation, SmoOrnament, SmoLyric, SmoArpeggioType, SmoClefChange, SmoTabNote } from '../../smo/data/noteModifiers';
10
+ import { SmoTempoText, SmoVolta, SmoMeasureFormat, TimeSignature } from '../../smo/data/measureModifiers';
11
+ import { createStaffModifierType, MakeTupletOperation } from '../../smo/xform/operations';
12
+ import { BatchSelectionOperation } from '../../smo/xform/operations';
13
+ import { FontInfo } from '../../common/vex';
14
+ import { SmoSelection, SmoSelector } from '../../smo/xform/selections';
15
+ import { StaffModifierBase, SmoInstrument, SmoInstrumentParams, SmoStaffTextBracket, SmoTabStave } from '../../smo/data/staffModifiers';
16
+ /**
17
+ * MVVM-like operations on the displayed score.
18
+ *
19
+ * All operations that can be performed on a 'live' score go through this
20
+ * module. It maps the score view to the actual score and makes sure the
21
+ * model and view stay in sync.
22
+ *
23
+ * Because this object operates on the current selections,
24
+ * all operations return promise so applications can wait for the
25
+ * operation to complete and update the selection list.
26
+ * @category SuiRender
27
+ */
28
+ export declare class SuiScoreViewOperations extends SuiScoreView {
29
+ /**
30
+ * Add a new text group to the score
31
+ * @param textGroup a new text group
32
+ * @returns
33
+ */
34
+ addTextGroup(textGroup: SmoTextGroup): Promise<void>;
35
+ /**
36
+ * Remove the text group from the score
37
+ * @param textGroup
38
+ * @returns
39
+ */
40
+ removeTextGroup(textGroup: SmoTextGroup): Promise<void>;
41
+ /**
42
+ * UPdate an existing text group. The original is passed in, because since TG not tied to a musical
43
+ * element, we need to find the one we're updating.
44
+ * @param oldVersion
45
+ * @param newVersion
46
+ * @returns
47
+ */
48
+ updateTextGroup(newVersion: SmoTextGroup): Promise<void>;
49
+ /**
50
+ * load an mxml score remotely, return a promise that
51
+ * completes when the file is loaded
52
+ * @param url where to find the xml file
53
+ * @returns
54
+ */
55
+ loadRemoteXml(url: string): Promise<any>;
56
+ /**
57
+ * load a remote score in SMO format
58
+ * @param url url to find the score
59
+ * @returns
60
+ */
61
+ loadRemoteJson(url: string): Promise<any>;
62
+ /**
63
+ * Load a remote score, return promise when it's been loaded
64
+ * from afar.
65
+ * @param pref
66
+ * @returns
67
+ */
68
+ loadRemoteScore(url: string): Promise<any>;
69
+ updateAudioSettings(pref: SmoAudioPlayerSettings): Promise<void>;
70
+ /**
71
+ * Global settings that control how the score editor behaves
72
+ * @param pref
73
+ * @returns
74
+ */
75
+ updateScorePreferences(pref: SmoScorePreferences): Promise<void>;
76
+ /**
77
+ * Update information about the score, composer etc.
78
+ * @param scoreInfo
79
+ * @returns
80
+ */
81
+ updateScoreInfo(scoreInfo: SmoScoreInfo): Promise<void>;
82
+ addRemoveArpeggio(code: SmoArpeggioType): Promise<void>;
83
+ /**
84
+ * A clef change mid-measure (clefNote)
85
+ * @param clef
86
+ */
87
+ addRemoveClefChange(clef: SmoClefChange): Promise<void>;
88
+ /**
89
+ * Modify the dynamics assoicated with the specific selection
90
+ * @param selection
91
+ * @param dynamic
92
+ * @returns
93
+ */
94
+ addDynamic(selection: SmoSelection, dynamic: SmoDynamicText): Promise<void>;
95
+ /**
96
+ * Remove dynamics from the current selection
97
+ * @param dynamic
98
+ * @returns
99
+ */
100
+ removeDynamic(dynamic: SmoDynamicText): Promise<void>;
101
+ /**
102
+ * we never really delete a note, but we will convert it into a rest and if it's
103
+ * already a rest we will try to hide it.
104
+ * Operates on current selections
105
+ * */
106
+ deleteNote(): Promise<void>;
107
+ /**
108
+ * The lyric editor moves around, so we can't depend on the tracker for the
109
+ * correct selection. We get it directly from the editor.
110
+ *
111
+ * @param selector - the selector of the note with the lyric to remove
112
+ * @param lyric - a copy of the lyric to remove. We use the verse, parser to identify it
113
+ * @returns render promise
114
+ */
115
+ removeLyric(selector: SmoSelector, lyric: SmoLyric): Promise<void>;
116
+ /**
117
+ * @param selector where to add or update the lyric
118
+ * @param lyric a copy of the lyric to remove
119
+ * @returns
120
+ */
121
+ addOrUpdateLyric(selector: SmoSelector, lyric: SmoLyric): Promise<void>;
122
+ /**
123
+ * Delete all the notes for the currently selected voice
124
+ * @returns
125
+ */
126
+ depopulateVoice(): Promise<void>;
127
+ /**
128
+ * Change the active voice in a multi-voice measure.
129
+ * @param index
130
+ * @returns
131
+ */
132
+ _changeActiveVoice(index: number): SmoSelection[];
133
+ /**
134
+ * Populate a new voice with default notes
135
+ * @param index the voice to populate
136
+ * @returns
137
+ */
138
+ populateVoice(index: number): Promise<void>;
139
+ swapVoices(voice1: number, voice2: number): Promise<void>;
140
+ /**
141
+ * Assign an instrument to a set of measures
142
+ * @param instrument the instrument to assign to the selections
143
+ * @param selections
144
+ * @returns
145
+ */
146
+ changeInstrument(instrument: SmoInstrument, selections: SmoSelection[]): Promise<void>;
147
+ /**
148
+ * Set the time signature for a selection
149
+ * @param timeSignature actual time signature
150
+ */
151
+ setTimeSignature(timeSignature: TimeSignature): Promise<void>;
152
+ /**
153
+ * Move selected staff up or down in the score.
154
+ * @param index direction to move
155
+ * @returns
156
+ */
157
+ moveStaffUpDown(index: number): Promise<void>;
158
+ /**
159
+ * Update the staff group for a score, which determines how the staves
160
+ * are justified and bracketed
161
+ * @param staffGroup
162
+ */
163
+ addOrUpdateStaffGroup(staffGroup: SmoSystemGroup): Promise<void>;
164
+ removeStaffGroup(staffGroup: SmoSystemGroup): Promise<void>;
165
+ clearSystemGroups(): Promise<void>;
166
+ updateTabStave(tabStave: SmoTabStave): Promise<void>;
167
+ removeTabStave(): Promise<void>;
168
+ /**
169
+ * Update tempo for all or part of the score
170
+ * @param measure the measure with the tempo. Tempo is measure-wide parameter
171
+ * @param scoreMode if true, update whole score. Else selections
172
+ * @returns
173
+ */
174
+ updateTempoScore(measure: SmoMeasure, tempo: SmoTempoText, scoreMode: boolean, selectionMode: boolean): Promise<void>;
175
+ updateTabNote(tabNote: SmoTabNote): Promise<void>;
176
+ removeTabNote(): Promise<void>;
177
+ /**
178
+ * 'remove' tempo, which means either setting the bars to the
179
+ * default tempo, or the previously-set tempo.
180
+ * @param scoreMode whether to reset entire score
181
+ */
182
+ removeTempo(measure: SmoMeasure, tempo: SmoTempoText, scoreMode: boolean, selectionMode: boolean): Promise<void>;
183
+ /**
184
+ * Add a grace note to the selected real notes.
185
+ */
186
+ addGraceNote(): Promise<void>;
187
+ /**
188
+ * remove selected grace note
189
+ * @returns
190
+ */
191
+ removeGraceNote(): Promise<void>;
192
+ /**
193
+ * Toggle slash in stem of grace note
194
+ */
195
+ slashGraceNotes(): Promise<void>;
196
+ transposeScore(offset: number): Promise<void>;
197
+ /**
198
+ * transpose selected notes
199
+ * @param offset 1/2 steps
200
+ * @returns
201
+ */
202
+ transposeSelections(offset: number): Promise<void>;
203
+ /**
204
+ * toggle the accidental spelling of the selected notes
205
+ * @returns
206
+ */
207
+ toggleEnharmonic(): Promise<void>;
208
+ /**
209
+ * Toggle cautionary/courtesy accidentals
210
+ */
211
+ toggleCourtesyAccidentals(): Promise<void>;
212
+ /**
213
+ * change the duration of notes for selected, creating more
214
+ * or fewer notes.
215
+ * After the change, reset the selection so it's as close as possible
216
+ * to the original length
217
+ * @param operation
218
+ * @returns
219
+ */
220
+ batchDurationOperation(operation: BatchSelectionOperation): Promise<void>;
221
+ /**
222
+ * Toggle selected modifier on selected notes
223
+ * @param modifier
224
+ * @param ctor parent class constructor (e.g. SmoOrnament)
225
+ * @returns
226
+ */
227
+ toggleArticulation(modifier: string, ctor: string): Promise<void>;
228
+ setArticulation(modifier: SmoArticulation, set: boolean): Promise<void>;
229
+ setOrnament(modifier: SmoOrnament, set: boolean): Promise<void>;
230
+ /**
231
+ * convert non-tuplet not to a tuplet
232
+ * @param params
233
+ */
234
+ makeTuplet(params: MakeTupletOperation): Promise<void>;
235
+ /**
236
+ * Convert selected tuplet to a single (if possible) non-tuplet
237
+ */
238
+ unmakeTuplet(): Promise<void>;
239
+ /**
240
+ * Create a chord by adding an interval to selected note
241
+ * @param interval 1/2 steps
242
+ * @returns
243
+ */
244
+ setInterval(interval: number): Promise<void>;
245
+ /**
246
+ * change the selected chord into a single note
247
+ * @returns
248
+ */
249
+ collapseChord(): Promise<void>;
250
+ /**
251
+ * Toggle chicken-scratches, for jazz improv, comping etc.
252
+ */
253
+ toggleSlash(): Promise<void>;
254
+ /**
255
+ * make selected notes into a rest, or visa-versa
256
+ * @returns
257
+ */
258
+ makeRest(): Promise<void>;
259
+ clearAllBeams(): Promise<void>;
260
+ clearSelectedBeams(): Promise<void>;
261
+ /**
262
+ * toggle the 'end beam' flag for selected notes
263
+ * @returns
264
+ */
265
+ unbeamSelections(): Promise<void>;
266
+ toggleCue(): Promise<void>;
267
+ /**
268
+ * up or down
269
+ * @returns
270
+ */
271
+ toggleBeamDirection(): Promise<void>;
272
+ /**
273
+ * Add the selected notes to a beam group
274
+ */
275
+ beamSelections(): Promise<void>;
276
+ /**
277
+ * change key signature for selected measures
278
+ * @param keySignature vex key signature
279
+ */
280
+ addKeySignature(keySignature: string): Promise<void>;
281
+ /**
282
+ * Sets a pitch from the piano widget.
283
+ * @param pitch {Pitch}
284
+ * @param chordPedal {boolean} - indicates we are adding to a chord
285
+ */
286
+ setPitchPiano(pitch: Pitch, chordPedal: boolean): Promise<void>;
287
+ /**
288
+ * show or hide the piano widget
289
+ * @param value to show it
290
+ */
291
+ showPiano(value: boolean): Promise<void>;
292
+ /**
293
+ * Render a pitch for each letter name-pitch in the string,
294
+ * @param pitches letter names for pitches
295
+ * @returns promise, resolved when all pitches rendered
296
+ * @see setPitch
297
+ */
298
+ setPitchesPromise(pitches: PitchLetter[]): Promise<any>;
299
+ /**
300
+ * Add a pitch to the score at the cursor. This tries to find the best pitch
301
+ * to match the letter key (F vs F# for instance) based on key and surrounding notes
302
+ * @param letter string
303
+ */
304
+ setPitch(letter: PitchLetter): Promise<void>;
305
+ /**
306
+ * Generic clipboard copy action
307
+ */
308
+ copy(): Promise<void>;
309
+ /**
310
+ * clipboard paste action
311
+ * @returns
312
+ */
313
+ paste(): Promise<void>;
314
+ /**
315
+ * Paste only the chords.
316
+ */
317
+ pasteChords(): Promise<void>;
318
+ /**
319
+ * specify a note head other than the default for the duration
320
+ * @param head
321
+ */
322
+ setNoteHead(head: string): Promise<void>;
323
+ /**
324
+ * Add a volta for selected measures
325
+ */
326
+ addEnding(): Promise<void>;
327
+ /**
328
+ * @param ending volta settings
329
+ * @returns
330
+ */
331
+ updateEnding(ending: SmoVolta): Promise<void>;
332
+ /**
333
+ *
334
+ * @param ending volta to remove
335
+ * @returns
336
+ */
337
+ removeEnding(ending: SmoVolta): Promise<void>;
338
+ /**
339
+ *
340
+ * @param position begin or end
341
+ * @param barline barline type
342
+ * @returns
343
+ */
344
+ setBarline(position: number, barline: number): Promise<void>;
345
+ /**
346
+ *
347
+ * @param position start or end
348
+ * @param symbol coda, etc.
349
+ */
350
+ setRepeatSymbol(position: number, symbol: number): Promise<void>;
351
+ /**
352
+ * toggle rehearsal mark on first selected measure
353
+ * @returns
354
+ */
355
+ toggleRehearsalMark(): Promise<void>;
356
+ _removeStaffModifier(modifier: StaffModifierBase): void;
357
+ /**
358
+ * Remove selected modifier
359
+ * @param modifier slur, hairpin, etc.
360
+ * @returns
361
+ */
362
+ removeStaffModifier(modifier: StaffModifierBase): Promise<void>;
363
+ /**
364
+ * Change a staff modifier
365
+ * @param original original version
366
+ * @param modifier modified version
367
+ * @returns
368
+ */
369
+ addOrUpdateStaffModifier(original: StaffModifierBase, modifier: StaffModifierBase): Promise<void>;
370
+ lineOperation(op: createStaffModifierType<StaffModifierBase>): void;
371
+ /**
372
+ * Add crescendo to selection
373
+ */
374
+ crescendo(): Promise<void>;
375
+ /**
376
+ * Add crescendo to selection
377
+ */
378
+ crescendoBracket(): Promise<void>;
379
+ /**
380
+ * Add crescendo to selection
381
+ */
382
+ dimenuendo(): Promise<void>;
383
+ /**
384
+ * Add crescendo to selection
385
+ */
386
+ accelerando(): Promise<void>;
387
+ /**
388
+ * Add crescendo to selection
389
+ */
390
+ ritard(): Promise<void>;
391
+ /**
392
+ * diminuendo hairpin
393
+ * @returns
394
+ */
395
+ decrescendo(): Promise<void>;
396
+ removeTextBracket(bracket: SmoStaffTextBracket): Promise<void>;
397
+ addOrReplaceStaffModifier(callback: updateStaffModifierFunc, modifier: StaffModifierBase): Promise<void>;
398
+ addOrReplaceTextBracket(modifier: SmoStaffTextBracket): Promise<void>;
399
+ /**
400
+ * Slur selected notes
401
+ * @returns
402
+ */
403
+ addSlur(): Promise<void>;
404
+ /**
405
+ * tie selected notes
406
+ * @returns
407
+ */
408
+ tie(): Promise<void>;
409
+ updateZoom(zoomFactor: number): Promise<void>;
410
+ /**
411
+ * set global page for score, zoom etc.
412
+ * @param layout global SVG settings
413
+ * @returns
414
+ */
415
+ setGlobalLayout(layout: SmoGlobalLayout): Promise<void>;
416
+ /**
417
+ * Set the layout of a single page
418
+ * @param layout page layout
419
+ * @param pageIndex which page to change
420
+ * @returns
421
+ */
422
+ setPageLayout(layout: SmoPageLayout, pageIndex: number): Promise<void>;
423
+ setPageLayouts(layout: SmoPageLayout, startIndex: number, endIndex: number): Promise<void>;
424
+ /**
425
+ * Update the music font
426
+ * @param family
427
+ * @returns
428
+ */
429
+ setEngravingFontFamily(family: engravingFontType): Promise<void>;
430
+ /**
431
+ * Upate global font used for chord changes
432
+ * @param fontInfo
433
+ * @returns
434
+ */
435
+ setChordFont(fontInfo: FontInfo): Promise<void>;
436
+ /**
437
+ * Update font used for lyrics
438
+ * @param fontInfo
439
+ * @returns
440
+ */
441
+ setLyricFont(fontInfo: FontInfo): Promise<void>;
442
+ /**
443
+ * @param value if false, lyric widths don't affect measure width
444
+ * @returns
445
+ */
446
+ setLyricAdjustWidth(value: boolean): Promise<void>;
447
+ /**
448
+ * delete selected measures
449
+ * @returns
450
+ */
451
+ deleteMeasure(): Promise<void>;
452
+ /**
453
+ * add number of measures, with default notes selections
454
+ * @param append
455
+ * @param numberToAdd
456
+ * @returns
457
+ */
458
+ addMeasures(append: boolean, numberToAdd: number): Promise<void>;
459
+ /**
460
+ * add a single measure before or after selection
461
+ * @param append
462
+ * @returns
463
+ */
464
+ addMeasure(append: boolean): Promise<void>;
465
+ /**
466
+ * remove an entire line of music
467
+ * @returns
468
+ */
469
+ removeStaff(): Promise<void>;
470
+ addStaff(instrument: SmoSystemStaffParams): Promise<void>;
471
+ /**
472
+ * Update part info assumes that the part is currently exposed - that
473
+ * staff 0 is the first staff in the part prior to editing.
474
+ * @param info
475
+ */
476
+ updatePartInfo(info: SmoPartInfo): Promise<void>;
477
+ /**
478
+ * A simpler API for applications to add a new staff to the score.
479
+ * @param params - the instrument, which determines clef, etc.
480
+ * @returns
481
+ */
482
+ addStaffSimple(params: Partial<SmoInstrumentParams>): Promise<void>;
483
+ /**
484
+ * Save the score to local storage.
485
+ */
486
+ quickSave(): void;
487
+ updateRepeatCount(count: number): Promise<any>;
488
+ /**
489
+ * Update the measure formatting parameters for the current selection
490
+ * @param format generic measure formatting parameters
491
+ * @returns
492
+ */
493
+ setMeasureFormat(format: SmoMeasureFormat): Promise<any>;
494
+ /**
495
+ * Remove system breaks from the measure formatting for selected measures
496
+ * @returns
497
+ */
498
+ removeSystemBreaks(): Promise<any>;
499
+ renumberMeasures(measureIndex: number, localIndex: number): Promise<void>;
500
+ /**
501
+ * Play the music from the starting selection
502
+ * @returns
503
+ */
504
+ playFromSelection(): Promise<void>;
505
+ stopPlayer(): void;
506
+ pausePlayer(): void;
507
+ /**
508
+ * Proxy calls to move the tracker parameters according to the
509
+ * rules of the 'Home' key (depending on shift/ctrl/alt)
510
+ * @param ev
511
+ * @returns
512
+ */
513
+ moveHome(ev: KeyEvent): Promise<any>;
514
+ /**
515
+ * Proxy calls to move the tracker parameters according to the
516
+ * rules of the 'End' key (depending on shift/ctrl/alt)
517
+ * @param ev
518
+ * @returns
519
+ */
520
+ moveEnd(ev: KeyEvent): Promise<any>;
521
+ /**
522
+ * Grow the current selection by one to the left, if possible
523
+ * @param ev
524
+ * @returns
525
+ */
526
+ growSelectionLeft(): Promise<any>;
527
+ /**
528
+ * Grow the current selection by one to the right, if possible
529
+ * @param ev
530
+ * @returns
531
+ */
532
+ growSelectionRight(): Promise<any>;
533
+ /**
534
+ * Select the next tabbable modifier near one of the selected notes
535
+ * @param keyEv
536
+ * @returns
537
+ */
538
+ advanceModifierSelection(keyEv: KeyEvent): Promise<any>;
539
+ /**
540
+ * Select the next entire measure, if possible
541
+ * @returns
542
+ */
543
+ growSelectionRightMeasure(): Promise<any>;
544
+ /**
545
+ * Advance cursor forwards, if possible
546
+ * @param ev
547
+ * @returns
548
+ */
549
+ moveSelectionRight(): Promise<any>;
550
+ /**
551
+ * Advance cursor backwards, if possible
552
+ * @param ev
553
+ * @returns
554
+ */
555
+ moveSelectionLeft(): Promise<any>;
556
+ /**
557
+ * Advance cursor back entire measure, if possible
558
+ * @returns
559
+ */
560
+ moveSelectionLeftMeasure(): Promise<any>;
561
+ /**
562
+ * Advance cursor forward one measure, if possible
563
+ * @returns
564
+ */
565
+ moveSelectionRightMeasure(): Promise<any>;
566
+ /**
567
+ * Move cursor to a higher pitch in the current chord, with wrap
568
+ * @returns
569
+ */
570
+ moveSelectionPitchUp(): Promise<any>;
571
+ /**
572
+ * Move cursor to a lower pitch in the current chord, with wrap
573
+ */
574
+ moveSelectionPitchDown(): Promise<any>;
575
+ /**
576
+ * Move cursor up a staff in the system, if possible
577
+ * @returns
578
+ */
579
+ moveSelectionUp(): Promise<any>;
580
+ /**
581
+ * Move cursor down a staff in the system, if possible
582
+ * @returns
583
+ */
584
+ moveSelectionDown(): Promise<any>;
585
+ /**
586
+ * Set the current suggestions (hover element) as the selection
587
+ * @returns
588
+ */
589
+ selectSuggestion(evData: KeyEvent): Promise<any>;
590
+ /**
591
+ * Find an element at the given box, and make it the current selection
592
+ * */
593
+ intersectingArtifact(evData: SvgBox): Promise<any>;
594
+ }