smoosic 1.0.25 → 1.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/smoosic.js +1 -1
- package/package.json +1 -1
- package/release/smoosic.js +1 -1
- package/src/application/exports.ts +1 -0
- 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,98 +1,98 @@
|
|
|
1
|
-
import { SmoMeasure } from '../../smo/data/measure';
|
|
2
|
-
import { SmoNote } from '../../smo/data/note';
|
|
3
|
-
import { SmoSelection } from '../../smo/xform/selections';
|
|
4
|
-
import { SmoScore } from '../../smo/data/score';
|
|
5
|
-
import { SmoInstrument } from '../../smo/data/staffModifiers';
|
|
6
|
-
import { Soundfont } from 'smplr';
|
|
7
|
-
/**
|
|
8
|
-
* Create audio reverb node.
|
|
9
|
-
* @category SuiAudio
|
|
10
|
-
*/
|
|
11
|
-
export declare class SuiReverb {
|
|
12
|
-
static get defaults(): {
|
|
13
|
-
length: number;
|
|
14
|
-
decay: number;
|
|
15
|
-
};
|
|
16
|
-
static impulse: AudioBuffer | null;
|
|
17
|
-
connect(destination: AudioNode): void;
|
|
18
|
-
disconnect(): void;
|
|
19
|
-
_buildImpulse(): void;
|
|
20
|
-
output: ConvolverNode;
|
|
21
|
-
input: ConvolverNode;
|
|
22
|
-
length: number;
|
|
23
|
-
decay: number;
|
|
24
|
-
damp: number;
|
|
25
|
-
reverse: boolean;
|
|
26
|
-
_context: AudioContext;
|
|
27
|
-
constructor(context: AudioContext);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Audio custom osc node. Not used much.
|
|
31
|
-
*/
|
|
32
|
-
export interface WaveTable {
|
|
33
|
-
real: number[];
|
|
34
|
-
imaginary: number[];
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Parameters to create an oscillator for a single note of music
|
|
38
|
-
* @category SuiAudio
|
|
39
|
-
*/
|
|
40
|
-
export interface SuiOscillatorParams {
|
|
41
|
-
duration: number;
|
|
42
|
-
delayTime: number;
|
|
43
|
-
frequency: number;
|
|
44
|
-
detune?: number;
|
|
45
|
-
attackEnv: number;
|
|
46
|
-
decayEnv: number;
|
|
47
|
-
sustainEnv: number;
|
|
48
|
-
releaseEnv: number;
|
|
49
|
-
sustainLevel: number;
|
|
50
|
-
releaseLevel: number;
|
|
51
|
-
waveform: OscillatorType;
|
|
52
|
-
gain: number;
|
|
53
|
-
wavetable?: WaveTable;
|
|
54
|
-
useReverb: boolean;
|
|
55
|
-
instrument: string;
|
|
56
|
-
}
|
|
57
|
-
export declare const SynthWavetable: WaveTable;
|
|
58
|
-
/**
|
|
59
|
-
* Simple waveform synthesizer thing that plays notes. Oscillator works in either
|
|
60
|
-
* analog synthisizer or sampler mode.
|
|
61
|
-
* @category SuiAudio
|
|
62
|
-
*/
|
|
63
|
-
export declare abstract class SuiOscillator {
|
|
64
|
-
abstract play(): void;
|
|
65
|
-
static get defaults(): SuiOscillatorParams;
|
|
66
|
-
static audio: AudioContext;
|
|
67
|
-
duration: number;
|
|
68
|
-
constructor(params: SuiOscillatorParams);
|
|
69
|
-
/**
|
|
70
|
-
* Generate a tone from a note selected or added
|
|
71
|
-
* @param measure
|
|
72
|
-
* @param note
|
|
73
|
-
* @param score
|
|
74
|
-
* @param instrument
|
|
75
|
-
* @param gain
|
|
76
|
-
* @returns
|
|
77
|
-
*/
|
|
78
|
-
static fromNote(measure: SmoMeasure, note: SmoNote, score: SmoScore, instrument: SmoInstrument, gain: number): SuiOscillator[];
|
|
79
|
-
static playSelectionNow(selection: SmoSelection, score: SmoScore, gain: number): void;
|
|
80
|
-
}
|
|
81
|
-
export declare class SuiOscillatorSoundfont extends SuiOscillator {
|
|
82
|
-
instrument: string;
|
|
83
|
-
samples: Soundfont;
|
|
84
|
-
midinumber: number;
|
|
85
|
-
offset: number;
|
|
86
|
-
velocity: number;
|
|
87
|
-
delayTime: number;
|
|
88
|
-
detune: number;
|
|
89
|
-
constructor(params: SuiOscillatorParams);
|
|
90
|
-
play(): void;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* An audio output primitive that uses frequency-adjusted sampled sounds
|
|
94
|
-
* @category SuiAudio
|
|
95
|
-
*/
|
|
96
|
-
export declare class SuiSampler extends SuiOscillatorSoundfont {
|
|
97
|
-
constructor(params: SuiOscillatorParams);
|
|
98
|
-
}
|
|
1
|
+
import { SmoMeasure } from '../../smo/data/measure';
|
|
2
|
+
import { SmoNote } from '../../smo/data/note';
|
|
3
|
+
import { SmoSelection } from '../../smo/xform/selections';
|
|
4
|
+
import { SmoScore } from '../../smo/data/score';
|
|
5
|
+
import { SmoInstrument } from '../../smo/data/staffModifiers';
|
|
6
|
+
import { Soundfont } from 'smplr';
|
|
7
|
+
/**
|
|
8
|
+
* Create audio reverb node.
|
|
9
|
+
* @category SuiAudio
|
|
10
|
+
*/
|
|
11
|
+
export declare class SuiReverb {
|
|
12
|
+
static get defaults(): {
|
|
13
|
+
length: number;
|
|
14
|
+
decay: number;
|
|
15
|
+
};
|
|
16
|
+
static impulse: AudioBuffer | null;
|
|
17
|
+
connect(destination: AudioNode): void;
|
|
18
|
+
disconnect(): void;
|
|
19
|
+
_buildImpulse(): void;
|
|
20
|
+
output: ConvolverNode;
|
|
21
|
+
input: ConvolverNode;
|
|
22
|
+
length: number;
|
|
23
|
+
decay: number;
|
|
24
|
+
damp: number;
|
|
25
|
+
reverse: boolean;
|
|
26
|
+
_context: AudioContext;
|
|
27
|
+
constructor(context: AudioContext);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Audio custom osc node. Not used much.
|
|
31
|
+
*/
|
|
32
|
+
export interface WaveTable {
|
|
33
|
+
real: number[];
|
|
34
|
+
imaginary: number[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parameters to create an oscillator for a single note of music
|
|
38
|
+
* @category SuiAudio
|
|
39
|
+
*/
|
|
40
|
+
export interface SuiOscillatorParams {
|
|
41
|
+
duration: number;
|
|
42
|
+
delayTime: number;
|
|
43
|
+
frequency: number;
|
|
44
|
+
detune?: number;
|
|
45
|
+
attackEnv: number;
|
|
46
|
+
decayEnv: number;
|
|
47
|
+
sustainEnv: number;
|
|
48
|
+
releaseEnv: number;
|
|
49
|
+
sustainLevel: number;
|
|
50
|
+
releaseLevel: number;
|
|
51
|
+
waveform: OscillatorType;
|
|
52
|
+
gain: number;
|
|
53
|
+
wavetable?: WaveTable;
|
|
54
|
+
useReverb: boolean;
|
|
55
|
+
instrument: string;
|
|
56
|
+
}
|
|
57
|
+
export declare const SynthWavetable: WaveTable;
|
|
58
|
+
/**
|
|
59
|
+
* Simple waveform synthesizer thing that plays notes. Oscillator works in either
|
|
60
|
+
* analog synthisizer or sampler mode.
|
|
61
|
+
* @category SuiAudio
|
|
62
|
+
*/
|
|
63
|
+
export declare abstract class SuiOscillator {
|
|
64
|
+
abstract play(): void;
|
|
65
|
+
static get defaults(): SuiOscillatorParams;
|
|
66
|
+
static audio: AudioContext;
|
|
67
|
+
duration: number;
|
|
68
|
+
constructor(params: SuiOscillatorParams);
|
|
69
|
+
/**
|
|
70
|
+
* Generate a tone from a note selected or added
|
|
71
|
+
* @param measure
|
|
72
|
+
* @param note
|
|
73
|
+
* @param score
|
|
74
|
+
* @param instrument
|
|
75
|
+
* @param gain
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
78
|
+
static fromNote(measure: SmoMeasure, note: SmoNote, score: SmoScore, instrument: SmoInstrument, gain: number): SuiOscillator[];
|
|
79
|
+
static playSelectionNow(selection: SmoSelection, score: SmoScore, gain: number): void;
|
|
80
|
+
}
|
|
81
|
+
export declare class SuiOscillatorSoundfont extends SuiOscillator {
|
|
82
|
+
instrument: string;
|
|
83
|
+
samples: Soundfont;
|
|
84
|
+
midinumber: number;
|
|
85
|
+
offset: number;
|
|
86
|
+
velocity: number;
|
|
87
|
+
delayTime: number;
|
|
88
|
+
detune: number;
|
|
89
|
+
constructor(params: SuiOscillatorParams);
|
|
90
|
+
play(): void;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* An audio output primitive that uses frequency-adjusted sampled sounds
|
|
94
|
+
* @category SuiAudio
|
|
95
|
+
*/
|
|
96
|
+
export declare class SuiSampler extends SuiOscillatorSoundfont {
|
|
97
|
+
constructor(params: SuiOscillatorParams);
|
|
98
|
+
}
|
|
@@ -1,141 +1,141 @@
|
|
|
1
|
-
import { SuiOscillator } from './oscillator';
|
|
2
|
-
import { SuiScoreView } from '../sui/scoreView';
|
|
3
|
-
import { SmoScore } from '../../smo/data/score';
|
|
4
|
-
import { SmoSelector } from '../../smo/xform/selections';
|
|
5
|
-
import { SuiAudioAnimationParams } from './musicCursor';
|
|
6
|
-
/**
|
|
7
|
-
* Create audio player for the score from the start point
|
|
8
|
-
* @category SuiAudio
|
|
9
|
-
*/
|
|
10
|
-
export interface SuiAudioPlayerParams {
|
|
11
|
-
startIndex: number;
|
|
12
|
-
view: SuiScoreView;
|
|
13
|
-
score: SmoScore;
|
|
14
|
-
audioAnimation: SuiAudioAnimationParams;
|
|
15
|
-
}
|
|
16
|
-
export interface midiFrequency {
|
|
17
|
-
midinumber: number;
|
|
18
|
-
detune: number;
|
|
19
|
-
}
|
|
20
|
-
export interface OscAudioData {
|
|
21
|
-
pitches: midiFrequency[];
|
|
22
|
-
duration: number;
|
|
23
|
-
durationPct: number;
|
|
24
|
-
delay: number;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Parameters used to create just-in-time oscillators
|
|
28
|
-
* @category SuiAudio
|
|
29
|
-
*/
|
|
30
|
-
export interface SoundParams {
|
|
31
|
-
frequencies: OscAudioData[];
|
|
32
|
-
overallDuration: number;
|
|
33
|
-
volume: number;
|
|
34
|
-
noteType: string;
|
|
35
|
-
instrument: string;
|
|
36
|
-
selector: SmoSelector;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* A list of sound parameters for just-in-time oscillator creation
|
|
40
|
-
* @category SuiAudio
|
|
41
|
-
*/
|
|
42
|
-
export interface SoundParamMeasureLink {
|
|
43
|
-
soundParams: Record<number, SoundParams[]>;
|
|
44
|
-
endTicks: number;
|
|
45
|
-
measureIndex: number;
|
|
46
|
-
next: SoundParamMeasureLink | null;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* A set of oscillators to be played at a certain time.
|
|
50
|
-
* @category SuiAudio
|
|
51
|
-
*/
|
|
52
|
-
export interface CuedAudioContext {
|
|
53
|
-
oscs: SuiOscillator[];
|
|
54
|
-
playMeasureIndex: number;
|
|
55
|
-
playTickIndex: number;
|
|
56
|
-
waitTime: number;
|
|
57
|
-
offsetPct: number;
|
|
58
|
-
durationPct: number;
|
|
59
|
-
selector: SmoSelector;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* A list of oscillators. We keep them in a list until played so we
|
|
63
|
-
* can GC them if playing is cancelled
|
|
64
|
-
* @category SuiAudio
|
|
65
|
-
*/
|
|
66
|
-
export interface CuedAudioLink {
|
|
67
|
-
sound: CuedAudioContext;
|
|
68
|
-
next: CuedAudioLink | null;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Maintain a list of buffers ready to play, since this is a
|
|
72
|
-
* system resource.
|
|
73
|
-
* @category SuiAudio
|
|
74
|
-
*/
|
|
75
|
-
export declare class CuedAudioContexts {
|
|
76
|
-
soundHead: CuedAudioLink | null;
|
|
77
|
-
soundTail: CuedAudioLink | null;
|
|
78
|
-
paramLinkHead: SoundParamMeasureLink | null;
|
|
79
|
-
paramLinkTail: SoundParamMeasureLink | null;
|
|
80
|
-
soundListLength: number;
|
|
81
|
-
playWaitTimer: number;
|
|
82
|
-
complete: boolean;
|
|
83
|
-
addToTail(cuedSound: CuedAudioContext): void;
|
|
84
|
-
advanceHead(): CuedAudioContext | null;
|
|
85
|
-
get soundCount(): number;
|
|
86
|
-
reset(): void;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Play the music, ja!
|
|
90
|
-
* @category SuiAudio
|
|
91
|
-
*/
|
|
92
|
-
export declare class SuiAudioPlayer {
|
|
93
|
-
static _playing: boolean;
|
|
94
|
-
static instanceId: number;
|
|
95
|
-
static duplicatePitchThresh: number;
|
|
96
|
-
static voiceThresh: number;
|
|
97
|
-
static _playingInstance: SuiAudioPlayer | null;
|
|
98
|
-
static set playing(val: boolean);
|
|
99
|
-
static get audioBufferSize(): number;
|
|
100
|
-
static incrementInstanceId(): number;
|
|
101
|
-
static get playing(): boolean;
|
|
102
|
-
static pausePlayer(): void;
|
|
103
|
-
instanceId: number;
|
|
104
|
-
paused: boolean;
|
|
105
|
-
view: SuiScoreView;
|
|
106
|
-
score: SmoScore;
|
|
107
|
-
cuedSounds: CuedAudioContexts;
|
|
108
|
-
audioDefaults: import("./oscillator").SuiOscillatorParams;
|
|
109
|
-
volumeMap: Record<string, number>;
|
|
110
|
-
audioAnimation: SuiAudioAnimationParams;
|
|
111
|
-
constructor(parameters: SuiAudioPlayerParams);
|
|
112
|
-
/**
|
|
113
|
-
* Popuate the SoundData structures used to create the oscillators
|
|
114
|
-
* from the notes in this measure.
|
|
115
|
-
* @param measureIndex
|
|
116
|
-
* @returns
|
|
117
|
-
*/
|
|
118
|
-
private getNoteSoundData;
|
|
119
|
-
/**
|
|
120
|
-
* Create the audio resources to be played.
|
|
121
|
-
* @param measureIndex
|
|
122
|
-
* @returns
|
|
123
|
-
*/
|
|
124
|
-
createCuedSound(measureIndex: number): void;
|
|
125
|
-
private delaySilence;
|
|
126
|
-
/**
|
|
127
|
-
* Get the next sound from the oscillator cue and play it. Stop if either the
|
|
128
|
-
* player was stopped, or if we run out of sounds.
|
|
129
|
-
*/
|
|
130
|
-
playSounds(): Promise<void>;
|
|
131
|
-
waitForDoneOrFull(): Promise<void>;
|
|
132
|
-
/**
|
|
133
|
-
* Create all the audio samples and start the player until done.
|
|
134
|
-
* @param measureIndex
|
|
135
|
-
*/
|
|
136
|
-
startPlayer(measureIndex: number): Promise<void>;
|
|
137
|
-
static stopPlayer(): void;
|
|
138
|
-
static get playingInstance(): SuiAudioPlayer | null;
|
|
139
|
-
static _playChord(oscAr: SuiOscillator[]): void;
|
|
140
|
-
play(): Promise<void>;
|
|
141
|
-
}
|
|
1
|
+
import { SuiOscillator } from './oscillator';
|
|
2
|
+
import { SuiScoreView } from '../sui/scoreView';
|
|
3
|
+
import { SmoScore } from '../../smo/data/score';
|
|
4
|
+
import { SmoSelector } from '../../smo/xform/selections';
|
|
5
|
+
import { SuiAudioAnimationParams } from './musicCursor';
|
|
6
|
+
/**
|
|
7
|
+
* Create audio player for the score from the start point
|
|
8
|
+
* @category SuiAudio
|
|
9
|
+
*/
|
|
10
|
+
export interface SuiAudioPlayerParams {
|
|
11
|
+
startIndex: number;
|
|
12
|
+
view: SuiScoreView;
|
|
13
|
+
score: SmoScore;
|
|
14
|
+
audioAnimation: SuiAudioAnimationParams;
|
|
15
|
+
}
|
|
16
|
+
export interface midiFrequency {
|
|
17
|
+
midinumber: number;
|
|
18
|
+
detune: number;
|
|
19
|
+
}
|
|
20
|
+
export interface OscAudioData {
|
|
21
|
+
pitches: midiFrequency[];
|
|
22
|
+
duration: number;
|
|
23
|
+
durationPct: number;
|
|
24
|
+
delay: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Parameters used to create just-in-time oscillators
|
|
28
|
+
* @category SuiAudio
|
|
29
|
+
*/
|
|
30
|
+
export interface SoundParams {
|
|
31
|
+
frequencies: OscAudioData[];
|
|
32
|
+
overallDuration: number;
|
|
33
|
+
volume: number;
|
|
34
|
+
noteType: string;
|
|
35
|
+
instrument: string;
|
|
36
|
+
selector: SmoSelector;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A list of sound parameters for just-in-time oscillator creation
|
|
40
|
+
* @category SuiAudio
|
|
41
|
+
*/
|
|
42
|
+
export interface SoundParamMeasureLink {
|
|
43
|
+
soundParams: Record<number, SoundParams[]>;
|
|
44
|
+
endTicks: number;
|
|
45
|
+
measureIndex: number;
|
|
46
|
+
next: SoundParamMeasureLink | null;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A set of oscillators to be played at a certain time.
|
|
50
|
+
* @category SuiAudio
|
|
51
|
+
*/
|
|
52
|
+
export interface CuedAudioContext {
|
|
53
|
+
oscs: SuiOscillator[];
|
|
54
|
+
playMeasureIndex: number;
|
|
55
|
+
playTickIndex: number;
|
|
56
|
+
waitTime: number;
|
|
57
|
+
offsetPct: number;
|
|
58
|
+
durationPct: number;
|
|
59
|
+
selector: SmoSelector;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* A list of oscillators. We keep them in a list until played so we
|
|
63
|
+
* can GC them if playing is cancelled
|
|
64
|
+
* @category SuiAudio
|
|
65
|
+
*/
|
|
66
|
+
export interface CuedAudioLink {
|
|
67
|
+
sound: CuedAudioContext;
|
|
68
|
+
next: CuedAudioLink | null;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Maintain a list of buffers ready to play, since this is a
|
|
72
|
+
* system resource.
|
|
73
|
+
* @category SuiAudio
|
|
74
|
+
*/
|
|
75
|
+
export declare class CuedAudioContexts {
|
|
76
|
+
soundHead: CuedAudioLink | null;
|
|
77
|
+
soundTail: CuedAudioLink | null;
|
|
78
|
+
paramLinkHead: SoundParamMeasureLink | null;
|
|
79
|
+
paramLinkTail: SoundParamMeasureLink | null;
|
|
80
|
+
soundListLength: number;
|
|
81
|
+
playWaitTimer: number;
|
|
82
|
+
complete: boolean;
|
|
83
|
+
addToTail(cuedSound: CuedAudioContext): void;
|
|
84
|
+
advanceHead(): CuedAudioContext | null;
|
|
85
|
+
get soundCount(): number;
|
|
86
|
+
reset(): void;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Play the music, ja!
|
|
90
|
+
* @category SuiAudio
|
|
91
|
+
*/
|
|
92
|
+
export declare class SuiAudioPlayer {
|
|
93
|
+
static _playing: boolean;
|
|
94
|
+
static instanceId: number;
|
|
95
|
+
static duplicatePitchThresh: number;
|
|
96
|
+
static voiceThresh: number;
|
|
97
|
+
static _playingInstance: SuiAudioPlayer | null;
|
|
98
|
+
static set playing(val: boolean);
|
|
99
|
+
static get audioBufferSize(): number;
|
|
100
|
+
static incrementInstanceId(): number;
|
|
101
|
+
static get playing(): boolean;
|
|
102
|
+
static pausePlayer(): void;
|
|
103
|
+
instanceId: number;
|
|
104
|
+
paused: boolean;
|
|
105
|
+
view: SuiScoreView;
|
|
106
|
+
score: SmoScore;
|
|
107
|
+
cuedSounds: CuedAudioContexts;
|
|
108
|
+
audioDefaults: import("./oscillator").SuiOscillatorParams;
|
|
109
|
+
volumeMap: Record<string, number>;
|
|
110
|
+
audioAnimation: SuiAudioAnimationParams;
|
|
111
|
+
constructor(parameters: SuiAudioPlayerParams);
|
|
112
|
+
/**
|
|
113
|
+
* Popuate the SoundData structures used to create the oscillators
|
|
114
|
+
* from the notes in this measure.
|
|
115
|
+
* @param measureIndex
|
|
116
|
+
* @returns
|
|
117
|
+
*/
|
|
118
|
+
private getNoteSoundData;
|
|
119
|
+
/**
|
|
120
|
+
* Create the audio resources to be played.
|
|
121
|
+
* @param measureIndex
|
|
122
|
+
* @returns
|
|
123
|
+
*/
|
|
124
|
+
createCuedSound(measureIndex: number): void;
|
|
125
|
+
private delaySilence;
|
|
126
|
+
/**
|
|
127
|
+
* Get the next sound from the oscillator cue and play it. Stop if either the
|
|
128
|
+
* player was stopped, or if we run out of sounds.
|
|
129
|
+
*/
|
|
130
|
+
playSounds(): Promise<void>;
|
|
131
|
+
waitForDoneOrFull(): Promise<void>;
|
|
132
|
+
/**
|
|
133
|
+
* Create all the audio samples and start the player until done.
|
|
134
|
+
* @param measureIndex
|
|
135
|
+
*/
|
|
136
|
+
startPlayer(measureIndex: number): Promise<void>;
|
|
137
|
+
static stopPlayer(): void;
|
|
138
|
+
static get playingInstance(): SuiAudioPlayer | null;
|
|
139
|
+
static _playChord(oscAr: SuiOscillator[]): void;
|
|
140
|
+
play(): Promise<void>;
|
|
141
|
+
}
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
import { SmoOscillatorInfo } from '../../smo/data/staffModifiers';
|
|
2
|
-
import { Soundfont } from 'smplr';
|
|
3
|
-
export declare const instrumentSampleMap: Record<string, string>;
|
|
4
|
-
export declare const loadedSoundfonts: Record<string, Soundfont>;
|
|
5
|
-
/**
|
|
6
|
-
* A set of parameters from the instrument interface used to create audio from samples.
|
|
7
|
-
* @category SuiAudio
|
|
8
|
-
*/
|
|
9
|
-
export interface SampleChooserParams {
|
|
10
|
-
family?: string;
|
|
11
|
-
instrument: string;
|
|
12
|
-
frequency: number;
|
|
13
|
-
duration: number;
|
|
14
|
-
gain: number;
|
|
15
|
-
articulation?: string;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* A function prototype that chooses from among samples to return the correct one for that note
|
|
19
|
-
*/
|
|
20
|
-
export type SampleChooser = (params: SampleChooserParams, samples: SmoOscillatorInfo[]) => AudioSample | null;
|
|
21
|
-
/**
|
|
22
|
-
* A specific audio sample that can be converted into an audio node
|
|
23
|
-
* @category SuiAudio
|
|
24
|
-
*/
|
|
25
|
-
export interface AudioSample {
|
|
26
|
-
sample: AudioBuffer;
|
|
27
|
-
frequency: number;
|
|
28
|
-
patch: string;
|
|
29
|
-
gain: number;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Interface for a chooser function and a set of samples
|
|
33
|
-
* @category SuiAudio
|
|
34
|
-
*/
|
|
35
|
-
export interface InstrumentSampleChooser {
|
|
36
|
-
instrument: string;
|
|
37
|
-
sampleChooser: SampleChooser;
|
|
38
|
-
samples: SmoOscillatorInfo[];
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Logic to create audio nodes out of HTML5 media elements
|
|
42
|
-
* @category SuiAudio
|
|
43
|
-
*/
|
|
44
|
-
export declare class SuiSampleMedia {
|
|
45
|
-
static sampleFiles: SmoOscillatorInfo[];
|
|
46
|
-
static sampleBufferMap: Record<string, AudioBuffer>;
|
|
47
|
-
static sampleOscMap: Record<string, SmoOscillatorInfo[]>;
|
|
48
|
-
static instrumentChooser: Record<string, InstrumentSampleChooser>;
|
|
49
|
-
static receivedBuffer: boolean;
|
|
50
|
-
static getFamilyForInstrument(instKey: string): string;
|
|
51
|
-
/**
|
|
52
|
-
* Load samples so we can play the music
|
|
53
|
-
* @returns - promise, resolved when loaded
|
|
54
|
-
*/
|
|
55
|
-
static samplePromise(audio: AudioContext): Promise<any>;
|
|
56
|
-
}
|
|
1
|
+
import { SmoOscillatorInfo } from '../../smo/data/staffModifiers';
|
|
2
|
+
import { Soundfont } from 'smplr';
|
|
3
|
+
export declare const instrumentSampleMap: Record<string, string>;
|
|
4
|
+
export declare const loadedSoundfonts: Record<string, Soundfont>;
|
|
5
|
+
/**
|
|
6
|
+
* A set of parameters from the instrument interface used to create audio from samples.
|
|
7
|
+
* @category SuiAudio
|
|
8
|
+
*/
|
|
9
|
+
export interface SampleChooserParams {
|
|
10
|
+
family?: string;
|
|
11
|
+
instrument: string;
|
|
12
|
+
frequency: number;
|
|
13
|
+
duration: number;
|
|
14
|
+
gain: number;
|
|
15
|
+
articulation?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A function prototype that chooses from among samples to return the correct one for that note
|
|
19
|
+
*/
|
|
20
|
+
export type SampleChooser = (params: SampleChooserParams, samples: SmoOscillatorInfo[]) => AudioSample | null;
|
|
21
|
+
/**
|
|
22
|
+
* A specific audio sample that can be converted into an audio node
|
|
23
|
+
* @category SuiAudio
|
|
24
|
+
*/
|
|
25
|
+
export interface AudioSample {
|
|
26
|
+
sample: AudioBuffer;
|
|
27
|
+
frequency: number;
|
|
28
|
+
patch: string;
|
|
29
|
+
gain: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Interface for a chooser function and a set of samples
|
|
33
|
+
* @category SuiAudio
|
|
34
|
+
*/
|
|
35
|
+
export interface InstrumentSampleChooser {
|
|
36
|
+
instrument: string;
|
|
37
|
+
sampleChooser: SampleChooser;
|
|
38
|
+
samples: SmoOscillatorInfo[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Logic to create audio nodes out of HTML5 media elements
|
|
42
|
+
* @category SuiAudio
|
|
43
|
+
*/
|
|
44
|
+
export declare class SuiSampleMedia {
|
|
45
|
+
static sampleFiles: SmoOscillatorInfo[];
|
|
46
|
+
static sampleBufferMap: Record<string, AudioBuffer>;
|
|
47
|
+
static sampleOscMap: Record<string, SmoOscillatorInfo[]>;
|
|
48
|
+
static instrumentChooser: Record<string, InstrumentSampleChooser>;
|
|
49
|
+
static receivedBuffer: boolean;
|
|
50
|
+
static getFamilyForInstrument(instKey: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* Load samples so we can play the music
|
|
53
|
+
* @returns - promise, resolved when loaded
|
|
54
|
+
*/
|
|
55
|
+
static samplePromise(audio: AudioContext): Promise<any>;
|
|
56
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { SuiAudioAnimationParams } from '../audio/musicCursor';
|
|
2
|
-
/**
|
|
3
|
-
* Define configurable rendering options
|
|
4
|
-
* @category SuiRender
|
|
5
|
-
* @module /render/sui/configuration
|
|
6
|
-
*/
|
|
7
|
-
export interface SmoRenderConfiguration {
|
|
8
|
-
demonPollTime: number;
|
|
9
|
-
idleRedrawTime: number;
|
|
10
|
-
scoreDomContainer: string | HTMLElement;
|
|
11
|
-
audioAnimation: SuiAudioAnimationParams;
|
|
12
|
-
}
|
|
1
|
+
import { SuiAudioAnimationParams } from '../audio/musicCursor';
|
|
2
|
+
/**
|
|
3
|
+
* Define configurable rendering options
|
|
4
|
+
* @category SuiRender
|
|
5
|
+
* @module /render/sui/configuration
|
|
6
|
+
*/
|
|
7
|
+
export interface SmoRenderConfiguration {
|
|
8
|
+
demonPollTime: number;
|
|
9
|
+
idleRedrawTime: number;
|
|
10
|
+
scoreDomContainer: string | HTMLElement;
|
|
11
|
+
audioAnimation: SuiAudioAnimationParams;
|
|
12
|
+
}
|