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,46 +1,46 @@
1
- import { SmoSystemGroup } from '../../smo/data/scoreModifiers';
2
- import { SmoBarline, SmoMeasureText, SmoRepeatSymbol, SmoVolta } from '../../smo/data/measureModifiers';
3
- import { SmoTabStave, SmoTie } from '../../smo/data/staffModifiers';
4
- import { SmoLyric, VexAnnotationParams, SmoTabNote } from '../../smo/data/noteModifiers';
5
- import { SmoNote } from '../../smo/data/note';
6
- import { TabNotePosition } from '../../common/vex';
7
- /**
8
- * convert from Smo library values to Vex values
9
- * @module
10
- *
11
- **/
12
- export declare function VexTabNotePositions(stave: SmoTabStave, tabNote: SmoTabNote, smoNote: SmoNote): TabNotePosition[];
13
- /**
14
- *
15
- *
16
- * @export
17
- * @param {SmoSystemGroup} athis
18
- * @return {*}
19
- */
20
- export declare function leftConnectorVx(athis: SmoSystemGroup): 0 | 1 | 4 | 2 | 3 | 5 | 8 | 6 | 7;
21
- /**
22
- * convert from a SmoSystemGroup connector to Vex enumeration
23
- * @param athis
24
- * @returns
25
- */
26
- export declare function rightConnectorVx(athis: SmoSystemGroup): 0 | 1 | 4 | 2 | 3 | 5 | 8 | 6 | 7;
27
- export declare const vexBarlineType: import("vexflow_smoosic").BarlineType[];
28
- export declare const vexBarlinePosition: import("vexflow_smoosic").StaveModifierPosition[];
29
- export declare function toVexBarlineType(athis: SmoBarline): number;
30
- export declare function toVexBarlinePosition(athis: SmoBarline): number;
31
- export declare const vexSymbol: number[];
32
- export declare function toVexSymbol(athis: SmoRepeatSymbol): number;
33
- export declare function toVexVolta(volta: SmoVolta, measureNumber: number): import("vexflow_smoosic").VoltaType;
34
- export declare const vexTextPosition: import("vexflow_smoosic").ModifierPosition[];
35
- export declare const vexTextJustification: import("vexflow_smoosic").TextJustification[];
36
- export declare function toVexTextJustification(athis: SmoMeasureText): import("vexflow_smoosic").TextJustification;
37
- export declare function toVexTextPosition(athis: SmoMeasureText): import("vexflow_smoosic").ModifierPosition;
38
- export declare function vexOptions(athis: SmoTie): any;
39
- export declare function vexAnnotationPosition(chordPos: number): import("vexflow_smoosic").SymbolModifiers;
40
- /**
41
- * Parse the SmoLyric text and convert it to a VEX chord symbol
42
- * @param athis
43
- * @returns
44
- */
45
- export declare function getVexChordBlocks(athis: SmoLyric): VexAnnotationParams[];
46
- export declare function toVexStemDirection(note: SmoNote): number;
1
+ import { SmoSystemGroup } from '../../smo/data/scoreModifiers';
2
+ import { SmoBarline, SmoMeasureText, SmoRepeatSymbol, SmoVolta } from '../../smo/data/measureModifiers';
3
+ import { SmoTabStave, SmoTie } from '../../smo/data/staffModifiers';
4
+ import { SmoLyric, VexAnnotationParams, SmoTabNote } from '../../smo/data/noteModifiers';
5
+ import { SmoNote } from '../../smo/data/note';
6
+ import { TabNotePosition } from '../../common/vex';
7
+ /**
8
+ * convert from Smo library values to Vex values
9
+ * @module
10
+ *
11
+ **/
12
+ export declare function VexTabNotePositions(stave: SmoTabStave, tabNote: SmoTabNote, smoNote: SmoNote): TabNotePosition[];
13
+ /**
14
+ *
15
+ *
16
+ * @export
17
+ * @param {SmoSystemGroup} athis
18
+ * @return {*}
19
+ */
20
+ export declare function leftConnectorVx(athis: SmoSystemGroup): 0 | 1 | 4 | 2 | 3 | 5 | 8 | 6 | 7;
21
+ /**
22
+ * convert from a SmoSystemGroup connector to Vex enumeration
23
+ * @param athis
24
+ * @returns
25
+ */
26
+ export declare function rightConnectorVx(athis: SmoSystemGroup): 0 | 1 | 4 | 2 | 3 | 5 | 8 | 6 | 7;
27
+ export declare const vexBarlineType: import("vexflow_smoosic").BarlineType[];
28
+ export declare const vexBarlinePosition: import("vexflow_smoosic").StaveModifierPosition[];
29
+ export declare function toVexBarlineType(athis: SmoBarline): number;
30
+ export declare function toVexBarlinePosition(athis: SmoBarline): number;
31
+ export declare const vexSymbol: number[];
32
+ export declare function toVexSymbol(athis: SmoRepeatSymbol): number;
33
+ export declare function toVexVolta(volta: SmoVolta, measureNumber: number): import("vexflow_smoosic").VoltaType;
34
+ export declare const vexTextPosition: import("vexflow_smoosic").ModifierPosition[];
35
+ export declare const vexTextJustification: import("vexflow_smoosic").TextJustification[];
36
+ export declare function toVexTextJustification(athis: SmoMeasureText): import("vexflow_smoosic").TextJustification;
37
+ export declare function toVexTextPosition(athis: SmoMeasureText): import("vexflow_smoosic").ModifierPosition;
38
+ export declare function vexOptions(athis: SmoTie): any;
39
+ export declare function vexAnnotationPosition(chordPos: number): import("vexflow_smoosic").SymbolModifiers;
40
+ /**
41
+ * Parse the SmoLyric text and convert it to a VEX chord symbol
42
+ * @param athis
43
+ * @returns
44
+ */
45
+ export declare function getVexChordBlocks(athis: SmoLyric): VexAnnotationParams[];
46
+ export declare function toVexStemDirection(note: SmoNote): number;
@@ -1,13 +1,13 @@
1
- import { SmoMeasure } from '../../smo/data/measure';
2
- import { SmoScore } from '../../smo/data/score';
3
- export declare const fontStacks: Record<string, string[]>;
4
- export declare const getVoiceId: (smoMeasure: SmoMeasure, voiceIx: number) => string;
5
- export declare function renderVoltas(smoScore: SmoScore, startMeasure: number, endMeasure: number, strs: string[]): void;
6
- /**
7
- * Simple serialize class that produced VEX note and voice objects
8
- * for vex EasyScore (for easier bug reports and test cases)
9
- * @category SuiRender
10
- */
11
- export declare class SmoToVex {
12
- static convert(smoScore: SmoScore, options: any): string;
13
- }
1
+ import { SmoMeasure } from '../../smo/data/measure';
2
+ import { SmoScore } from '../../smo/data/score';
3
+ export declare const fontStacks: Record<string, string[]>;
4
+ export declare const getVoiceId: (smoMeasure: SmoMeasure, voiceIx: number) => string;
5
+ export declare function renderVoltas(smoScore: SmoScore, startMeasure: number, endMeasure: number, strs: string[]): void;
6
+ /**
7
+ * Simple serialize class that produced VEX note and voice objects
8
+ * for vex EasyScore (for easier bug reports and test cases)
9
+ * @category SuiRender
10
+ */
11
+ export declare class SmoToVex {
12
+ static convert(smoScore: SmoScore, options: any): string;
13
+ }
@@ -1,95 +1,95 @@
1
- import { SmoNote } from '../../smo/data/note';
2
- import { SmoDynamicText, SmoNoteModifierBase } from '../../smo/data/noteModifiers';
3
- import { SmoSelection } from '../../smo/xform/selections';
4
- import { SmoMeasure, MeasureTickmaps } from '../../smo/data/measure';
5
- import { Pitch } from '../../smo/data/common';
6
- import { SvgPage } from '../sui/svgPageMap';
7
- import { SmoTabStave } from '../../smo/data/staffModifiers';
8
- import { Stave, Note, Beam, Tuplet, Voice, Formatter, TabStave } from '../../common/vex';
9
- import { VxMeasureIf, VxNote } from './vxNote';
10
- /**
11
- * This is the interface for VexFlow library that actually does the engraving.
12
- * @category SuiRender
13
- */
14
- export declare class VxMeasure implements VxMeasureIf {
15
- context: SvgPage;
16
- printing: boolean;
17
- selection: SmoSelection;
18
- softmax: number;
19
- smoMeasure: SmoMeasure;
20
- smoTabStave?: SmoTabStave;
21
- tabStave?: TabStave;
22
- rendered: boolean;
23
- firstInColumn: boolean;
24
- noteToVexMap: Record<string, Note>;
25
- beamToVexMap: Record<string, Beam>;
26
- tupletToVexMap: Record<string, Tuplet>;
27
- multimeasureRest: any | null;
28
- vexNotes: Note[];
29
- vexBeamGroups: Beam[];
30
- vexTuplets: Tuplet[];
31
- tickmapObject: MeasureTickmaps | null;
32
- stave: Stave | null;
33
- voiceNotes: Note[];
34
- tabNotes: Note[];
35
- voiceAr: Voice[];
36
- tabVoice: Voice | null;
37
- formatter: Formatter | null;
38
- allCues: boolean;
39
- modifiersToBox: SmoNoteModifierBase[];
40
- collisionMap: Record<number, SmoNote[]>;
41
- dbgLeftX: number;
42
- dbgWidth: number;
43
- hideAccidentals: boolean;
44
- tiedOverPitches: Pitch[];
45
- constructor(context: SvgPage, selection: SmoSelection, printing: boolean, softmax: number, tiedOverPitches: Pitch[]);
46
- static get fillStyle(): string;
47
- setFirstInColumn(val: boolean): void;
48
- isWholeRest(): boolean;
49
- createCollisionTickmap(): void;
50
- isCollision(voiceIx: number, tickIx: number): boolean;
51
- /**
52
- * convert a smoNote into a vxNote so it can be rasterized
53
- * @param smoNote
54
- * @param tickIndex - used to calculate accidental
55
- * @param voiceIx
56
- * @returns
57
- */
58
- createVexNote(smoNote: SmoNote, tickIndex: number, voiceIx: number): VxNote;
59
- renderNoteGlyph(smoNote: SmoNote, textObj: SmoDynamicText): void;
60
- renderDynamics(): void;
61
- createRepeatSymbol(): void;
62
- /**
63
- * create an a array of VF.StaveNote objects to render the active voice.
64
- * @param voiceIx
65
- */
66
- createVexNotes(voiceIx: number): void;
67
- /**
68
- * Group the notes for beaming and create Vex beam objects
69
- * @param vix - voice index
70
- * @returns
71
- */
72
- createVexBeamGroups(vix: number): void;
73
- createVexTuplets(vix: number): void;
74
- /**
75
- * create the modifiers for the stave itself, bar lines etc.
76
- */
77
- createMeasureModifiers(): void;
78
- /**
79
- * Create all Vex notes and modifiers. We defer the format and rendering so
80
- * we can align across multiple staves
81
- */
82
- preFormat(): void;
83
- /**
84
- * Create the Vex formatter that calculates the X and Y positions of the notes. A formatter
85
- * may actually span multiple staves for justified staves. The notes are drawn in their
86
- * individual vxMeasure objects but formatting is done once for all justified staves
87
- * @param voices Voice objects from VexFlow
88
- * @returns
89
- */
90
- format(voices: Voice[]): void;
91
- /**
92
- * render is called after format. Actually draw the things.
93
- */
94
- render(): void;
95
- }
1
+ import { SmoNote } from '../../smo/data/note';
2
+ import { SmoDynamicText, SmoNoteModifierBase } from '../../smo/data/noteModifiers';
3
+ import { SmoSelection } from '../../smo/xform/selections';
4
+ import { SmoMeasure, MeasureTickmaps } from '../../smo/data/measure';
5
+ import { Pitch } from '../../smo/data/common';
6
+ import { SvgPage } from '../sui/svgPageMap';
7
+ import { SmoTabStave } from '../../smo/data/staffModifiers';
8
+ import { Stave, Note, Beam, Tuplet, Voice, Formatter, TabStave } from '../../common/vex';
9
+ import { VxMeasureIf, VxNote } from './vxNote';
10
+ /**
11
+ * This is the interface for VexFlow library that actually does the engraving.
12
+ * @category SuiRender
13
+ */
14
+ export declare class VxMeasure implements VxMeasureIf {
15
+ context: SvgPage;
16
+ printing: boolean;
17
+ selection: SmoSelection;
18
+ softmax: number;
19
+ smoMeasure: SmoMeasure;
20
+ smoTabStave?: SmoTabStave;
21
+ tabStave?: TabStave;
22
+ rendered: boolean;
23
+ firstInColumn: boolean;
24
+ noteToVexMap: Record<string, Note>;
25
+ beamToVexMap: Record<string, Beam>;
26
+ tupletToVexMap: Record<string, Tuplet>;
27
+ multimeasureRest: any | null;
28
+ vexNotes: Note[];
29
+ vexBeamGroups: Beam[];
30
+ vexTuplets: Tuplet[];
31
+ tickmapObject: MeasureTickmaps | null;
32
+ stave: Stave | null;
33
+ voiceNotes: Note[];
34
+ tabNotes: Note[];
35
+ voiceAr: Voice[];
36
+ tabVoice: Voice | null;
37
+ formatter: Formatter | null;
38
+ allCues: boolean;
39
+ modifiersToBox: SmoNoteModifierBase[];
40
+ collisionMap: Record<number, SmoNote[]>;
41
+ dbgLeftX: number;
42
+ dbgWidth: number;
43
+ hideAccidentals: boolean;
44
+ tiedOverPitches: Pitch[];
45
+ constructor(context: SvgPage, selection: SmoSelection, printing: boolean, softmax: number, tiedOverPitches: Pitch[]);
46
+ static get fillStyle(): string;
47
+ setFirstInColumn(val: boolean): void;
48
+ isWholeRest(): boolean;
49
+ createCollisionTickmap(): void;
50
+ isCollision(voiceIx: number, tickIx: number): boolean;
51
+ /**
52
+ * convert a smoNote into a vxNote so it can be rasterized
53
+ * @param smoNote
54
+ * @param tickIndex - used to calculate accidental
55
+ * @param voiceIx
56
+ * @returns
57
+ */
58
+ createVexNote(smoNote: SmoNote, tickIndex: number, voiceIx: number): VxNote;
59
+ renderNoteGlyph(smoNote: SmoNote, textObj: SmoDynamicText): void;
60
+ renderDynamics(): void;
61
+ createRepeatSymbol(): void;
62
+ /**
63
+ * create an a array of VF.StaveNote objects to render the active voice.
64
+ * @param voiceIx
65
+ */
66
+ createVexNotes(voiceIx: number): void;
67
+ /**
68
+ * Group the notes for beaming and create Vex beam objects
69
+ * @param vix - voice index
70
+ * @returns
71
+ */
72
+ createVexBeamGroups(vix: number): void;
73
+ createVexTuplets(vix: number): void;
74
+ /**
75
+ * create the modifiers for the stave itself, bar lines etc.
76
+ */
77
+ createMeasureModifiers(): void;
78
+ /**
79
+ * Create all Vex notes and modifiers. We defer the format and rendering so
80
+ * we can align across multiple staves
81
+ */
82
+ preFormat(): void;
83
+ /**
84
+ * Create the Vex formatter that calculates the X and Y positions of the notes. A formatter
85
+ * may actually span multiple staves for justified staves. The notes are drawn in their
86
+ * individual vxMeasure objects but formatting is done once for all justified staves
87
+ * @param voices Voice objects from VexFlow
88
+ * @returns
89
+ */
90
+ format(voices: Voice[]): void;
91
+ /**
92
+ * render is called after format. Actually draw the things.
93
+ */
94
+ render(): void;
95
+ }
@@ -1,55 +1,55 @@
1
- import { SmoNote } from '../../smo/data/note';
2
- import { SmoLyric } from '../../smo/data/noteModifiers';
3
- import { SmoMeasure, MeasureTickmaps } from '../../smo/data/measure';
4
- import { Pitch } from '../../smo/data/common';
5
- import { StemmableNote, Note, TabNote } from '../../common/vex';
6
- /**
7
- * @category SuiRender
8
- */
9
- export interface VxMeasureIf {
10
- isWholeRest(): boolean;
11
- noteToVexMap: Record<string, Note>;
12
- smoMeasure: SmoMeasure;
13
- tickmapObject: MeasureTickmaps | null;
14
- }
15
- /**
16
- * @category SuiRender
17
- */
18
- export interface VexNoteModifierIf {
19
- smoMeasure: SmoMeasure;
20
- vxMeasure: VxMeasureIf;
21
- smoNote: SmoNote;
22
- staveNote: Note;
23
- voiceIndex: number;
24
- tickIndex: number;
25
- tiedOverPitches: Pitch[];
26
- tabNote?: StemmableNote | TabNote;
27
- hideAccidentals: boolean;
28
- }
29
- /**
30
- * Interpret parameters for StaveNote and other StemmableNotes
31
- * @category SuiRender
32
- */
33
- export declare class VxNote {
34
- noteData: VexNoteModifierIf;
35
- constructor(noteData: VexNoteModifierIf);
36
- createMicrotones(smoNote: SmoNote, vexNote: Note): void;
37
- createDots(): void;
38
- /**
39
- * Create accidentals based on the active key and previous accidentals in this voice
40
- * @param smoNote
41
- * @param vexNote
42
- * @param tickIndex
43
- * @param voiceIx
44
- * @returns
45
- */
46
- createAccidentals(): void;
47
- createJazzOrnaments(): void;
48
- createOrnaments(): void;
49
- addLyricAnnotationToNote(vexNote: Note, lyric: SmoLyric): void;
50
- addChordChangeToNote(vexNote: Note, lyric: SmoLyric): void;
51
- createLyric(): void;
52
- createGraceNotes(): void;
53
- addArticulations(): void;
54
- addModifiers(): void;
55
- }
1
+ import { SmoNote } from '../../smo/data/note';
2
+ import { SmoLyric } from '../../smo/data/noteModifiers';
3
+ import { SmoMeasure, MeasureTickmaps } from '../../smo/data/measure';
4
+ import { Pitch } from '../../smo/data/common';
5
+ import { StemmableNote, Note, TabNote } from '../../common/vex';
6
+ /**
7
+ * @category SuiRender
8
+ */
9
+ export interface VxMeasureIf {
10
+ isWholeRest(): boolean;
11
+ noteToVexMap: Record<string, Note>;
12
+ smoMeasure: SmoMeasure;
13
+ tickmapObject: MeasureTickmaps | null;
14
+ }
15
+ /**
16
+ * @category SuiRender
17
+ */
18
+ export interface VexNoteModifierIf {
19
+ smoMeasure: SmoMeasure;
20
+ vxMeasure: VxMeasureIf;
21
+ smoNote: SmoNote;
22
+ staveNote: Note;
23
+ voiceIndex: number;
24
+ tickIndex: number;
25
+ tiedOverPitches: Pitch[];
26
+ tabNote?: StemmableNote | TabNote;
27
+ hideAccidentals: boolean;
28
+ }
29
+ /**
30
+ * Interpret parameters for StaveNote and other StemmableNotes
31
+ * @category SuiRender
32
+ */
33
+ export declare class VxNote {
34
+ noteData: VexNoteModifierIf;
35
+ constructor(noteData: VexNoteModifierIf);
36
+ createMicrotones(smoNote: SmoNote, vexNote: Note): void;
37
+ createDots(): void;
38
+ /**
39
+ * Create accidentals based on the active key and previous accidentals in this voice
40
+ * @param smoNote
41
+ * @param vexNote
42
+ * @param tickIndex
43
+ * @param voiceIx
44
+ * @returns
45
+ */
46
+ createAccidentals(): void;
47
+ createJazzOrnaments(): void;
48
+ createOrnaments(): void;
49
+ addLyricAnnotationToNote(vexNote: Note, lyric: SmoLyric): void;
50
+ addChordChangeToNote(vexNote: Note, lyric: SmoLyric): void;
51
+ createLyric(): void;
52
+ createGraceNotes(): void;
53
+ addArticulations(): void;
54
+ addModifiers(): void;
55
+ }
@@ -1,64 +1,64 @@
1
- import { VxMeasure } from './vxMeasure';
2
- import { SmoSelection } from '../../smo/xform/selections';
3
- import { SmoLyric } from '../../smo/data/noteModifiers';
4
- import { StaffModifierBase } from '../../smo/data/staffModifiers';
5
- import { SmoScore } from '../../smo/data/score';
6
- import { SmoMeasure } from '../../smo/data/measure';
7
- import { SvgBox } from '../../smo/data/common';
8
- import { SmoNote } from '../../smo/data/note';
9
- import { SmoSystemStaff } from '../../smo/data/systemStaff';
10
- import { SmoVolta } from '../../smo/data/measureModifiers';
11
- import { SvgPage } from '../sui/svgPageMap';
12
- import { SuiScroller } from '../sui/scroller';
13
- import { Voice, Note } from '../../common/vex';
14
- /**
15
- * @category SuiRender
16
- */
17
- export interface VoltaInfo {
18
- smoMeasure: SmoMeasure;
19
- ending: SmoVolta;
20
- }
21
- /**
22
- * @category SuiRender
23
- */
24
- export interface SuiSystemGroup {
25
- firstMeasure: VxMeasure;
26
- voices: Voice[];
27
- }
28
- /**
29
- * Create a system of staves and draw music on it. This calls the Vex measure
30
- * rendering methods, and also draws all the score and system level stuff like slurs,
31
- * text, aligns the lyrics.
32
- * @category SuiRender
33
- * */
34
- export declare class VxSystem {
35
- context: SvgPage;
36
- leftConnector: any[];
37
- score: SmoScore;
38
- vxMeasures: VxMeasure[];
39
- smoMeasures: SmoMeasure[];
40
- lineIndex: number;
41
- maxStaffIndex: number;
42
- maxSystemIndex: number;
43
- minMeasureIndex: number;
44
- maxMeasureIndex: number;
45
- width: number;
46
- staves: SmoSystemStaff[];
47
- box: SvgBox;
48
- currentY: number;
49
- topY: number;
50
- clefWidth: number;
51
- ys: number[];
52
- measures: VxMeasure[];
53
- modifiers: any[];
54
- constructor(context: SvgPage, topY: number, lineIndex: number, score: SmoScore);
55
- getVxMeasure(smoMeasure: SmoMeasure): VxMeasure | null;
56
- getVxNote(smoNote: SmoNote): Note | null;
57
- _updateChordOffsets(note: SmoNote): void;
58
- _lowestYLowestVerse(lyrics: SmoLyric[], vxMeasures: VxMeasure[]): void;
59
- updateLyricOffsets(): void;
60
- renderModifier(scroller: SuiScroller, modifier: StaffModifierBase, vxStart: Note | null, vxEnd: Note | null, smoStart: SmoSelection, smoEnd: SmoSelection): void;
61
- renderEndings(scroller: SuiScroller): void;
62
- getMeasureByIndex(measureIndex: number, staffId: number): SmoMeasure | null;
63
- renderMeasure(smoMeasure: SmoMeasure, printing: boolean, firstInColumn: boolean): void;
64
- }
1
+ import { VxMeasure } from './vxMeasure';
2
+ import { SmoSelection } from '../../smo/xform/selections';
3
+ import { SmoLyric } from '../../smo/data/noteModifiers';
4
+ import { StaffModifierBase } from '../../smo/data/staffModifiers';
5
+ import { SmoScore } from '../../smo/data/score';
6
+ import { SmoMeasure } from '../../smo/data/measure';
7
+ import { SvgBox } from '../../smo/data/common';
8
+ import { SmoNote } from '../../smo/data/note';
9
+ import { SmoSystemStaff } from '../../smo/data/systemStaff';
10
+ import { SmoVolta } from '../../smo/data/measureModifiers';
11
+ import { SvgPage } from '../sui/svgPageMap';
12
+ import { SuiScroller } from '../sui/scroller';
13
+ import { Voice, Note } from '../../common/vex';
14
+ /**
15
+ * @category SuiRender
16
+ */
17
+ export interface VoltaInfo {
18
+ smoMeasure: SmoMeasure;
19
+ ending: SmoVolta;
20
+ }
21
+ /**
22
+ * @category SuiRender
23
+ */
24
+ export interface SuiSystemGroup {
25
+ firstMeasure: VxMeasure;
26
+ voices: Voice[];
27
+ }
28
+ /**
29
+ * Create a system of staves and draw music on it. This calls the Vex measure
30
+ * rendering methods, and also draws all the score and system level stuff like slurs,
31
+ * text, aligns the lyrics.
32
+ * @category SuiRender
33
+ * */
34
+ export declare class VxSystem {
35
+ context: SvgPage;
36
+ leftConnector: any[];
37
+ score: SmoScore;
38
+ vxMeasures: VxMeasure[];
39
+ smoMeasures: SmoMeasure[];
40
+ lineIndex: number;
41
+ maxStaffIndex: number;
42
+ maxSystemIndex: number;
43
+ minMeasureIndex: number;
44
+ maxMeasureIndex: number;
45
+ width: number;
46
+ staves: SmoSystemStaff[];
47
+ box: SvgBox;
48
+ currentY: number;
49
+ topY: number;
50
+ clefWidth: number;
51
+ ys: number[];
52
+ measures: VxMeasure[];
53
+ modifiers: any[];
54
+ constructor(context: SvgPage, topY: number, lineIndex: number, score: SmoScore);
55
+ getVxMeasure(smoMeasure: SmoMeasure): VxMeasure | null;
56
+ getVxNote(smoNote: SmoNote): Note | null;
57
+ _updateChordOffsets(note: SmoNote): void;
58
+ _lowestYLowestVerse(lyrics: SmoLyric[], vxMeasures: VxMeasure[]): void;
59
+ updateLyricOffsets(): void;
60
+ renderModifier(scroller: SuiScroller, modifier: StaffModifierBase, vxStart: Note | null, vxEnd: Note | null, smoStart: SmoSelection, smoEnd: SmoSelection): void;
61
+ renderEndings(scroller: SuiScroller): void;
62
+ getMeasureByIndex(measureIndex: number, staffId: number): SmoMeasure | null;
63
+ renderMeasure(smoMeasure: SmoMeasure, printing: boolean, firstInColumn: boolean): void;
64
+ }