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.
- package/build/smoosic.js +1 -1
- package/package.json +1 -1
- package/release/smoosic.js +1 -1
- package/release/styles/ribbon.css +5 -10
- package/src/application/exports.ts +1 -0
- package/src/styles/ribbon.css +5 -10
- package/types/src/application/application.d.ts +102 -102
- package/types/src/application/common.d.ts +74 -74
- package/types/src/application/configuration.d.ts +74 -74
- package/types/src/application/dom.d.ts +8 -8
- package/types/src/application/dynamicInit.d.ts +1 -1
- package/types/src/application/eventHandler.d.ts +78 -78
- package/types/src/application/exports.d.ts +494 -493
- package/types/src/application/generateVexTests.d.ts +10 -10
- package/types/src/application/keyCommands.d.ts +90 -90
- package/types/src/common/bootstrap.bundle.d.ts +1138 -1138
- package/types/src/common/htmlHelpers.d.ts +105 -105
- package/types/src/common/jszip.d.ts +2 -2
- package/types/src/common/midi-parser.d.ts +38 -38
- package/types/src/common/promiseHelpers.d.ts +30 -30
- package/types/src/common/serializationHelpers.d.ts +29 -29
- package/types/src/common/textformatter.d.ts +140 -140
- package/types/src/common/vex.d.ts +222 -222
- package/types/src/render/audio/musicCursor.d.ts +25 -25
- package/types/src/render/audio/oscillator.d.ts +98 -98
- package/types/src/render/audio/player.d.ts +141 -141
- package/types/src/render/audio/samples.d.ts +56 -56
- package/types/src/render/sui/configuration.d.ts +12 -12
- package/types/src/render/sui/formatter.d.ts +151 -151
- package/types/src/render/sui/layoutDebug.d.ts +43 -43
- package/types/src/render/sui/mapper.d.ts +116 -116
- package/types/src/render/sui/piano.d.ts +46 -46
- package/types/src/render/sui/renderState.d.ts +88 -88
- package/types/src/render/sui/scoreRender.d.ts +93 -93
- package/types/src/render/sui/scoreView.d.ts +267 -267
- package/types/src/render/sui/scoreViewOperations.d.ts +594 -594
- package/types/src/render/sui/scroller.d.ts +34 -34
- package/types/src/render/sui/svgHelpers.d.ts +85 -85
- package/types/src/render/sui/svgPageMap.d.ts +318 -318
- package/types/src/render/sui/textEdit.d.ts +310 -310
- package/types/src/render/sui/textRender.d.ts +189 -189
- package/types/src/render/sui/tracker.d.ts +90 -90
- package/types/src/render/vex/glyphDimensions.d.ts +23 -23
- package/types/src/render/vex/smoAdapter.d.ts +46 -46
- package/types/src/render/vex/toVex.d.ts +13 -13
- package/types/src/render/vex/vxMeasure.d.ts +95 -95
- package/types/src/render/vex/vxNote.d.ts +55 -55
- package/types/src/render/vex/vxSystem.d.ts +64 -64
- package/types/src/smo/data/common.d.ts +220 -220
- package/types/src/smo/data/measure.d.ts +510 -510
- package/types/src/smo/data/measureModifiers.d.ts +506 -506
- package/types/src/smo/data/music.d.ts +438 -438
- package/types/src/smo/data/note.d.ts +485 -485
- package/types/src/smo/data/noteModifiers.d.ts +590 -590
- package/types/src/smo/data/partInfo.d.ts +162 -162
- package/types/src/smo/data/score.d.ts +395 -395
- package/types/src/smo/data/scoreModifiers.d.ts +433 -433
- package/types/src/smo/data/scoreText.d.ts +277 -277
- package/types/src/smo/data/staffModifiers.d.ts +767 -767
- package/types/src/smo/data/systemStaff.d.ts +238 -238
- package/types/src/smo/data/tuplet.d.ts +146 -146
- package/types/src/smo/midi/midiToSmo.d.ts +198 -198
- package/types/src/smo/midi/smoToMidi.d.ts +23 -23
- package/types/src/smo/mxml/smoToXml.d.ts +165 -165
- package/types/src/smo/mxml/xmlHelpers.d.ts +140 -140
- package/types/src/smo/mxml/xmlState.d.ts +257 -257
- package/types/src/smo/mxml/xmlToSmo.d.ts +92 -92
- package/types/src/smo/xform/beamers.d.ts +46 -46
- package/types/src/smo/xform/copypaste.d.ts +99 -99
- package/types/src/smo/xform/operations.d.ts +127 -127
- package/types/src/smo/xform/roadmap.d.ts +70 -70
- package/types/src/smo/xform/selections.d.ts +153 -153
- package/types/src/smo/xform/tickDuration.d.ts +155 -155
- package/types/src/smo/xform/tickMap.d.ts +34 -34
- package/types/src/smo/xform/undo.d.ts +142 -142
- package/types/src/smo/xform/updateAudio.d.ts +9 -9
- package/types/src/styles/font_metrics/Commissioner-Medium-Metrics.d.ts +871 -871
- package/types/src/styles/font_metrics/ConcertOne-Regular.d.ts +871 -871
- package/types/src/styles/font_metrics/Merriweather-Regular.d.ts +871 -871
- package/types/src/styles/font_metrics/arial_metrics.d.ts +870 -870
- package/types/src/styles/font_metrics/ssp-sans-metrics.d.ts +871 -871
- package/types/src/styles/font_metrics/ssp-serif-metrics.d.ts +871 -871
- package/types/src/styles/font_metrics/times_metrics.d.ts +870 -870
- package/types/src/ui/buttons/button.d.ts +95 -95
- package/types/src/ui/buttons/collapsable.d.ts +42 -42
- package/types/src/ui/buttons/display.d.ts +23 -23
- package/types/src/ui/buttons/ribbon.d.ts +76 -76
- package/types/src/ui/common.d.ts +45 -45
- package/types/src/ui/composable/draggable.d.ts +12 -12
- package/types/src/ui/configuration.d.ts +31 -31
- package/types/src/ui/dialogs/adapter.d.ts +107 -107
- package/types/src/ui/dialogs/addMeasure.d.ts +20 -20
- package/types/src/ui/dialogs/arpeggio.d.ts +2 -2
- package/types/src/ui/dialogs/articulation.d.ts +2 -2
- package/types/src/ui/dialogs/audioSettings.d.ts +32 -32
- package/types/src/ui/dialogs/chordChange.d.ts +35 -35
- package/types/src/ui/dialogs/clefChange.d.ts +2 -2
- package/types/src/ui/dialogs/components/baseComponent.d.ts +158 -158
- package/types/src/ui/dialogs/components/button.d.ts +54 -54
- package/types/src/ui/dialogs/components/buttonArray.d.ts +101 -101
- package/types/src/ui/dialogs/components/checkdrop.d.ts +27 -27
- package/types/src/ui/dialogs/components/dragText.d.ts +27 -27
- package/types/src/ui/dialogs/components/dropdown.d.ts +78 -78
- package/types/src/ui/dialogs/components/fileDownload.d.ts +28 -28
- package/types/src/ui/dialogs/components/fontComponent.d.ts +32 -32
- package/types/src/ui/dialogs/components/noteText.d.ts +98 -98
- package/types/src/ui/dialogs/components/pitch.d.ts +95 -95
- package/types/src/ui/dialogs/components/rocker.d.ts +66 -66
- package/types/src/ui/dialogs/components/staffComponents.d.ts +77 -77
- package/types/src/ui/dialogs/components/textCheck.d.ts +38 -38
- package/types/src/ui/dialogs/components/textInPlace.d.ts +90 -90
- package/types/src/ui/dialogs/components/textInput.d.ts +58 -58
- package/types/src/ui/dialogs/components/tie.d.ts +41 -41
- package/types/src/ui/dialogs/components/toggle.d.ts +53 -53
- package/types/src/ui/dialogs/components/tree.d.ts +46 -46
- package/types/src/ui/dialogs/customTuplets.d.ts +25 -25
- package/types/src/ui/dialogs/dialog.d.ts +201 -201
- package/types/src/ui/dialogs/durations.d.ts +2 -2
- package/types/src/ui/dialogs/dynamics.d.ts +37 -37
- package/types/src/ui/dialogs/endings.d.ts +61 -61
- package/types/src/ui/dialogs/factory.d.ts +15 -15
- package/types/src/ui/dialogs/fileDialogs.d.ts +4 -4
- package/types/src/ui/dialogs/fonts.d.ts +2 -2
- package/types/src/ui/dialogs/globalLayout.d.ts +2 -2
- package/types/src/ui/dialogs/gracenote.d.ts +2 -2
- package/types/src/ui/dialogs/hairpin.d.ts +35 -35
- package/types/src/ui/dialogs/instrument.d.ts +3 -3
- package/types/src/ui/dialogs/keySignature.d.ts +33 -33
- package/types/src/ui/dialogs/library.d.ts +70 -70
- package/types/src/ui/dialogs/lyric.d.ts +39 -39
- package/types/src/ui/dialogs/measureFormat.d.ts +52 -52
- package/types/src/ui/dialogs/microtones.d.ts +2 -2
- package/types/src/ui/dialogs/noteHead.d.ts +2 -2
- package/types/src/ui/dialogs/ornament.d.ts +2 -2
- package/types/src/ui/dialogs/pageLayout.d.ts +2 -2
- package/types/src/ui/dialogs/partInfo.d.ts +2 -2
- package/types/src/ui/dialogs/pedalMarking.d.ts +35 -35
- package/types/src/ui/dialogs/pitch.d.ts +2 -2
- package/types/src/ui/dialogs/preferences.d.ts +2 -2
- package/types/src/ui/dialogs/scoreId.d.ts +2 -2
- package/types/src/ui/dialogs/scoreView.d.ts +2 -2
- package/types/src/ui/dialogs/slur.d.ts +57 -57
- package/types/src/ui/dialogs/staffGroup.d.ts +2 -2
- package/types/src/ui/dialogs/tabNote.d.ts +32 -32
- package/types/src/ui/dialogs/tabStave.d.ts +43 -43
- package/types/src/ui/dialogs/tempo.d.ts +50 -50
- package/types/src/ui/dialogs/textBlock.d.ts +61 -61
- package/types/src/ui/dialogs/textBracket.d.ts +35 -35
- package/types/src/ui/dialogs/tie.d.ts +41 -41
- package/types/src/ui/dialogs/timeSignature.d.ts +34 -34
- package/types/src/ui/dialogs/transposeScore.d.ts +2 -2
- package/types/src/ui/dialogs/volta.d.ts +40 -40
- package/types/src/ui/eventSource.d.ts +63 -63
- package/types/src/ui/exceptions.d.ts +12 -12
- package/types/src/ui/fileio/fileInput.d.ts +12 -12
- package/types/src/ui/fileio/library.d.ts +40 -40
- package/types/src/ui/fileio/xhrLoader.d.ts +18 -18
- package/types/src/ui/help.d.ts +22 -22
- package/types/src/ui/i18n/language.d.ts +37 -37
- package/types/src/ui/i18n/language_ar.d.ts +5 -5
- package/types/src/ui/i18n/language_de.d.ts +1 -1
- package/types/src/ui/i18n/language_en.d.ts +18 -18
- package/types/src/ui/i18n/translationEditor.d.ts +14 -14
- package/types/src/ui/keyBindings/default/editorKeys.d.ts +7 -7
- package/types/src/ui/keyBindings/default/trackerKeys.d.ts +7 -7
- package/types/src/ui/menus/beams.d.ts +13 -13
- package/types/src/ui/menus/edit.d.ts +8 -8
- package/types/src/ui/menus/file.d.ts +26 -26
- package/types/src/ui/menus/help.d.ts +8 -8
- package/types/src/ui/menus/keySignature.d.ts +13 -13
- package/types/src/ui/menus/language.d.ts +12 -12
- package/types/src/ui/menus/manager.d.ts +57 -57
- package/types/src/ui/menus/measure.d.ts +8 -8
- package/types/src/ui/menus/menu.d.ts +136 -136
- package/types/src/ui/menus/note.d.ts +8 -8
- package/types/src/ui/menus/partSelection.d.ts +19 -19
- package/types/src/ui/menus/parts.d.ts +50 -50
- package/types/src/ui/menus/score.d.ts +20 -20
- package/types/src/ui/menus/staffModifier.d.ts +21 -21
- package/types/src/ui/menus/text.d.ts +8 -8
- package/types/src/ui/menus/timeSignature.d.ts +12 -12
- package/types/src/ui/menus/tuplets.d.ts +13 -13
- package/types/src/ui/menus/voices.d.ts +8 -8
- package/types/src/ui/modalDialogs.d.ts +1 -1
- package/types/src/ui/navigation.d.ts +15 -15
- package/types/src/ui/qwerty.d.ts +41 -41
- package/types/src/ui/ribbonLayout/default/defaultRibbon.d.ts +15 -15
- package/types/src/ui/ribbonLayout/default/tabletRibbon.d.ts +22 -22
- 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
|
+
}
|