takomusic 1.2.0
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/LICENSE +661 -0
- package/README.md +230 -0
- package/dist/__tests__/checker.test.d.ts +2 -0
- package/dist/__tests__/checker.test.d.ts.map +1 -0
- package/dist/__tests__/checker.test.js +316 -0
- package/dist/__tests__/checker.test.js.map +1 -0
- package/dist/__tests__/compiler.test.d.ts +2 -0
- package/dist/__tests__/compiler.test.d.ts.map +1 -0
- package/dist/__tests__/compiler.test.js +260 -0
- package/dist/__tests__/compiler.test.js.map +1 -0
- package/dist/__tests__/generators.test.d.ts +2 -0
- package/dist/__tests__/generators.test.d.ts.map +1 -0
- package/dist/__tests__/generators.test.js +283 -0
- package/dist/__tests__/generators.test.js.map +1 -0
- package/dist/__tests__/interpreter.test.d.ts +2 -0
- package/dist/__tests__/interpreter.test.d.ts.map +1 -0
- package/dist/__tests__/interpreter.test.js +298 -0
- package/dist/__tests__/interpreter.test.js.map +1 -0
- package/dist/__tests__/lexer.test.d.ts +2 -0
- package/dist/__tests__/lexer.test.d.ts.map +1 -0
- package/dist/__tests__/lexer.test.js +89 -0
- package/dist/__tests__/lexer.test.js.map +1 -0
- package/dist/__tests__/parser.test.d.ts +2 -0
- package/dist/__tests__/parser.test.d.ts.map +1 -0
- package/dist/__tests__/parser.test.js +116 -0
- package/dist/__tests__/parser.test.js.map +1 -0
- package/dist/checker/checker.d.ts +37 -0
- package/dist/checker/checker.d.ts.map +1 -0
- package/dist/checker/checker.js +428 -0
- package/dist/checker/checker.js.map +1 -0
- package/dist/checker/index.d.ts +3 -0
- package/dist/checker/index.d.ts.map +1 -0
- package/dist/checker/index.js +2 -0
- package/dist/checker/index.js.map +1 -0
- package/dist/cli/commands/build.d.ts +2 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +173 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/check.d.ts +2 -0
- package/dist/cli/commands/check.d.ts.map +1 -0
- package/dist/cli/commands/check.js +79 -0
- package/dist/cli/commands/check.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +2 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +187 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/fmt.d.ts +2 -0
- package/dist/cli/commands/fmt.d.ts.map +1 -0
- package/dist/cli/commands/fmt.js +73 -0
- package/dist/cli/commands/fmt.js.map +1 -0
- package/dist/cli/commands/import.d.ts +2 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/import.js +99 -0
- package/dist/cli/commands/import.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +514 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/play.d.ts +2 -0
- package/dist/cli/commands/play.d.ts.map +1 -0
- package/dist/cli/commands/play.js +216 -0
- package/dist/cli/commands/play.js.map +1 -0
- package/dist/cli/commands/record.d.ts +2 -0
- package/dist/cli/commands/record.d.ts.map +1 -0
- package/dist/cli/commands/record.js +393 -0
- package/dist/cli/commands/record.js.map +1 -0
- package/dist/cli/commands/render.d.ts +2 -0
- package/dist/cli/commands/render.d.ts.map +1 -0
- package/dist/cli/commands/render.js +278 -0
- package/dist/cli/commands/render.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +93 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/compiler/compiler.d.ts +12 -0
- package/dist/compiler/compiler.d.ts.map +1 -0
- package/dist/compiler/compiler.js +146 -0
- package/dist/compiler/compiler.js.map +1 -0
- package/dist/compiler/index.d.ts +2 -0
- package/dist/compiler/index.d.ts.map +1 -0
- package/dist/compiler/index.js +2 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/config/config.d.ts +43 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +200 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +2 -0
- package/dist/config/index.js.map +1 -0
- package/dist/errors.d.ts +49 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +168 -0
- package/dist/errors.js.map +1 -0
- package/dist/formatter/formatter.d.ts +13 -0
- package/dist/formatter/formatter.d.ts.map +1 -0
- package/dist/formatter/formatter.js +242 -0
- package/dist/formatter/formatter.js.map +1 -0
- package/dist/formatter/index.d.ts +2 -0
- package/dist/formatter/index.d.ts.map +1 -0
- package/dist/formatter/index.js +2 -0
- package/dist/formatter/index.js.map +1 -0
- package/dist/generators/index.d.ts +5 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +5 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/midi.d.ts +3 -0
- package/dist/generators/midi.d.ts.map +1 -0
- package/dist/generators/midi.js +360 -0
- package/dist/generators/midi.js.map +1 -0
- package/dist/generators/musicxml.d.ts +3 -0
- package/dist/generators/musicxml.d.ts.map +1 -0
- package/dist/generators/musicxml.js +332 -0
- package/dist/generators/musicxml.js.map +1 -0
- package/dist/generators/tempo-midi.d.ts +3 -0
- package/dist/generators/tempo-midi.d.ts.map +1 -0
- package/dist/generators/tempo-midi.js +123 -0
- package/dist/generators/tempo-midi.js.map +1 -0
- package/dist/generators/vsqx.d.ts +3 -0
- package/dist/generators/vsqx.d.ts.map +1 -0
- package/dist/generators/vsqx.js +354 -0
- package/dist/generators/vsqx.js.map +1 -0
- package/dist/importers/index.d.ts +2 -0
- package/dist/importers/index.d.ts.map +1 -0
- package/dist/importers/index.js +3 -0
- package/dist/importers/index.js.map +1 -0
- package/dist/importers/musicxml.d.ts +4 -0
- package/dist/importers/musicxml.d.ts.map +1 -0
- package/dist/importers/musicxml.js +392 -0
- package/dist/importers/musicxml.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/interpreter/builtins/algorithmic.d.ts +12 -0
- package/dist/interpreter/builtins/algorithmic.d.ts.map +1 -0
- package/dist/interpreter/builtins/algorithmic.js +244 -0
- package/dist/interpreter/builtins/algorithmic.js.map +1 -0
- package/dist/interpreter/builtins/audio.d.ts +10 -0
- package/dist/interpreter/builtins/audio.d.ts.map +1 -0
- package/dist/interpreter/builtins/audio.js +169 -0
- package/dist/interpreter/builtins/audio.js.map +1 -0
- package/dist/interpreter/builtins/core.d.ts +15 -0
- package/dist/interpreter/builtins/core.d.ts.map +1 -0
- package/dist/interpreter/builtins/core.js +265 -0
- package/dist/interpreter/builtins/core.js.map +1 -0
- package/dist/interpreter/builtins/dynamics.d.ts +8 -0
- package/dist/interpreter/builtins/dynamics.d.ts.map +1 -0
- package/dist/interpreter/builtins/dynamics.js +86 -0
- package/dist/interpreter/builtins/dynamics.js.map +1 -0
- package/dist/interpreter/builtins/effects.d.ts +16 -0
- package/dist/interpreter/builtins/effects.d.ts.map +1 -0
- package/dist/interpreter/builtins/effects.js +220 -0
- package/dist/interpreter/builtins/effects.js.map +1 -0
- package/dist/interpreter/builtins/index.d.ts +16 -0
- package/dist/interpreter/builtins/index.d.ts.map +1 -0
- package/dist/interpreter/builtins/index.js +17 -0
- package/dist/interpreter/builtins/index.js.map +1 -0
- package/dist/interpreter/builtins/layout.d.ts +12 -0
- package/dist/interpreter/builtins/layout.d.ts.map +1 -0
- package/dist/interpreter/builtins/layout.js +175 -0
- package/dist/interpreter/builtins/layout.js.map +1 -0
- package/dist/interpreter/builtins/live.d.ts +11 -0
- package/dist/interpreter/builtins/live.d.ts.map +1 -0
- package/dist/interpreter/builtins/live.js +125 -0
- package/dist/interpreter/builtins/live.js.map +1 -0
- package/dist/interpreter/builtins/midi.d.ts +16 -0
- package/dist/interpreter/builtins/midi.d.ts.map +1 -0
- package/dist/interpreter/builtins/midi.js +320 -0
- package/dist/interpreter/builtins/midi.js.map +1 -0
- package/dist/interpreter/builtins/mixing.d.ts +6 -0
- package/dist/interpreter/builtins/mixing.d.ts.map +1 -0
- package/dist/interpreter/builtins/mixing.js +62 -0
- package/dist/interpreter/builtins/mixing.js.map +1 -0
- package/dist/interpreter/builtins/notation.d.ts +24 -0
- package/dist/interpreter/builtins/notation.d.ts.map +1 -0
- package/dist/interpreter/builtins/notation.js +251 -0
- package/dist/interpreter/builtins/notation.js.map +1 -0
- package/dist/interpreter/builtins/ornaments.d.ts +8 -0
- package/dist/interpreter/builtins/ornaments.d.ts.map +1 -0
- package/dist/interpreter/builtins/ornaments.js +155 -0
- package/dist/interpreter/builtins/ornaments.js.map +1 -0
- package/dist/interpreter/builtins/techniques.d.ts +11 -0
- package/dist/interpreter/builtins/techniques.d.ts.map +1 -0
- package/dist/interpreter/builtins/techniques.js +234 -0
- package/dist/interpreter/builtins/techniques.js.map +1 -0
- package/dist/interpreter/builtins/tuning.d.ts +7 -0
- package/dist/interpreter/builtins/tuning.d.ts.map +1 -0
- package/dist/interpreter/builtins/tuning.js +52 -0
- package/dist/interpreter/builtins/tuning.js.map +1 -0
- package/dist/interpreter/builtins/types.d.ts +27 -0
- package/dist/interpreter/builtins/types.d.ts.map +1 -0
- package/dist/interpreter/builtins/types.js +3 -0
- package/dist/interpreter/builtins/types.js.map +1 -0
- package/dist/interpreter/builtins/vocaloid.d.ts +10 -0
- package/dist/interpreter/builtins/vocaloid.d.ts.map +1 -0
- package/dist/interpreter/builtins/vocaloid.js +165 -0
- package/dist/interpreter/builtins/vocaloid.js.map +1 -0
- package/dist/interpreter/index.d.ts +4 -0
- package/dist/interpreter/index.d.ts.map +1 -0
- package/dist/interpreter/index.js +4 -0
- package/dist/interpreter/index.js.map +1 -0
- package/dist/interpreter/interpreter.d.ts +305 -0
- package/dist/interpreter/interpreter.d.ts.map +1 -0
- package/dist/interpreter/interpreter.js +8463 -0
- package/dist/interpreter/interpreter.js.map +1 -0
- package/dist/interpreter/runtime.d.ts +67 -0
- package/dist/interpreter/runtime.d.ts.map +1 -0
- package/dist/interpreter/runtime.js +88 -0
- package/dist/interpreter/runtime.js.map +1 -0
- package/dist/interpreter/scope.d.ts +21 -0
- package/dist/interpreter/scope.d.ts.map +1 -0
- package/dist/interpreter/scope.js +60 -0
- package/dist/interpreter/scope.js.map +1 -0
- package/dist/interpreter/trackState.d.ts +205 -0
- package/dist/interpreter/trackState.d.ts.map +1 -0
- package/dist/interpreter/trackState.js +12 -0
- package/dist/interpreter/trackState.js.map +1 -0
- package/dist/lexer/index.d.ts +2 -0
- package/dist/lexer/index.d.ts.map +1 -0
- package/dist/lexer/index.js +2 -0
- package/dist/lexer/index.js.map +1 -0
- package/dist/lexer/lexer.d.ts +30 -0
- package/dist/lexer/lexer.d.ts.map +1 -0
- package/dist/lexer/lexer.js +385 -0
- package/dist/lexer/lexer.js.map +1 -0
- package/dist/parser/index.d.ts +2 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +2 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/parser.d.ts +55 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +896 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/types/ast.d.ts +220 -0
- package/dist/types/ast.d.ts.map +1 -0
- package/dist/types/ast.js +3 -0
- package/dist/types/ast.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/ir/advanced.d.ts +491 -0
- package/dist/types/ir/advanced.d.ts.map +1 -0
- package/dist/types/ir/advanced.js +3 -0
- package/dist/types/ir/advanced.js.map +1 -0
- package/dist/types/ir/algorithmic.d.ts +48 -0
- package/dist/types/ir/algorithmic.d.ts.map +1 -0
- package/dist/types/ir/algorithmic.js +3 -0
- package/dist/types/ir/algorithmic.js.map +1 -0
- package/dist/types/ir/analysis.d.ts +34 -0
- package/dist/types/ir/analysis.d.ts.map +1 -0
- package/dist/types/ir/analysis.js +3 -0
- package/dist/types/ir/analysis.js.map +1 -0
- package/dist/types/ir/audio.d.ts +249 -0
- package/dist/types/ir/audio.d.ts.map +1 -0
- package/dist/types/ir/audio.js +3 -0
- package/dist/types/ir/audio.js.map +1 -0
- package/dist/types/ir/automation.d.ts +46 -0
- package/dist/types/ir/automation.d.ts.map +1 -0
- package/dist/types/ir/automation.js +3 -0
- package/dist/types/ir/automation.js.map +1 -0
- package/dist/types/ir/collaboration.d.ts +20 -0
- package/dist/types/ir/collaboration.d.ts.map +1 -0
- package/dist/types/ir/collaboration.js +3 -0
- package/dist/types/ir/collaboration.js.map +1 -0
- package/dist/types/ir/core.d.ts +153 -0
- package/dist/types/ir/core.d.ts.map +1 -0
- package/dist/types/ir/core.js +3 -0
- package/dist/types/ir/core.js.map +1 -0
- package/dist/types/ir/effects.d.ts +169 -0
- package/dist/types/ir/effects.d.ts.map +1 -0
- package/dist/types/ir/effects.js +3 -0
- package/dist/types/ir/effects.js.map +1 -0
- package/dist/types/ir/extended.d.ts +104 -0
- package/dist/types/ir/extended.d.ts.map +1 -0
- package/dist/types/ir/extended.js +3 -0
- package/dist/types/ir/extended.js.map +1 -0
- package/dist/types/ir/index.d.ts +16 -0
- package/dist/types/ir/index.d.ts.map +1 -0
- package/dist/types/ir/index.js +17 -0
- package/dist/types/ir/index.js.map +1 -0
- package/dist/types/ir/mastering.d.ts +86 -0
- package/dist/types/ir/mastering.d.ts.map +1 -0
- package/dist/types/ir/mastering.js +3 -0
- package/dist/types/ir/mastering.js.map +1 -0
- package/dist/types/ir/midi.d.ts +79 -0
- package/dist/types/ir/midi.d.ts.map +1 -0
- package/dist/types/ir/midi.js +3 -0
- package/dist/types/ir/midi.js.map +1 -0
- package/dist/types/ir/notation.d.ts +963 -0
- package/dist/types/ir/notation.d.ts.map +1 -0
- package/dist/types/ir/notation.js +3 -0
- package/dist/types/ir/notation.js.map +1 -0
- package/dist/types/ir/recording.d.ts +48 -0
- package/dist/types/ir/recording.d.ts.map +1 -0
- package/dist/types/ir/recording.js +3 -0
- package/dist/types/ir/recording.js.map +1 -0
- package/dist/types/ir/sampling.d.ts +59 -0
- package/dist/types/ir/sampling.d.ts.map +1 -0
- package/dist/types/ir/sampling.js +3 -0
- package/dist/types/ir/sampling.js.map +1 -0
- package/dist/types/ir/sequencing.d.ts +118 -0
- package/dist/types/ir/sequencing.d.ts.map +1 -0
- package/dist/types/ir/sequencing.js +3 -0
- package/dist/types/ir/sequencing.js.map +1 -0
- package/dist/types/ir/sync.d.ts +39 -0
- package/dist/types/ir/sync.d.ts.map +1 -0
- package/dist/types/ir/sync.js +3 -0
- package/dist/types/ir/sync.js.map +1 -0
- package/dist/types/ir.d.ts +2 -0
- package/dist/types/ir.d.ts.map +1 -0
- package/dist/types/ir.js +3 -0
- package/dist/types/ir.js.map +1 -0
- package/dist/types/token.d.ts +72 -0
- package/dist/types/token.d.ts.map +1 -0
- package/dist/types/token.js +90 -0
- package/dist/types/token.js.map +1 -0
- package/dist/utils/stdlib.d.ts +18 -0
- package/dist/utils/stdlib.d.ts.map +1 -0
- package/dist/utils/stdlib.js +51 -0
- package/dist/utils/stdlib.js.map +1 -0
- package/lib/articulation.mf +46 -0
- package/lib/composition.mf +299 -0
- package/lib/curves.mf +183 -0
- package/lib/dynamics.mf +141 -0
- package/lib/expression.mf +221 -0
- package/lib/genres.mf +348 -0
- package/lib/notation.mf +224 -0
- package/lib/ornaments.mf +98 -0
- package/lib/patterns.mf +170 -0
- package/lib/rhythm.mf +269 -0
- package/lib/theory.mf +257 -0
- package/lib/utils.mf +140 -0
- package/package.json +49 -0
|
@@ -0,0 +1,963 @@
|
|
|
1
|
+
import type { NoteEvent, TrackEvent, MidiTrack } from './core.js';
|
|
2
|
+
export type DynamicMark = 'ppp' | 'pp' | 'p' | 'mp' | 'mf' | 'f' | 'ff' | 'fff' | 'sfz' | 'fp';
|
|
3
|
+
export interface DynamicEvent {
|
|
4
|
+
type: 'dynamic';
|
|
5
|
+
tick: number;
|
|
6
|
+
mark: DynamicMark;
|
|
7
|
+
}
|
|
8
|
+
export interface SlurEvent {
|
|
9
|
+
type: 'slur';
|
|
10
|
+
tick: number;
|
|
11
|
+
endTick: number;
|
|
12
|
+
number?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface CrescendoEvent {
|
|
15
|
+
type: 'crescendo' | 'decrescendo';
|
|
16
|
+
tick: number;
|
|
17
|
+
endTick: number;
|
|
18
|
+
}
|
|
19
|
+
export interface NoteEventExtended extends NoteEvent {
|
|
20
|
+
slurStart?: boolean;
|
|
21
|
+
slurEnd?: boolean;
|
|
22
|
+
tieStart?: boolean;
|
|
23
|
+
tieEnd?: boolean;
|
|
24
|
+
dynamic?: DynamicMark;
|
|
25
|
+
}
|
|
26
|
+
export interface NotationEvents {
|
|
27
|
+
dynamics: DynamicEvent[];
|
|
28
|
+
slurs: SlurEvent[];
|
|
29
|
+
crescendos: CrescendoEvent[];
|
|
30
|
+
}
|
|
31
|
+
export interface TupletInfo {
|
|
32
|
+
actual: number;
|
|
33
|
+
normal: number;
|
|
34
|
+
type?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface GraceNoteEvent {
|
|
37
|
+
type: 'graceNote';
|
|
38
|
+
tick: number;
|
|
39
|
+
key: number;
|
|
40
|
+
slash?: boolean;
|
|
41
|
+
lyric?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface FermataEvent {
|
|
44
|
+
type: 'fermata';
|
|
45
|
+
tick: number;
|
|
46
|
+
shape?: 'normal' | 'angled' | 'square';
|
|
47
|
+
}
|
|
48
|
+
export interface RepeatEvent {
|
|
49
|
+
type: 'repeat';
|
|
50
|
+
tick: number;
|
|
51
|
+
kind: 'start' | 'end' | 'dc' | 'ds' | 'fine' | 'coda' | 'segno' | 'toCoda';
|
|
52
|
+
}
|
|
53
|
+
export interface OttavaEvent {
|
|
54
|
+
type: 'ottava';
|
|
55
|
+
tick: number;
|
|
56
|
+
endTick: number;
|
|
57
|
+
shift: 8 | -8 | 15 | -15;
|
|
58
|
+
}
|
|
59
|
+
export interface VoiceInfo {
|
|
60
|
+
voice: number;
|
|
61
|
+
}
|
|
62
|
+
export interface NoteEventFull extends NoteEvent {
|
|
63
|
+
slurStart?: boolean;
|
|
64
|
+
slurEnd?: boolean;
|
|
65
|
+
tieStart?: boolean;
|
|
66
|
+
tieEnd?: boolean;
|
|
67
|
+
dynamic?: DynamicMark;
|
|
68
|
+
tuplet?: TupletInfo;
|
|
69
|
+
graceNotes?: GraceNoteEvent[];
|
|
70
|
+
fermata?: boolean;
|
|
71
|
+
voice?: number;
|
|
72
|
+
ottavaShift?: number;
|
|
73
|
+
}
|
|
74
|
+
export interface VocaloidPortamentoEvent {
|
|
75
|
+
type: 'portamento';
|
|
76
|
+
tick: number;
|
|
77
|
+
duration: number;
|
|
78
|
+
mode?: 'linear' | 'curve';
|
|
79
|
+
}
|
|
80
|
+
export interface VocaloidGrowlEvent {
|
|
81
|
+
type: 'growl';
|
|
82
|
+
tick: number;
|
|
83
|
+
dur: number;
|
|
84
|
+
intensity: number;
|
|
85
|
+
}
|
|
86
|
+
export interface VocaloidXSynthEvent {
|
|
87
|
+
type: 'xsynth';
|
|
88
|
+
tick: number;
|
|
89
|
+
voice1: string;
|
|
90
|
+
voice2: string;
|
|
91
|
+
balance: number;
|
|
92
|
+
}
|
|
93
|
+
export interface GrandStaffInfo {
|
|
94
|
+
upperClef: 'treble' | 'alto' | 'tenor' | 'bass';
|
|
95
|
+
lowerClef: 'treble' | 'alto' | 'tenor' | 'bass';
|
|
96
|
+
splitPoint?: number;
|
|
97
|
+
}
|
|
98
|
+
export interface TablatureInfo {
|
|
99
|
+
strings: number;
|
|
100
|
+
tuning: number[];
|
|
101
|
+
instrument: 'guitar' | 'bass' | 'ukulele' | 'custom';
|
|
102
|
+
}
|
|
103
|
+
export interface TabNoteEvent extends NoteEvent {
|
|
104
|
+
string: number;
|
|
105
|
+
fret: number;
|
|
106
|
+
technique?: TabTechnique;
|
|
107
|
+
}
|
|
108
|
+
export type TabTechnique = 'hammer-on' | 'pull-off' | 'slide-up' | 'slide-down' | 'bend' | 'release' | 'vibrato' | 'tap' | 'harmonic' | 'palm-mute';
|
|
109
|
+
export interface ChordSymbolEvent {
|
|
110
|
+
type: 'chordSymbol';
|
|
111
|
+
tick: number;
|
|
112
|
+
root: string;
|
|
113
|
+
quality: ChordQuality;
|
|
114
|
+
bass?: string;
|
|
115
|
+
extensions?: string[];
|
|
116
|
+
}
|
|
117
|
+
export type ChordQuality = 'major' | 'minor' | 'dim' | 'aug' | 'maj7' | 'min7' | '7' | 'dim7' | 'min7b5' | 'aug7' | 'sus2' | 'sus4' | 'add9' | '6' | 'min6';
|
|
118
|
+
export interface FiguredBassEvent {
|
|
119
|
+
type: 'figuredBass';
|
|
120
|
+
tick: number;
|
|
121
|
+
figures: string[];
|
|
122
|
+
}
|
|
123
|
+
export interface MarkerEvent {
|
|
124
|
+
type: 'marker';
|
|
125
|
+
tick: number;
|
|
126
|
+
name: string;
|
|
127
|
+
color?: string;
|
|
128
|
+
}
|
|
129
|
+
export interface CuePointEvent {
|
|
130
|
+
type: 'cuePoint';
|
|
131
|
+
tick: number;
|
|
132
|
+
name: string;
|
|
133
|
+
action?: 'start' | 'stop' | 'loop';
|
|
134
|
+
}
|
|
135
|
+
export interface Pattern {
|
|
136
|
+
id: string;
|
|
137
|
+
name: string;
|
|
138
|
+
length: number;
|
|
139
|
+
events: TrackEvent[];
|
|
140
|
+
}
|
|
141
|
+
export interface PatternInstance {
|
|
142
|
+
patternId: string;
|
|
143
|
+
tick: number;
|
|
144
|
+
repetitions?: number;
|
|
145
|
+
}
|
|
146
|
+
export interface AudioClipEvent {
|
|
147
|
+
type: 'audioClip';
|
|
148
|
+
tick: number;
|
|
149
|
+
filePath: string;
|
|
150
|
+
duration: number;
|
|
151
|
+
gain?: number;
|
|
152
|
+
pan?: number;
|
|
153
|
+
fadeIn?: number;
|
|
154
|
+
fadeOut?: number;
|
|
155
|
+
}
|
|
156
|
+
export interface ExtendedMidiTrack extends MidiTrack {
|
|
157
|
+
grandStaff?: GrandStaffInfo;
|
|
158
|
+
tablature?: TablatureInfo;
|
|
159
|
+
chordSymbols?: ChordSymbolEvent[];
|
|
160
|
+
figuredBass?: FiguredBassEvent[];
|
|
161
|
+
markers?: MarkerEvent[];
|
|
162
|
+
patterns?: PatternInstance[];
|
|
163
|
+
audioClips?: AudioClipEvent[];
|
|
164
|
+
effects?: import('./effects.js').AudioEffect[];
|
|
165
|
+
}
|
|
166
|
+
export interface LyricVerse {
|
|
167
|
+
verse: number;
|
|
168
|
+
text: string;
|
|
169
|
+
}
|
|
170
|
+
export interface MultiVerseLyricEvent {
|
|
171
|
+
type: 'multiVerseLyric';
|
|
172
|
+
tick: number;
|
|
173
|
+
verses: LyricVerse[];
|
|
174
|
+
}
|
|
175
|
+
export interface OssiaEvent {
|
|
176
|
+
type: 'ossia';
|
|
177
|
+
tick: number;
|
|
178
|
+
endTick: number;
|
|
179
|
+
notes: NoteEvent[];
|
|
180
|
+
}
|
|
181
|
+
export interface CueNoteEvent {
|
|
182
|
+
type: 'cueNote';
|
|
183
|
+
tick: number;
|
|
184
|
+
dur: number;
|
|
185
|
+
key: number;
|
|
186
|
+
instrument?: string;
|
|
187
|
+
}
|
|
188
|
+
export interface InstrumentChangeEvent {
|
|
189
|
+
type: 'instrumentChange';
|
|
190
|
+
tick: number;
|
|
191
|
+
instrument: string;
|
|
192
|
+
program?: number;
|
|
193
|
+
}
|
|
194
|
+
export type PercussionNotehead = 'normal' | 'x' | 'circle-x' | 'diamond' | 'triangle' | 'slash' | 'square' | 'cross';
|
|
195
|
+
export interface PercussionNoteEvent extends NoteEvent {
|
|
196
|
+
notehead?: PercussionNotehead;
|
|
197
|
+
stem?: 'up' | 'down' | 'none';
|
|
198
|
+
}
|
|
199
|
+
export type BowingMark = 'up' | 'down' | 'detache' | 'martele' | 'spiccato' | 'col-legno' | 'sul-pont' | 'sul-tasto';
|
|
200
|
+
export interface StringTechniqueEvent {
|
|
201
|
+
type: 'stringTechnique';
|
|
202
|
+
tick: number;
|
|
203
|
+
technique: BowingMark | 'harmonics' | 'pizz' | 'arco' | 'snap-pizz' | 'tremolo' | 'vibrato';
|
|
204
|
+
string?: number;
|
|
205
|
+
}
|
|
206
|
+
export type WindTechnique = 'breath' | 'mute' | 'open' | 'stopped' | 'flutter' | 'double-tongue' | 'triple-tongue';
|
|
207
|
+
export interface WindTechniqueEvent {
|
|
208
|
+
type: 'windTechnique';
|
|
209
|
+
tick: number;
|
|
210
|
+
technique: WindTechnique;
|
|
211
|
+
}
|
|
212
|
+
export type GuitarTechnique = 'bend' | 'release' | 'hammer-on' | 'pull-off' | 'slide' | 'vibrato' | 'tap' | 'natural-harmonic' | 'artificial-harmonic' | 'palm-mute' | 'let-ring';
|
|
213
|
+
export interface GuitarBendEvent {
|
|
214
|
+
type: 'guitarBend';
|
|
215
|
+
tick: number;
|
|
216
|
+
bendAmount: number;
|
|
217
|
+
release?: boolean;
|
|
218
|
+
}
|
|
219
|
+
export interface HarpPedalEvent {
|
|
220
|
+
type: 'harpPedal';
|
|
221
|
+
tick: number;
|
|
222
|
+
pedals: [number, number, number, number, number, number, number];
|
|
223
|
+
}
|
|
224
|
+
export interface PageBreakEvent {
|
|
225
|
+
type: 'pageBreak';
|
|
226
|
+
tick: number;
|
|
227
|
+
}
|
|
228
|
+
export interface SystemBreakEvent {
|
|
229
|
+
type: 'systemBreak';
|
|
230
|
+
tick: number;
|
|
231
|
+
}
|
|
232
|
+
export interface StaffSpacingEvent {
|
|
233
|
+
type: 'staffSpacing';
|
|
234
|
+
tick: number;
|
|
235
|
+
above?: number;
|
|
236
|
+
below?: number;
|
|
237
|
+
}
|
|
238
|
+
export interface TextAnnotation {
|
|
239
|
+
type: 'textAnnotation';
|
|
240
|
+
tick: number;
|
|
241
|
+
text: string;
|
|
242
|
+
placement: 'above' | 'below';
|
|
243
|
+
style?: 'normal' | 'italic' | 'bold' | 'expression';
|
|
244
|
+
fontSize?: number;
|
|
245
|
+
}
|
|
246
|
+
export interface RehearsalMark {
|
|
247
|
+
type: 'rehearsalMark';
|
|
248
|
+
tick: number;
|
|
249
|
+
label: string;
|
|
250
|
+
enclosure?: 'rectangle' | 'circle' | 'none';
|
|
251
|
+
}
|
|
252
|
+
export interface DirectionText {
|
|
253
|
+
type: 'directionText';
|
|
254
|
+
tick: number;
|
|
255
|
+
text: string;
|
|
256
|
+
}
|
|
257
|
+
export interface AdditiveTimeSig {
|
|
258
|
+
type: 'additiveTimeSig';
|
|
259
|
+
tick: number;
|
|
260
|
+
groups: number[];
|
|
261
|
+
denominator: number;
|
|
262
|
+
}
|
|
263
|
+
export interface PolymetricSection {
|
|
264
|
+
type: 'polymetric';
|
|
265
|
+
tick: number;
|
|
266
|
+
endTick: number;
|
|
267
|
+
trackTimeSigs: Record<string, {
|
|
268
|
+
numerator: number;
|
|
269
|
+
denominator: number;
|
|
270
|
+
}>;
|
|
271
|
+
}
|
|
272
|
+
export interface ProportionalNotation {
|
|
273
|
+
type: 'proportionalNotation';
|
|
274
|
+
tick: number;
|
|
275
|
+
endTick: number;
|
|
276
|
+
spacePerBeat: number;
|
|
277
|
+
}
|
|
278
|
+
export interface GraphicNotationEvent {
|
|
279
|
+
type: 'graphicNotation';
|
|
280
|
+
tick: number;
|
|
281
|
+
endTick: number;
|
|
282
|
+
shape: 'line' | 'curve' | 'cluster' | 'box' | 'arrow' | 'custom';
|
|
283
|
+
points?: {
|
|
284
|
+
x: number;
|
|
285
|
+
y: number;
|
|
286
|
+
}[];
|
|
287
|
+
svgPath?: string;
|
|
288
|
+
description?: string;
|
|
289
|
+
}
|
|
290
|
+
export interface AleatoricBox {
|
|
291
|
+
type: 'aleatoricBox';
|
|
292
|
+
tick: number;
|
|
293
|
+
endTick: number;
|
|
294
|
+
contents: TrackEvent[];
|
|
295
|
+
instructions?: string;
|
|
296
|
+
duration: 'approximate' | 'measured' | 'free';
|
|
297
|
+
repeat?: number;
|
|
298
|
+
}
|
|
299
|
+
export interface CutawayScore {
|
|
300
|
+
type: 'cutaway';
|
|
301
|
+
tick: number;
|
|
302
|
+
endTick: number;
|
|
303
|
+
trackId: string;
|
|
304
|
+
showWhenPlaying: boolean;
|
|
305
|
+
}
|
|
306
|
+
export interface TransposingInstrument {
|
|
307
|
+
type: 'transposingInstrument';
|
|
308
|
+
trackId: string;
|
|
309
|
+
writtenPitch: 'concert' | 'transposed';
|
|
310
|
+
transposition: number;
|
|
311
|
+
clefOctave?: number;
|
|
312
|
+
}
|
|
313
|
+
export type ClefType = 'treble' | 'bass' | 'alto' | 'tenor' | 'percussion' | 'tab' | 'treble8va' | 'treble8vb' | 'bass8va' | 'bass8vb';
|
|
314
|
+
export interface ClefChangeEvent {
|
|
315
|
+
type: 'clefChange';
|
|
316
|
+
tick: number;
|
|
317
|
+
clef: ClefType;
|
|
318
|
+
}
|
|
319
|
+
export type KeyMode = 'major' | 'minor';
|
|
320
|
+
export interface KeySignatureEvent {
|
|
321
|
+
type: 'keySignature';
|
|
322
|
+
tick: number;
|
|
323
|
+
fifths: number;
|
|
324
|
+
mode: KeyMode;
|
|
325
|
+
root?: string;
|
|
326
|
+
}
|
|
327
|
+
export interface FingeringEvent {
|
|
328
|
+
type: 'fingering';
|
|
329
|
+
tick: number;
|
|
330
|
+
noteKey: number;
|
|
331
|
+
finger: number | string;
|
|
332
|
+
hand?: 'left' | 'right';
|
|
333
|
+
position?: 'above' | 'below';
|
|
334
|
+
}
|
|
335
|
+
export interface MultiRestEvent {
|
|
336
|
+
type: 'multiRest';
|
|
337
|
+
tick: number;
|
|
338
|
+
measures: number;
|
|
339
|
+
}
|
|
340
|
+
export interface SlashNotationEvent {
|
|
341
|
+
type: 'slashNotation';
|
|
342
|
+
tick: number;
|
|
343
|
+
endTick: number;
|
|
344
|
+
slashType: 'rhythmic' | 'beat';
|
|
345
|
+
}
|
|
346
|
+
export type BarlineType = 'single' | 'double' | 'final' | 'repeat-start' | 'repeat-end' | 'repeat-both' | 'dashed' | 'tick' | 'short' | 'none';
|
|
347
|
+
export interface BarlineEvent {
|
|
348
|
+
type: 'barline';
|
|
349
|
+
tick: number;
|
|
350
|
+
style: BarlineType;
|
|
351
|
+
}
|
|
352
|
+
export type TempoMarkingType = 'grave' | 'largo' | 'lento' | 'adagio' | 'andante' | 'andantino' | 'moderato' | 'allegretto' | 'allegro' | 'vivace' | 'presto' | 'prestissimo' | 'accelerando' | 'ritardando' | 'rallentando' | 'a-tempo' | 'rubato' | 'custom';
|
|
353
|
+
export interface TempoTextEvent {
|
|
354
|
+
type: 'tempoText';
|
|
355
|
+
tick: number;
|
|
356
|
+
marking: TempoMarkingType;
|
|
357
|
+
customText?: string;
|
|
358
|
+
bpm?: number;
|
|
359
|
+
}
|
|
360
|
+
export interface HideEmptyStavesEvent {
|
|
361
|
+
type: 'hideEmptyStaves';
|
|
362
|
+
tick: number;
|
|
363
|
+
enabled: boolean;
|
|
364
|
+
firstSystemExempt?: boolean;
|
|
365
|
+
}
|
|
366
|
+
export type VocalStyleType = 'soft' | 'normal' | 'power' | 'falsetto' | 'whisper' | 'breathy' | 'belt' | 'head' | 'chest';
|
|
367
|
+
export interface VocalStyleEvent {
|
|
368
|
+
type: 'vocalStyle';
|
|
369
|
+
tick: number;
|
|
370
|
+
style: VocalStyleType;
|
|
371
|
+
intensity?: number;
|
|
372
|
+
}
|
|
373
|
+
export interface NoteEnvelopeEvent {
|
|
374
|
+
type: 'noteEnvelope';
|
|
375
|
+
tick: number;
|
|
376
|
+
noteKey?: number;
|
|
377
|
+
attack?: number;
|
|
378
|
+
decay?: number;
|
|
379
|
+
sustain?: number;
|
|
380
|
+
release?: number;
|
|
381
|
+
}
|
|
382
|
+
export interface VocalTensionEvent {
|
|
383
|
+
type: 'vocalTension';
|
|
384
|
+
tick: number;
|
|
385
|
+
tension: number;
|
|
386
|
+
}
|
|
387
|
+
export interface MelismaEvent {
|
|
388
|
+
type: 'melisma';
|
|
389
|
+
tick: number;
|
|
390
|
+
endTick: number;
|
|
391
|
+
lyric: string;
|
|
392
|
+
}
|
|
393
|
+
export type ArticulationType = 'staccato' | 'legato' | 'accent' | 'tenuto' | 'marcato' | 'staccatissimo' | 'fermata' | 'breath' | 'caesura';
|
|
394
|
+
export interface StackedArticulationEvent {
|
|
395
|
+
type: 'stackedArticulation';
|
|
396
|
+
tick: number;
|
|
397
|
+
noteKey: number;
|
|
398
|
+
articulations: ArticulationType[];
|
|
399
|
+
}
|
|
400
|
+
export interface TrillEvent {
|
|
401
|
+
type: 'trill';
|
|
402
|
+
tick: number;
|
|
403
|
+
dur: number;
|
|
404
|
+
mainNote: number;
|
|
405
|
+
auxNote?: number;
|
|
406
|
+
speed?: number;
|
|
407
|
+
}
|
|
408
|
+
export type MordentType = 'upper' | 'lower' | 'inverted';
|
|
409
|
+
export interface MordentEvent {
|
|
410
|
+
type: 'mordent';
|
|
411
|
+
tick: number;
|
|
412
|
+
noteKey: number;
|
|
413
|
+
mordentType: MordentType;
|
|
414
|
+
}
|
|
415
|
+
export interface TurnEvent {
|
|
416
|
+
type: 'turn';
|
|
417
|
+
tick: number;
|
|
418
|
+
noteKey: number;
|
|
419
|
+
inverted?: boolean;
|
|
420
|
+
delayed?: boolean;
|
|
421
|
+
}
|
|
422
|
+
export type ArpeggioDirection = 'up' | 'down' | 'upDown' | 'downUp';
|
|
423
|
+
export interface ArpeggioEvent {
|
|
424
|
+
type: 'arpeggio';
|
|
425
|
+
tick: number;
|
|
426
|
+
notes: number[];
|
|
427
|
+
direction: ArpeggioDirection;
|
|
428
|
+
dur: number;
|
|
429
|
+
}
|
|
430
|
+
export interface GlissandoEvent {
|
|
431
|
+
type: 'glissando';
|
|
432
|
+
tick: number;
|
|
433
|
+
startNote: number;
|
|
434
|
+
endNote: number;
|
|
435
|
+
dur: number;
|
|
436
|
+
style?: 'line' | 'wavy';
|
|
437
|
+
chromatic?: boolean;
|
|
438
|
+
}
|
|
439
|
+
export type TremoloType = 'measured' | 'unmeasured';
|
|
440
|
+
export interface TremoloEvent {
|
|
441
|
+
type: 'tremolo';
|
|
442
|
+
tick: number;
|
|
443
|
+
noteKey: number;
|
|
444
|
+
dur: number;
|
|
445
|
+
strokes: number;
|
|
446
|
+
tremoloType: TremoloType;
|
|
447
|
+
secondNote?: number;
|
|
448
|
+
}
|
|
449
|
+
export type HarmonicType = 'natural' | 'artificial' | 'pinch' | 'tap';
|
|
450
|
+
export interface HarmonicEvent {
|
|
451
|
+
type: 'harmonic';
|
|
452
|
+
tick: number;
|
|
453
|
+
noteKey: number;
|
|
454
|
+
touchedNote?: number;
|
|
455
|
+
harmonicType: HarmonicType;
|
|
456
|
+
}
|
|
457
|
+
export type PedalType = 'sustain' | 'sostenuto' | 'unaCorda';
|
|
458
|
+
export type PedalAction = 'start' | 'end' | 'change' | 'half';
|
|
459
|
+
export interface PedalEvent {
|
|
460
|
+
type: 'pedal';
|
|
461
|
+
tick: number;
|
|
462
|
+
pedalType: PedalType;
|
|
463
|
+
action: PedalAction;
|
|
464
|
+
level?: number;
|
|
465
|
+
}
|
|
466
|
+
export interface SwingEvent {
|
|
467
|
+
type: 'swing';
|
|
468
|
+
tick: number;
|
|
469
|
+
ratio: number;
|
|
470
|
+
}
|
|
471
|
+
export interface ProbabilityEvent {
|
|
472
|
+
type: 'probability';
|
|
473
|
+
tick: number;
|
|
474
|
+
noteKey?: number;
|
|
475
|
+
probability: number;
|
|
476
|
+
}
|
|
477
|
+
export type FeatheredBeamDirection = 'accel' | 'rit';
|
|
478
|
+
export interface FeatheredBeamEvent {
|
|
479
|
+
type: 'featheredBeam';
|
|
480
|
+
tick: number;
|
|
481
|
+
endTick: number;
|
|
482
|
+
direction: FeatheredBeamDirection;
|
|
483
|
+
}
|
|
484
|
+
export type QuarterToneAccidental = 'quarterSharp' | 'quarterFlat' | 'threeQuarterSharp' | 'threeQuarterFlat';
|
|
485
|
+
export interface QuarterToneEvent {
|
|
486
|
+
type: 'quarterTone';
|
|
487
|
+
tick: number;
|
|
488
|
+
noteKey: number;
|
|
489
|
+
cents: number;
|
|
490
|
+
accidental?: QuarterToneAccidental;
|
|
491
|
+
}
|
|
492
|
+
export interface ClusterEvent {
|
|
493
|
+
type: 'cluster';
|
|
494
|
+
tick: number;
|
|
495
|
+
lowNote: number;
|
|
496
|
+
highNote: number;
|
|
497
|
+
dur: number;
|
|
498
|
+
style?: 'chromatic' | 'diatonic' | 'black' | 'white';
|
|
499
|
+
}
|
|
500
|
+
export interface SprechstimmeEvent {
|
|
501
|
+
type: 'sprechstimme';
|
|
502
|
+
tick: number;
|
|
503
|
+
dur: number;
|
|
504
|
+
noteKey: number;
|
|
505
|
+
text: string;
|
|
506
|
+
}
|
|
507
|
+
export type NoteheadType = 'normal' | 'x' | 'diamond' | 'triangle' | 'slash' | 'square' | 'circle' | 'circleX' | 'do' | 're' | 'mi' | 'fa' | 'sol' | 'la' | 'ti';
|
|
508
|
+
export interface CustomNoteheadEvent {
|
|
509
|
+
type: 'customNotehead';
|
|
510
|
+
tick: number;
|
|
511
|
+
noteKey: number;
|
|
512
|
+
notehead: NoteheadType;
|
|
513
|
+
}
|
|
514
|
+
export type BracketType = 'bracket' | 'brace' | 'line' | 'square';
|
|
515
|
+
export interface BracketGroupEvent {
|
|
516
|
+
type: 'bracketGroup';
|
|
517
|
+
trackIds: string[];
|
|
518
|
+
bracketType: BracketType;
|
|
519
|
+
name?: string;
|
|
520
|
+
}
|
|
521
|
+
export interface CueStaffEvent {
|
|
522
|
+
type: 'cueStaff';
|
|
523
|
+
tick: number;
|
|
524
|
+
endTick: number;
|
|
525
|
+
sourceTrackId: string;
|
|
526
|
+
size?: number;
|
|
527
|
+
}
|
|
528
|
+
export interface NoteColorEvent {
|
|
529
|
+
type: 'noteColor';
|
|
530
|
+
tick: number;
|
|
531
|
+
noteKey?: number;
|
|
532
|
+
color: string;
|
|
533
|
+
}
|
|
534
|
+
export interface VoltaEvent {
|
|
535
|
+
type: 'volta';
|
|
536
|
+
tick: number;
|
|
537
|
+
endTick: number;
|
|
538
|
+
endings: number[];
|
|
539
|
+
}
|
|
540
|
+
export interface CadenzaEvent {
|
|
541
|
+
type: 'cadenza';
|
|
542
|
+
tick: number;
|
|
543
|
+
endTick?: number;
|
|
544
|
+
enabled: boolean;
|
|
545
|
+
}
|
|
546
|
+
export type DivisiType = 'div.' | 'unis.' | 'a 2' | 'a 3' | 'solo' | 'tutti';
|
|
547
|
+
export interface DivisiMarkEvent {
|
|
548
|
+
type: 'divisiMark';
|
|
549
|
+
tick: number;
|
|
550
|
+
marking: DivisiType | string;
|
|
551
|
+
}
|
|
552
|
+
export interface MetricModulationEvent {
|
|
553
|
+
type: 'metricModulation';
|
|
554
|
+
tick: number;
|
|
555
|
+
fromNote: {
|
|
556
|
+
numerator: number;
|
|
557
|
+
denominator: number;
|
|
558
|
+
};
|
|
559
|
+
toNote: {
|
|
560
|
+
numerator: number;
|
|
561
|
+
denominator: number;
|
|
562
|
+
};
|
|
563
|
+
}
|
|
564
|
+
export interface ConductorCueEvent {
|
|
565
|
+
type: 'conductorCue';
|
|
566
|
+
tick: number;
|
|
567
|
+
text: string;
|
|
568
|
+
instrument?: string;
|
|
569
|
+
}
|
|
570
|
+
export type EditorialType = 'bracket' | 'parenthesis' | 'dashed' | 'small';
|
|
571
|
+
export interface EditorialEvent {
|
|
572
|
+
type: 'editorial';
|
|
573
|
+
tick: number;
|
|
574
|
+
noteKey: number;
|
|
575
|
+
editorialType: EditorialType;
|
|
576
|
+
}
|
|
577
|
+
export type BrassMuteType = 'straight' | 'cup' | 'harmon' | 'plunger' | 'bucket' | 'wah' | 'open';
|
|
578
|
+
export interface BrassMuteEvent {
|
|
579
|
+
type: 'brassMute';
|
|
580
|
+
tick: number;
|
|
581
|
+
muteType: BrassMuteType;
|
|
582
|
+
}
|
|
583
|
+
export interface StringPositionEvent {
|
|
584
|
+
type: 'stringPosition';
|
|
585
|
+
tick: number;
|
|
586
|
+
noteKey: number;
|
|
587
|
+
position: number;
|
|
588
|
+
string?: string;
|
|
589
|
+
}
|
|
590
|
+
export interface MultiphonicEvent {
|
|
591
|
+
type: 'multiphonic';
|
|
592
|
+
tick: number;
|
|
593
|
+
dur: number;
|
|
594
|
+
notes: number[];
|
|
595
|
+
fingering?: string;
|
|
596
|
+
}
|
|
597
|
+
export interface ElectronicsCueEvent {
|
|
598
|
+
type: 'electronicsCue';
|
|
599
|
+
tick: number;
|
|
600
|
+
cue: string;
|
|
601
|
+
action?: 'start' | 'stop' | 'fade';
|
|
602
|
+
}
|
|
603
|
+
export type BendCurveShape = 'immediate' | 'gradual' | 'prebend' | 'release';
|
|
604
|
+
export interface BendCurveEvent {
|
|
605
|
+
type: 'bendCurve';
|
|
606
|
+
tick: number;
|
|
607
|
+
noteKey: number;
|
|
608
|
+
bendAmount: number;
|
|
609
|
+
shape: BendCurveShape;
|
|
610
|
+
dur?: number;
|
|
611
|
+
}
|
|
612
|
+
export type SlideType = 'legato' | 'shift' | 'gliss' | 'scoop' | 'fall';
|
|
613
|
+
export interface SlideEvent {
|
|
614
|
+
type: 'slide';
|
|
615
|
+
tick: number;
|
|
616
|
+
startNote: number;
|
|
617
|
+
endNote: number;
|
|
618
|
+
slideType: SlideType;
|
|
619
|
+
dur: number;
|
|
620
|
+
}
|
|
621
|
+
export type TapHand = 'left' | 'right' | 'both';
|
|
622
|
+
export interface TapEvent {
|
|
623
|
+
type: 'tap';
|
|
624
|
+
tick: number;
|
|
625
|
+
noteKey: number;
|
|
626
|
+
hand: TapHand;
|
|
627
|
+
dur: number;
|
|
628
|
+
}
|
|
629
|
+
export interface ArrangerSection {
|
|
630
|
+
type: 'arrangerSection';
|
|
631
|
+
tick: number;
|
|
632
|
+
name: string;
|
|
633
|
+
measures: number;
|
|
634
|
+
color?: string;
|
|
635
|
+
}
|
|
636
|
+
export interface ChordTrackEntry {
|
|
637
|
+
tick: number;
|
|
638
|
+
chord: string;
|
|
639
|
+
duration?: number;
|
|
640
|
+
}
|
|
641
|
+
export interface ChordTrackEvent {
|
|
642
|
+
type: 'chordTrack';
|
|
643
|
+
entries: ChordTrackEntry[];
|
|
644
|
+
}
|
|
645
|
+
export type ScaleMode = 'major' | 'minor' | 'dorian' | 'phrygian' | 'lydian' | 'mixolydian' | 'aeolian' | 'locrian' | 'pentatonic' | 'blues' | 'chromatic';
|
|
646
|
+
export interface ScaleLockEvent {
|
|
647
|
+
type: 'scaleLockEvent';
|
|
648
|
+
tick: number;
|
|
649
|
+
root: string;
|
|
650
|
+
mode: ScaleMode;
|
|
651
|
+
enabled: boolean;
|
|
652
|
+
}
|
|
653
|
+
export interface StepInputEvent {
|
|
654
|
+
type: 'stepInput';
|
|
655
|
+
tick: number;
|
|
656
|
+
enabled: boolean;
|
|
657
|
+
stepSize: {
|
|
658
|
+
numerator: number;
|
|
659
|
+
denominator: number;
|
|
660
|
+
};
|
|
661
|
+
}
|
|
662
|
+
export interface MeasureCommentEvent {
|
|
663
|
+
type: 'measureComment';
|
|
664
|
+
tick: number;
|
|
665
|
+
measure: number;
|
|
666
|
+
comment: string;
|
|
667
|
+
author?: string;
|
|
668
|
+
}
|
|
669
|
+
export interface VersionCheckpointEvent {
|
|
670
|
+
type: 'versionCheckpoint';
|
|
671
|
+
tick: number;
|
|
672
|
+
name: string;
|
|
673
|
+
timestamp?: number;
|
|
674
|
+
}
|
|
675
|
+
export interface ChordDiagramEvent {
|
|
676
|
+
type: 'chordDiagram';
|
|
677
|
+
tick: number;
|
|
678
|
+
name: string;
|
|
679
|
+
strings: number;
|
|
680
|
+
frets: (number | 'x' | 'o')[];
|
|
681
|
+
barres?: {
|
|
682
|
+
fret: number;
|
|
683
|
+
fromString: number;
|
|
684
|
+
toString: number;
|
|
685
|
+
}[];
|
|
686
|
+
fingering?: (number | null)[];
|
|
687
|
+
baseFret?: number;
|
|
688
|
+
}
|
|
689
|
+
export interface ScaleDiagramEvent {
|
|
690
|
+
type: 'scaleDiagram';
|
|
691
|
+
tick: number;
|
|
692
|
+
root: string;
|
|
693
|
+
scaleType: string;
|
|
694
|
+
strings: number;
|
|
695
|
+
startFret: number;
|
|
696
|
+
endFret: number;
|
|
697
|
+
notes: {
|
|
698
|
+
string: number;
|
|
699
|
+
fret: number;
|
|
700
|
+
degree: number;
|
|
701
|
+
}[];
|
|
702
|
+
}
|
|
703
|
+
export interface HarpPedalDiagramEvent {
|
|
704
|
+
type: 'harpPedalDiagram';
|
|
705
|
+
tick: number;
|
|
706
|
+
pedals: [number, number, number, number, number, number, number];
|
|
707
|
+
displayStyle: 'standard' | 'compact' | 'full';
|
|
708
|
+
}
|
|
709
|
+
export interface PartExtractionConfig {
|
|
710
|
+
type: 'partExtraction';
|
|
711
|
+
trackId: string;
|
|
712
|
+
partName: string;
|
|
713
|
+
showMeasureNumbers: boolean;
|
|
714
|
+
showRehearsalMarks: boolean;
|
|
715
|
+
showTempoMarkings: boolean;
|
|
716
|
+
showDynamics: boolean;
|
|
717
|
+
multiRestThreshold: number;
|
|
718
|
+
cueNotes: boolean;
|
|
719
|
+
transposition?: number;
|
|
720
|
+
}
|
|
721
|
+
export interface TranspositionDisplayEvent {
|
|
722
|
+
type: 'transpositionDisplay';
|
|
723
|
+
tick: number;
|
|
724
|
+
trackId: string;
|
|
725
|
+
displayMode: 'concert' | 'transposed';
|
|
726
|
+
writtenKey?: string;
|
|
727
|
+
soundingKey?: string;
|
|
728
|
+
}
|
|
729
|
+
export interface MeasureNumberConfig {
|
|
730
|
+
type: 'measureNumberConfig';
|
|
731
|
+
showNumbers: boolean;
|
|
732
|
+
frequency: 'every' | 'system' | 'custom';
|
|
733
|
+
customInterval?: number;
|
|
734
|
+
startNumber?: number;
|
|
735
|
+
enclosure?: 'none' | 'box' | 'circle';
|
|
736
|
+
position?: 'above' | 'below';
|
|
737
|
+
excludeRanges?: {
|
|
738
|
+
start: number;
|
|
739
|
+
end: number;
|
|
740
|
+
}[];
|
|
741
|
+
}
|
|
742
|
+
export interface WavetableSynthEvent {
|
|
743
|
+
type: 'wavetableSynth';
|
|
744
|
+
tick: number;
|
|
745
|
+
wavetable: string;
|
|
746
|
+
position: number;
|
|
747
|
+
morphSpeed?: number;
|
|
748
|
+
unison?: number;
|
|
749
|
+
detune?: number;
|
|
750
|
+
}
|
|
751
|
+
export interface FMSynthEvent {
|
|
752
|
+
type: 'fmSynth';
|
|
753
|
+
tick: number;
|
|
754
|
+
algorithm: number;
|
|
755
|
+
operators: FMOperator[];
|
|
756
|
+
feedback?: number;
|
|
757
|
+
}
|
|
758
|
+
export interface FMOperator {
|
|
759
|
+
ratio: number;
|
|
760
|
+
level: number;
|
|
761
|
+
envelope: {
|
|
762
|
+
attack: number;
|
|
763
|
+
decay: number;
|
|
764
|
+
sustain: number;
|
|
765
|
+
release: number;
|
|
766
|
+
};
|
|
767
|
+
waveform?: 'sine' | 'triangle' | 'square' | 'saw';
|
|
768
|
+
}
|
|
769
|
+
export interface AdditiveSynthEvent {
|
|
770
|
+
type: 'additiveSynth';
|
|
771
|
+
tick: number;
|
|
772
|
+
partials: AdditivePartial[];
|
|
773
|
+
resynthesis?: boolean;
|
|
774
|
+
}
|
|
775
|
+
export interface AdditivePartial {
|
|
776
|
+
harmonic: number;
|
|
777
|
+
amplitude: number;
|
|
778
|
+
phase?: number;
|
|
779
|
+
envelope?: {
|
|
780
|
+
attack: number;
|
|
781
|
+
decay: number;
|
|
782
|
+
sustain: number;
|
|
783
|
+
release: number;
|
|
784
|
+
};
|
|
785
|
+
}
|
|
786
|
+
export interface SubtractiveSynthEvent {
|
|
787
|
+
type: 'subtractiveSynth';
|
|
788
|
+
tick: number;
|
|
789
|
+
oscillators: SubtractiveOsc[];
|
|
790
|
+
filter: FilterConfig;
|
|
791
|
+
envelope: {
|
|
792
|
+
attack: number;
|
|
793
|
+
decay: number;
|
|
794
|
+
sustain: number;
|
|
795
|
+
release: number;
|
|
796
|
+
};
|
|
797
|
+
}
|
|
798
|
+
export interface SubtractiveOsc {
|
|
799
|
+
waveform: 'sine' | 'triangle' | 'square' | 'saw' | 'noise';
|
|
800
|
+
octave: number;
|
|
801
|
+
detune: number;
|
|
802
|
+
pulseWidth?: number;
|
|
803
|
+
level: number;
|
|
804
|
+
}
|
|
805
|
+
export interface FilterConfig {
|
|
806
|
+
type: 'lowpass' | 'highpass' | 'bandpass' | 'notch';
|
|
807
|
+
cutoff: number;
|
|
808
|
+
resonance: number;
|
|
809
|
+
envelopeAmount?: number;
|
|
810
|
+
keyTracking?: number;
|
|
811
|
+
}
|
|
812
|
+
export interface PhysicalModelEvent {
|
|
813
|
+
type: 'physicalModel';
|
|
814
|
+
tick: number;
|
|
815
|
+
modelType: 'string' | 'wind' | 'percussion' | 'modal';
|
|
816
|
+
exciter: ExciterConfig;
|
|
817
|
+
resonator: ResonatorConfig;
|
|
818
|
+
damping?: number;
|
|
819
|
+
brightness?: number;
|
|
820
|
+
}
|
|
821
|
+
export interface ExciterConfig {
|
|
822
|
+
type: 'pluck' | 'bow' | 'strike' | 'blow';
|
|
823
|
+
position: number;
|
|
824
|
+
force: number;
|
|
825
|
+
noise?: number;
|
|
826
|
+
}
|
|
827
|
+
export interface ResonatorConfig {
|
|
828
|
+
type: 'string' | 'tube' | 'membrane' | 'plate';
|
|
829
|
+
size: number;
|
|
830
|
+
material: 'steel' | 'nylon' | 'gut' | 'brass' | 'wood';
|
|
831
|
+
modes?: number;
|
|
832
|
+
}
|
|
833
|
+
export interface VocoderEvent {
|
|
834
|
+
type: 'vocoder';
|
|
835
|
+
tick: number;
|
|
836
|
+
carrierSource: string;
|
|
837
|
+
modulatorSource: string;
|
|
838
|
+
bands: number;
|
|
839
|
+
bandWidth?: number;
|
|
840
|
+
attack?: number;
|
|
841
|
+
release?: number;
|
|
842
|
+
formantShift?: number;
|
|
843
|
+
}
|
|
844
|
+
export interface FormantShiftEvent {
|
|
845
|
+
type: 'formantShift';
|
|
846
|
+
tick: number;
|
|
847
|
+
shift: number;
|
|
848
|
+
preservePitch: boolean;
|
|
849
|
+
}
|
|
850
|
+
export interface ConvolutionReverbEvent {
|
|
851
|
+
type: 'convolutionReverb';
|
|
852
|
+
tick: number;
|
|
853
|
+
impulseResponse: string;
|
|
854
|
+
wetDry: number;
|
|
855
|
+
predelay?: number;
|
|
856
|
+
decay?: number;
|
|
857
|
+
lowCut?: number;
|
|
858
|
+
highCut?: number;
|
|
859
|
+
}
|
|
860
|
+
export interface AmpSimEvent {
|
|
861
|
+
type: 'ampSim';
|
|
862
|
+
tick: number;
|
|
863
|
+
ampModel: string;
|
|
864
|
+
gain: number;
|
|
865
|
+
bass: number;
|
|
866
|
+
mid: number;
|
|
867
|
+
treble: number;
|
|
868
|
+
presence?: number;
|
|
869
|
+
master?: number;
|
|
870
|
+
}
|
|
871
|
+
export interface CabinetSimEvent {
|
|
872
|
+
type: 'cabinetSim';
|
|
873
|
+
tick: number;
|
|
874
|
+
cabinetModel: string;
|
|
875
|
+
micType: 'dynamic' | 'condenser' | 'ribbon';
|
|
876
|
+
micPosition: 'center' | 'edge' | 'off-axis' | 'room';
|
|
877
|
+
distance?: number;
|
|
878
|
+
}
|
|
879
|
+
export interface VideoSyncEvent {
|
|
880
|
+
type: 'videoSync';
|
|
881
|
+
tick: number;
|
|
882
|
+
videoPath: string;
|
|
883
|
+
startFrame: number;
|
|
884
|
+
frameRate: number;
|
|
885
|
+
offset?: number;
|
|
886
|
+
}
|
|
887
|
+
export interface HitPointEvent {
|
|
888
|
+
type: 'hitPoint';
|
|
889
|
+
tick: number;
|
|
890
|
+
timecode: string;
|
|
891
|
+
description: string;
|
|
892
|
+
priority: 'high' | 'medium' | 'low';
|
|
893
|
+
targetBeat?: number;
|
|
894
|
+
}
|
|
895
|
+
export interface TimecodeDisplayConfig {
|
|
896
|
+
type: 'timecodeDisplay';
|
|
897
|
+
format: 'smpte' | 'frames' | 'seconds' | 'samples';
|
|
898
|
+
frameRate: 24 | 25 | 29.97 | 30 | 48 | 60;
|
|
899
|
+
dropFrame: boolean;
|
|
900
|
+
offset?: string;
|
|
901
|
+
}
|
|
902
|
+
export interface ProjectTemplate {
|
|
903
|
+
type: 'projectTemplate';
|
|
904
|
+
name: string;
|
|
905
|
+
description?: string;
|
|
906
|
+
tracks: TrackTemplateConfig[];
|
|
907
|
+
globalSettings: {
|
|
908
|
+
ppq: number;
|
|
909
|
+
tempo: number;
|
|
910
|
+
timeSig: {
|
|
911
|
+
numerator: number;
|
|
912
|
+
denominator: number;
|
|
913
|
+
};
|
|
914
|
+
};
|
|
915
|
+
markers?: {
|
|
916
|
+
tick: number;
|
|
917
|
+
name: string;
|
|
918
|
+
}[];
|
|
919
|
+
}
|
|
920
|
+
export interface TrackTemplateConfig {
|
|
921
|
+
name: string;
|
|
922
|
+
kind: 'vocal' | 'midi';
|
|
923
|
+
channel?: number;
|
|
924
|
+
program?: number;
|
|
925
|
+
effects?: string[];
|
|
926
|
+
}
|
|
927
|
+
export interface TrackFolderEvent {
|
|
928
|
+
type: 'trackFolder';
|
|
929
|
+
id: string;
|
|
930
|
+
name: string;
|
|
931
|
+
trackIds: string[];
|
|
932
|
+
collapsed?: boolean;
|
|
933
|
+
color?: string;
|
|
934
|
+
soloExclusive?: boolean;
|
|
935
|
+
}
|
|
936
|
+
export interface CollaboratorSession {
|
|
937
|
+
type: 'collaboratorSession';
|
|
938
|
+
sessionId: string;
|
|
939
|
+
collaborators: CollaboratorInfo[];
|
|
940
|
+
syncMode: 'realtime' | 'async';
|
|
941
|
+
conflictResolution: 'last-write' | 'merge' | 'manual';
|
|
942
|
+
}
|
|
943
|
+
export interface CollaboratorInfo {
|
|
944
|
+
userId: string;
|
|
945
|
+
name: string;
|
|
946
|
+
color: string;
|
|
947
|
+
currentPosition?: number;
|
|
948
|
+
editingTrack?: string;
|
|
949
|
+
}
|
|
950
|
+
export interface VersionDiffEvent {
|
|
951
|
+
type: 'versionDiff';
|
|
952
|
+
baseVersion: string;
|
|
953
|
+
compareVersion: string;
|
|
954
|
+
changes: DiffChange[];
|
|
955
|
+
}
|
|
956
|
+
export interface DiffChange {
|
|
957
|
+
type: 'added' | 'removed' | 'modified';
|
|
958
|
+
trackId?: string;
|
|
959
|
+
tick?: number;
|
|
960
|
+
description: string;
|
|
961
|
+
data?: any;
|
|
962
|
+
}
|
|
963
|
+
//# sourceMappingURL=notation.d.ts.map
|