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,92 +1,92 @@
1
- import { XmlState } from './xmlState';
2
- import { SmoLayoutManager } from '../data/scoreModifiers';
3
- import { SmoTempoText } from '../data/measureModifiers';
4
- import { SmoScore } from '../data/score';
5
- /**
6
- * A class that takes a music XML file and outputs a {@link SmoScore}
7
- * @category serialization
8
- */
9
- export declare class XmlToSmo {
10
- static get mmPerPixel(): number;
11
- /**
12
- * Vex renders everything as if the font size were 39
13
- */
14
- static get vexFontSize(): number;
15
- static get customProportionDefault(): number;
16
- static get pageLayoutMap(): {
17
- xml: string;
18
- smo: string;
19
- }[];
20
- static get pageMarginMap(): {
21
- xml: string;
22
- smo: string;
23
- }[];
24
- static get scoreInfoFields(): string[];
25
- /**
26
- * Convert music XML file from parsed xml to a {@link SmoScore}
27
- * @param xmlDoc
28
- * @returns
29
- */
30
- static convert(xmlDoc: Document): SmoScore;
31
- /**
32
- * when building the slurs, we don't always know which direction the beams will go or what other
33
- * voices there will be.
34
- * @param score
35
- */
36
- static setSlurDefaults(score: SmoScore): void;
37
- /**
38
- * After parsing the XML, resolve the voltas we've saved
39
- * @param score
40
- * @param state
41
- */
42
- static setVoltas(score: SmoScore, state: XmlState): void;
43
- static partList(partList: Element, score: SmoScore, state: XmlState): void;
44
- /**
45
- * page-layout element occurs in a couple of places
46
- * @param defaultsElement
47
- * @param layoutDefaults
48
- * @param xmlState
49
- */
50
- static pageSizeFromLayout(defaultsElement: Element, layoutDefaults: SmoLayoutManager, xmlState: XmlState): void;
51
- /**
52
- * /score-partwise/defaults
53
- * @param defaultsElement
54
- * @param score
55
- * @param layoutDefaults
56
- */
57
- static defaults(defaultsElement: Element, score: SmoScore, layoutDefaults: SmoLayoutManager, xmlState: XmlState): void;
58
- /**
59
- * /score-partwise/part
60
- * @param partElement
61
- * @param xmlState
62
- */
63
- static part(partElement: Element, xmlState: XmlState): void;
64
- /**
65
- * /score-partwise/measure/direction/sound:tempo
66
- * @param element
67
- * @returns
68
- */
69
- static tempo(element: Element): {
70
- staffId: number;
71
- tempo: SmoTempoText;
72
- }[];
73
- /**
74
- * /score-partwise/measure/direction/dynamics
75
- * @param element
76
- * @returns
77
- */
78
- static dynamics(directionElement: Element, xmlState: XmlState): void;
79
- static attributes(measureElement: Element, xmlState: XmlState): void;
80
- static wedge(directionElement: Element, xmlState: XmlState): void;
81
- static direction(directionElement: Element, xmlState: XmlState): void;
82
- static note(noteElement: Element, xmlState: XmlState): void;
83
- static print(printElement: Element, xmlState: XmlState): void;
84
- /**
85
- * /score-partwise/part/measure
86
- * A measure in music xml might represent several measures in SMO at the same
87
- * column in the score
88
- * @param measureElement
89
- * @param xmlState
90
- */
91
- static measure(measureElement: Element, xmlState: XmlState): void;
92
- }
1
+ import { XmlState } from './xmlState';
2
+ import { SmoLayoutManager } from '../data/scoreModifiers';
3
+ import { SmoTempoText } from '../data/measureModifiers';
4
+ import { SmoScore } from '../data/score';
5
+ /**
6
+ * A class that takes a music XML file and outputs a {@link SmoScore}
7
+ * @category serialization
8
+ */
9
+ export declare class XmlToSmo {
10
+ static get mmPerPixel(): number;
11
+ /**
12
+ * Vex renders everything as if the font size were 39
13
+ */
14
+ static get vexFontSize(): number;
15
+ static get customProportionDefault(): number;
16
+ static get pageLayoutMap(): {
17
+ xml: string;
18
+ smo: string;
19
+ }[];
20
+ static get pageMarginMap(): {
21
+ xml: string;
22
+ smo: string;
23
+ }[];
24
+ static get scoreInfoFields(): string[];
25
+ /**
26
+ * Convert music XML file from parsed xml to a {@link SmoScore}
27
+ * @param xmlDoc
28
+ * @returns
29
+ */
30
+ static convert(xmlDoc: Document): SmoScore;
31
+ /**
32
+ * when building the slurs, we don't always know which direction the beams will go or what other
33
+ * voices there will be.
34
+ * @param score
35
+ */
36
+ static setSlurDefaults(score: SmoScore): void;
37
+ /**
38
+ * After parsing the XML, resolve the voltas we've saved
39
+ * @param score
40
+ * @param state
41
+ */
42
+ static setVoltas(score: SmoScore, state: XmlState): void;
43
+ static partList(partList: Element, score: SmoScore, state: XmlState): void;
44
+ /**
45
+ * page-layout element occurs in a couple of places
46
+ * @param defaultsElement
47
+ * @param layoutDefaults
48
+ * @param xmlState
49
+ */
50
+ static pageSizeFromLayout(defaultsElement: Element, layoutDefaults: SmoLayoutManager, xmlState: XmlState): void;
51
+ /**
52
+ * /score-partwise/defaults
53
+ * @param defaultsElement
54
+ * @param score
55
+ * @param layoutDefaults
56
+ */
57
+ static defaults(defaultsElement: Element, score: SmoScore, layoutDefaults: SmoLayoutManager, xmlState: XmlState): void;
58
+ /**
59
+ * /score-partwise/part
60
+ * @param partElement
61
+ * @param xmlState
62
+ */
63
+ static part(partElement: Element, xmlState: XmlState): void;
64
+ /**
65
+ * /score-partwise/measure/direction/sound:tempo
66
+ * @param element
67
+ * @returns
68
+ */
69
+ static tempo(element: Element): {
70
+ staffId: number;
71
+ tempo: SmoTempoText;
72
+ }[];
73
+ /**
74
+ * /score-partwise/measure/direction/dynamics
75
+ * @param element
76
+ * @returns
77
+ */
78
+ static dynamics(directionElement: Element, xmlState: XmlState): void;
79
+ static attributes(measureElement: Element, xmlState: XmlState): void;
80
+ static wedge(directionElement: Element, xmlState: XmlState): void;
81
+ static direction(directionElement: Element, xmlState: XmlState): void;
82
+ static note(noteElement: Element, xmlState: XmlState): void;
83
+ static print(printElement: Element, xmlState: XmlState): void;
84
+ /**
85
+ * /score-partwise/part/measure
86
+ * A measure in music xml might represent several measures in SMO at the same
87
+ * column in the score
88
+ * @param measureElement
89
+ * @param xmlState
90
+ */
91
+ static measure(measureElement: Element, xmlState: XmlState): void;
92
+ }
@@ -1,46 +1,46 @@
1
- import { SmoNote } from '../data/note';
2
- import { SmoAttrs } from '../data/common';
3
- import { SmoMeasure, ISmoBeamGroup } from '../data/measure';
4
- import { TickMap } from './tickMap';
5
- /**
6
- * @category SmoTransform
7
- */
8
- export interface SmoBeamGroupParams {
9
- notes: SmoNote[];
10
- secondaryBeamBreaks: number[];
11
- voice: number;
12
- }
13
- /**
14
- * Contain a group of {@link SmoNote} used for beaming.
15
- * @category SmoTransform
16
- */
17
- export declare class SmoBeamGroup implements ISmoBeamGroup {
18
- notes: SmoNote[];
19
- secondaryBeamBreaks: number[];
20
- attrs: SmoAttrs;
21
- voice: number;
22
- constructor(params: SmoBeamGroupParams);
23
- }
24
- /**
25
- * Apply the beam policy set up in node and measure to group the notes into beam groups
26
- * @category SmoTransform
27
- */
28
- export declare class SmoBeamer {
29
- static applyBeams(measure: SmoMeasure): void;
30
- measure: SmoMeasure;
31
- duration: number;
32
- measureDuration: number;
33
- meterNumbers: number[];
34
- beamBeats: number;
35
- skipNext: number;
36
- currentGroup: SmoNote[];
37
- secondaryBeamBreaks: number[];
38
- constructor(measure: SmoMeasure, voice: number);
39
- get beamGroups(): ISmoBeamGroup[];
40
- _removeVoiceBeam(measure: SmoMeasure, voice: number): void;
41
- _completeGroup(voice: number): void;
42
- _advanceGroup(): void;
43
- _isRemainingTicksBeamable(tickmap: TickMap, index: number): boolean;
44
- allEighth(): boolean;
45
- beamNote(tickmap: TickMap, index: number, note: SmoNote): void;
46
- }
1
+ import { SmoNote } from '../data/note';
2
+ import { SmoAttrs } from '../data/common';
3
+ import { SmoMeasure, ISmoBeamGroup } from '../data/measure';
4
+ import { TickMap } from './tickMap';
5
+ /**
6
+ * @category SmoTransform
7
+ */
8
+ export interface SmoBeamGroupParams {
9
+ notes: SmoNote[];
10
+ secondaryBeamBreaks: number[];
11
+ voice: number;
12
+ }
13
+ /**
14
+ * Contain a group of {@link SmoNote} used for beaming.
15
+ * @category SmoTransform
16
+ */
17
+ export declare class SmoBeamGroup implements ISmoBeamGroup {
18
+ notes: SmoNote[];
19
+ secondaryBeamBreaks: number[];
20
+ attrs: SmoAttrs;
21
+ voice: number;
22
+ constructor(params: SmoBeamGroupParams);
23
+ }
24
+ /**
25
+ * Apply the beam policy set up in node and measure to group the notes into beam groups
26
+ * @category SmoTransform
27
+ */
28
+ export declare class SmoBeamer {
29
+ static applyBeams(measure: SmoMeasure): void;
30
+ measure: SmoMeasure;
31
+ duration: number;
32
+ measureDuration: number;
33
+ meterNumbers: number[];
34
+ beamBeats: number;
35
+ skipNext: number;
36
+ currentGroup: SmoNote[];
37
+ secondaryBeamBreaks: number[];
38
+ constructor(measure: SmoMeasure, voice: number);
39
+ get beamGroups(): ISmoBeamGroup[];
40
+ _removeVoiceBeam(measure: SmoMeasure, voice: number): void;
41
+ _completeGroup(voice: number): void;
42
+ _advanceGroup(): void;
43
+ _isRemainingTicksBeamable(tickmap: TickMap, index: number): boolean;
44
+ allEighth(): boolean;
45
+ beamNote(tickmap: TickMap, index: number, note: SmoNote): void;
46
+ }
@@ -1,99 +1,99 @@
1
- import { SmoSelection, SmoSelector } from './selections';
2
- import { SmoNote } from '../data/note';
3
- import { SmoMeasure, SmoVoice } from '../data/measure';
4
- import { StaffModifierBase } from '../data/staffModifiers';
5
- import { SmoTupletTree } from '../data/tuplet';
6
- import { SmoScore } from '../data/score';
7
- import { TickMap } from './tickMap';
8
- import { SmoSystemStaff } from '../data/systemStaff';
9
- /**
10
- * Used to calculate the offset and transposition of a note to be pasted
11
- * @category SmoTransform
12
- */
13
- export interface PasteNote {
14
- note: SmoNote;
15
- selector: SmoSelector;
16
- originalKey: string;
17
- tupletStart: SmoTupletTree | null;
18
- }
19
- /**
20
- * Used when pasting staff modifiers like slurs to calculate the
21
- * offset
22
- * @category SmoTransform
23
- */
24
- export interface ModifierPlacement {
25
- modifier: StaffModifierBase;
26
- ticksToStart: number;
27
- }
28
- /**
29
- * PasteBuffer holds copied music, and handles the action of pasting the music to
30
- * a different point in the score. It does this by serializing the measure(s) from the source
31
- * and then creating handling the overlap with existing music when deserializaing it.
32
- * @category SmoTransform
33
- */
34
- export declare class PasteBuffer {
35
- notes: Record<number, PasteNote[]>;
36
- staffIndex: number;
37
- noteIndex: number;
38
- measures: SmoMeasure[];
39
- measureIndex: number;
40
- remainder: number;
41
- replacementMeasures: SmoSelection[];
42
- score: SmoScore | null;
43
- modifiers: StaffModifierBase[];
44
- modifiersToPlace: ModifierPlacement[];
45
- destination: SmoSelector;
46
- staffSelectors: SmoSelector[];
47
- constructor();
48
- setScore(score: SmoScore): void;
49
- getCopyBufferTickCount(): number;
50
- setSelections(score: SmoScore, selections: SmoSelection[]): void;
51
- _populateSelectArray(selections: SmoSelection[]): void;
52
- clearSelections(): void;
53
- _findModifier(selector: SmoSelector): StaffModifierBase | null;
54
- _findPlacedModifier(selector: SmoSelector): StaffModifierBase | null;
55
- _alignVoices(measure: SmoMeasure, voiceIndex: number): void;
56
- _populateMeasureArray(selector: SmoSelector, notes: PasteNote[]): void;
57
- _populatePre(voiceIndex: number, measure: SmoMeasure, startTick: number, tickmap: TickMap): SmoVoice;
58
- /**
59
- *
60
- * @param voiceIndex
61
- */
62
- _populateVoice(notes: PasteNote[]): SmoVoice[];
63
- static _countTicks(voice: SmoVoice): number;
64
- /**
65
- * If the source contains a staff modifier that ends on the source selection, copy the modifier
66
- * @param srcSelector
67
- * @param destSelector
68
- * @param staff
69
- * @returns
70
- */
71
- _populateModifier(srcSelector: SmoSelector, destSelector: SmoSelector, staff: SmoSystemStaff): void;
72
- /**
73
- *
74
- * @param measure
75
- * @param startIndex
76
- * @param endIndex
77
- * @param voiceIndex
78
- * @private
79
- */
80
- private _removeOverlappingTuplets;
81
- /**
82
- * Start copying the paste buffer into the destination by copying the notes and working out
83
- * the measure overlap
84
- *
85
- * @param voice
86
- * @param measure
87
- * @param tickmap
88
- * @param startSelector
89
- * @returns
90
- */
91
- _populateNew(voice: SmoVoice, measure: SmoMeasure, tickmap: TickMap, startSelector: SmoSelector, notes: PasteNote[]): void;
92
- _populatePost(voice: SmoVoice, voiceIndex: number, measure: SmoMeasure, tickmap: TickMap): void;
93
- _pasteVoiceSer(serializedMeasure: any, vobj: any, voiceIx: number): void;
94
- pasteChordNotes(selector: SmoSelector, notes: PasteNote[]): PasteNote[];
95
- pasteIntoScore(score: SmoScore, selector: SmoSelector, func: (selector: SmoSelector, notes: PasteNote[]) => PasteNote[]): void;
96
- pasteChords(selector: SmoSelector): void;
97
- pasteSelections(selector: SmoSelector): void;
98
- pasteNoteSelections(selector: SmoSelector, notes: PasteNote[]): PasteNote[];
99
- }
1
+ import { SmoSelection, SmoSelector } from './selections';
2
+ import { SmoNote } from '../data/note';
3
+ import { SmoMeasure, SmoVoice } from '../data/measure';
4
+ import { StaffModifierBase } from '../data/staffModifiers';
5
+ import { SmoTupletTree } from '../data/tuplet';
6
+ import { SmoScore } from '../data/score';
7
+ import { TickMap } from './tickMap';
8
+ import { SmoSystemStaff } from '../data/systemStaff';
9
+ /**
10
+ * Used to calculate the offset and transposition of a note to be pasted
11
+ * @category SmoTransform
12
+ */
13
+ export interface PasteNote {
14
+ note: SmoNote;
15
+ selector: SmoSelector;
16
+ originalKey: string;
17
+ tupletStart: SmoTupletTree | null;
18
+ }
19
+ /**
20
+ * Used when pasting staff modifiers like slurs to calculate the
21
+ * offset
22
+ * @category SmoTransform
23
+ */
24
+ export interface ModifierPlacement {
25
+ modifier: StaffModifierBase;
26
+ ticksToStart: number;
27
+ }
28
+ /**
29
+ * PasteBuffer holds copied music, and handles the action of pasting the music to
30
+ * a different point in the score. It does this by serializing the measure(s) from the source
31
+ * and then creating handling the overlap with existing music when deserializaing it.
32
+ * @category SmoTransform
33
+ */
34
+ export declare class PasteBuffer {
35
+ notes: Record<number, PasteNote[]>;
36
+ staffIndex: number;
37
+ noteIndex: number;
38
+ measures: SmoMeasure[];
39
+ measureIndex: number;
40
+ remainder: number;
41
+ replacementMeasures: SmoSelection[];
42
+ score: SmoScore | null;
43
+ modifiers: StaffModifierBase[];
44
+ modifiersToPlace: ModifierPlacement[];
45
+ destination: SmoSelector;
46
+ staffSelectors: SmoSelector[];
47
+ constructor();
48
+ setScore(score: SmoScore): void;
49
+ getCopyBufferTickCount(): number;
50
+ setSelections(score: SmoScore, selections: SmoSelection[]): void;
51
+ _populateSelectArray(selections: SmoSelection[]): void;
52
+ clearSelections(): void;
53
+ _findModifier(selector: SmoSelector): StaffModifierBase | null;
54
+ _findPlacedModifier(selector: SmoSelector): StaffModifierBase | null;
55
+ _alignVoices(measure: SmoMeasure, voiceIndex: number): void;
56
+ _populateMeasureArray(selector: SmoSelector, notes: PasteNote[]): void;
57
+ _populatePre(voiceIndex: number, measure: SmoMeasure, startTick: number, tickmap: TickMap): SmoVoice;
58
+ /**
59
+ *
60
+ * @param voiceIndex
61
+ */
62
+ _populateVoice(notes: PasteNote[]): SmoVoice[];
63
+ static _countTicks(voice: SmoVoice): number;
64
+ /**
65
+ * If the source contains a staff modifier that ends on the source selection, copy the modifier
66
+ * @param srcSelector
67
+ * @param destSelector
68
+ * @param staff
69
+ * @returns
70
+ */
71
+ _populateModifier(srcSelector: SmoSelector, destSelector: SmoSelector, staff: SmoSystemStaff): void;
72
+ /**
73
+ *
74
+ * @param measure
75
+ * @param startIndex
76
+ * @param endIndex
77
+ * @param voiceIndex
78
+ * @private
79
+ */
80
+ private _removeOverlappingTuplets;
81
+ /**
82
+ * Start copying the paste buffer into the destination by copying the notes and working out
83
+ * the measure overlap
84
+ *
85
+ * @param voice
86
+ * @param measure
87
+ * @param tickmap
88
+ * @param startSelector
89
+ * @returns
90
+ */
91
+ _populateNew(voice: SmoVoice, measure: SmoMeasure, tickmap: TickMap, startSelector: SmoSelector, notes: PasteNote[]): void;
92
+ _populatePost(voice: SmoVoice, voiceIndex: number, measure: SmoMeasure, tickmap: TickMap): void;
93
+ _pasteVoiceSer(serializedMeasure: any, vobj: any, voiceIx: number): void;
94
+ pasteChordNotes(selector: SmoSelector, notes: PasteNote[]): PasteNote[];
95
+ pasteIntoScore(score: SmoScore, selector: SmoSelector, func: (selector: SmoSelector, notes: PasteNote[]) => PasteNote[]): void;
96
+ pasteChords(selector: SmoSelector): void;
97
+ pasteSelections(selector: SmoSelector): void;
98
+ pasteNoteSelections(selector: SmoSelector, notes: PasteNote[]): PasteNote[];
99
+ }