@leafo/lml 0.1.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/README.md +248 -0
- package/dist/auto-chords.d.ts +46 -0
- package/dist/auto-chords.d.ts.map +1 -0
- package/dist/auto-chords.js +240 -0
- package/dist/auto-chords.js.map +1 -0
- package/dist/grammar.d.ts +12 -0
- package/dist/grammar.d.ts.map +1 -0
- package/dist/grammar.js +1431 -0
- package/dist/grammar.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/music.d.ts +107 -0
- package/dist/music.d.ts.map +1 -0
- package/dist/music.js +704 -0
- package/dist/music.js.map +1 -0
- package/dist/note-list.d.ts +10 -0
- package/dist/note-list.d.ts.map +1 -0
- package/dist/note-list.js +88 -0
- package/dist/note-list.js.map +1 -0
- package/dist/parser.d.ts +27 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +181 -0
- package/dist/parser.js.map +1 -0
- package/dist/song.d.ts +50 -0
- package/dist/song.d.ts.map +1 -0
- package/dist/song.js +261 -0
- package/dist/song.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"music.js","sourceRoot":"","sources":["../src/music.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export default class NoteList extends Array<string> {
|
|
2
|
+
constructor(notes?: string[]);
|
|
3
|
+
filterByRange(min: string, max: string): NoteList;
|
|
4
|
+
matchesHead(notes: string[], anyOctave?: boolean): boolean;
|
|
5
|
+
currentColumn(): string[];
|
|
6
|
+
inHead(note: string): boolean;
|
|
7
|
+
toString(): string;
|
|
8
|
+
toNoteString(): string;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=note-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note-list.d.ts","sourceRoot":"","sources":["../src/note-list.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,KAAK,CAAC,MAAM,CAAC;gBACrC,KAAK,CAAC,EAAE,MAAM,EAAE;IAS5B,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ;IAejD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,UAAQ,GAAG,OAAO;IA6BxD,aAAa,IAAI,MAAM,EAAE;IAUzB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASpB,QAAQ,IAAI,MAAM;IAU3B,YAAY,IAAI,MAAM;CAQvB"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { notesLessThan, notesSame, parseNote } from "./music.js";
|
|
2
|
+
export default class NoteList extends Array {
|
|
3
|
+
constructor(notes) {
|
|
4
|
+
super();
|
|
5
|
+
Object.setPrototypeOf(this, NoteList.prototype);
|
|
6
|
+
if (notes && notes.length) {
|
|
7
|
+
this.push.apply(this, notes);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
filterByRange(min, max) {
|
|
11
|
+
return new NoteList(this.filter(function (n) {
|
|
12
|
+
if (notesLessThan(n, min)) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
if (notesLessThan(max, n)) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
// must be an array of notes
|
|
22
|
+
matchesHead(notes, anyOctave = false) {
|
|
23
|
+
const first = this[0];
|
|
24
|
+
if (!Array.isArray(notes)) {
|
|
25
|
+
throw new Error("matchesHead: notes should be an array");
|
|
26
|
+
}
|
|
27
|
+
if (Array.isArray(first)) {
|
|
28
|
+
const firstArr = first;
|
|
29
|
+
if (firstArr.length != notes.length) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
if (anyOctave) {
|
|
33
|
+
const noteSet = {};
|
|
34
|
+
notes.forEach((n) => noteSet[n.replace(/\d+$/, "")] = true);
|
|
35
|
+
return firstArr.every((n) => noteSet[n.replace(/\d+$/, "")]);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
const pitches = notes.map(parseNote);
|
|
39
|
+
return firstArr.map(parseNote).every((n) => pitches.indexOf(n) >= 0);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
if (anyOctave) {
|
|
44
|
+
return notes.length == 1 && notesSame(notes[0], first);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
return notes.length == 1 && parseNote(notes[0]) == parseNote(first);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
currentColumn() {
|
|
52
|
+
const first = this[0];
|
|
53
|
+
if (Array.isArray(first)) {
|
|
54
|
+
return first;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
return [first];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// if single note is in head
|
|
61
|
+
inHead(note) {
|
|
62
|
+
const first = this[0];
|
|
63
|
+
if (Array.isArray(first)) {
|
|
64
|
+
return first.some((n) => n == note);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return note == first;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
toString() {
|
|
71
|
+
return this.map((n) => {
|
|
72
|
+
if (Array.isArray(n)) {
|
|
73
|
+
return n.join(" ");
|
|
74
|
+
}
|
|
75
|
+
return n;
|
|
76
|
+
}).join(", ");
|
|
77
|
+
}
|
|
78
|
+
// converts it to serialize list of note numbers for quick comparisons
|
|
79
|
+
toNoteString() {
|
|
80
|
+
return this.map((n) => {
|
|
81
|
+
if (Array.isArray(n)) {
|
|
82
|
+
return n.map(parseNote).join(" ");
|
|
83
|
+
}
|
|
84
|
+
return parseNote(n).toString();
|
|
85
|
+
}).join(", ");
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=note-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note-list.js","sourceRoot":"","sources":["../src/note-list.ts"],"names":[],"mappings":"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"}
|
package/dist/parser.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as peg from "./grammar.js";
|
|
2
|
+
import { MultiTrackSong } from "./song.js";
|
|
3
|
+
import { AutoChords, AutoChordsOptions } from "./auto-chords.js";
|
|
4
|
+
export type NoteOpts = {
|
|
5
|
+
duration?: number;
|
|
6
|
+
start?: number;
|
|
7
|
+
sharp?: boolean;
|
|
8
|
+
flat?: boolean;
|
|
9
|
+
natural?: boolean;
|
|
10
|
+
};
|
|
11
|
+
export type ASTNode = ["note", string, NoteOpts?] | ["rest", {
|
|
12
|
+
duration?: number;
|
|
13
|
+
start?: number;
|
|
14
|
+
}?] | ["keySignature", number] | ["timeSignature", number, number] | ["halfTime"] | ["doubleTime"] | ["tripleTime"] | ["measure", number] | ["block", ASTNode[]] | ["restoreStartPosition"] | ["setTrack", number] | ["clef", string] | ["macro", string];
|
|
15
|
+
export type AST = ASTNode[];
|
|
16
|
+
export interface SongParserOptions {
|
|
17
|
+
autoChords?: typeof AutoChords | false;
|
|
18
|
+
autoChordsSettings?: AutoChordsOptions;
|
|
19
|
+
}
|
|
20
|
+
export default class SongParser {
|
|
21
|
+
static peg: typeof peg;
|
|
22
|
+
static load(songText: string, opts?: SongParserOptions): MultiTrackSong;
|
|
23
|
+
parse(songText: string): AST;
|
|
24
|
+
compile(ast: AST, opts?: SongParserOptions): MultiTrackSong;
|
|
25
|
+
private compileCommands;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AAEnC,OAAO,EAAE,cAAc,EAAY,MAAM,WAAW,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAGhE,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,OAAO,GACf,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,GAC3B,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,GAChD,CAAC,cAAc,EAAE,MAAM,CAAC,GACxB,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,GACjC,CAAC,UAAU,CAAC,GACZ,CAAC,YAAY,CAAC,GACd,CAAC,YAAY,CAAC,GACd,CAAC,SAAS,EAAE,MAAM,CAAC,GACnB,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,GACpB,CAAC,sBAAsB,CAAC,GACxB,CAAC,UAAU,EAAE,MAAM,CAAC,GACpB,CAAC,MAAM,EAAE,MAAM,CAAC,GAChB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AAErB,MAAM,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;AAY3B,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,OAAO,UAAU,GAAG,KAAK,CAAA;IACtC,kBAAkB,CAAC,EAAE,iBAAiB,CAAA;CACvC;AAYD,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,MAAM,CAAC,GAAG,aAAM;IAEhB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,cAAc;IAOvE,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG;IAK5B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,cAAc;IA+B3D,OAAO,CAAC,eAAe;CA4IxB"}
|
package/dist/parser.js
ADDED
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
// @ts-ignore - generated file
|
|
2
|
+
import * as peg from "./grammar.js";
|
|
3
|
+
import { KeySignature } from "./music.js";
|
|
4
|
+
import { MultiTrackSong, SongNote } from "./song.js";
|
|
5
|
+
import { AutoChords } from "./auto-chords.js";
|
|
6
|
+
// tokens are separated by whitespace
|
|
7
|
+
// a note is a5.1.2
|
|
8
|
+
// - 5 is the octave
|
|
9
|
+
// - 1 is the duration
|
|
10
|
+
// - 2 is the start
|
|
11
|
+
//
|
|
12
|
+
// duration and start are optional
|
|
13
|
+
// duration defaults to 1 beat (or the current duration)
|
|
14
|
+
// start defaults to current cursor position
|
|
15
|
+
class SongParser {
|
|
16
|
+
static load(songText, opts) {
|
|
17
|
+
const parser = new SongParser();
|
|
18
|
+
const ast = parser.parse(songText);
|
|
19
|
+
return parser.compile(ast, opts);
|
|
20
|
+
}
|
|
21
|
+
// convert song text to ast
|
|
22
|
+
parse(songText) {
|
|
23
|
+
return peg.parse(songText);
|
|
24
|
+
}
|
|
25
|
+
// compile ast to song notes
|
|
26
|
+
compile(ast, opts) {
|
|
27
|
+
const state = {
|
|
28
|
+
startPosition: 0,
|
|
29
|
+
position: 0,
|
|
30
|
+
beatsPerNote: 1,
|
|
31
|
+
beatsPerMeasure: 4,
|
|
32
|
+
timeScale: 1,
|
|
33
|
+
keySignature: new KeySignature(0),
|
|
34
|
+
currentTrack: 0,
|
|
35
|
+
};
|
|
36
|
+
const song = new MultiTrackSong();
|
|
37
|
+
this.compileCommands(ast, state, song);
|
|
38
|
+
song.metadata = {
|
|
39
|
+
keySignature: state.keySignature.count,
|
|
40
|
+
beatsPerMeasure: state.beatsPerMeasure,
|
|
41
|
+
};
|
|
42
|
+
if (song.autoChords) {
|
|
43
|
+
const settings = opts ? opts.autoChordsSettings : {};
|
|
44
|
+
if (opts && opts.autoChords) {
|
|
45
|
+
new opts.autoChords(song, settings).addChords();
|
|
46
|
+
}
|
|
47
|
+
else if (opts?.autoChords !== false) {
|
|
48
|
+
AutoChords.defaultChords(song, settings).addChords();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return song;
|
|
52
|
+
}
|
|
53
|
+
compileCommands(commands, state, song) {
|
|
54
|
+
for (const command of commands) {
|
|
55
|
+
const t = command[0];
|
|
56
|
+
switch (t) {
|
|
57
|
+
case "restoreStartPosition": {
|
|
58
|
+
state.position = state.startPosition;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case "block": {
|
|
62
|
+
const [, blockCommands] = command;
|
|
63
|
+
const blockState = {
|
|
64
|
+
...state,
|
|
65
|
+
startPosition: state.position
|
|
66
|
+
};
|
|
67
|
+
Object.setPrototypeOf(blockState, state);
|
|
68
|
+
this.compileCommands(blockCommands, blockState, song);
|
|
69
|
+
state.position = blockState.position;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
case "halfTime": {
|
|
73
|
+
state.timeScale *= 2;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
case "doubleTime": {
|
|
77
|
+
state.timeScale *= 0.5;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
case "tripleTime": {
|
|
81
|
+
state.timeScale *= 1 / 3;
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
case "measure": {
|
|
85
|
+
const [, measure] = command;
|
|
86
|
+
state.position = measure * state.beatsPerMeasure;
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
case "setTrack": {
|
|
90
|
+
const [, track] = command;
|
|
91
|
+
state.currentTrack = +track;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
case "clef": {
|
|
95
|
+
const [, clef] = command;
|
|
96
|
+
const track = song.getTrack(state.currentTrack);
|
|
97
|
+
if (!track.clefs) {
|
|
98
|
+
track.clefs = [];
|
|
99
|
+
}
|
|
100
|
+
track.clefs.push([state.position, clef]);
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
case "note": {
|
|
104
|
+
const [, name, noteOpts] = command;
|
|
105
|
+
let noteName = name;
|
|
106
|
+
let duration = state.beatsPerNote * state.timeScale;
|
|
107
|
+
let start = null;
|
|
108
|
+
let hasAccidental = false;
|
|
109
|
+
if (noteOpts) {
|
|
110
|
+
if (noteOpts.duration) {
|
|
111
|
+
duration *= noteOpts.duration;
|
|
112
|
+
}
|
|
113
|
+
start = noteOpts.start ?? null;
|
|
114
|
+
if (noteOpts.sharp) {
|
|
115
|
+
hasAccidental = true;
|
|
116
|
+
noteName = noteName.substring(0, 1) + "#" + noteName.substring(1);
|
|
117
|
+
}
|
|
118
|
+
else if (noteOpts.flat) {
|
|
119
|
+
hasAccidental = true;
|
|
120
|
+
noteName = noteName.substring(0, 1) + "b" + noteName.substring(1);
|
|
121
|
+
}
|
|
122
|
+
else if (noteOpts.natural) {
|
|
123
|
+
hasAccidental = true;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (!hasAccidental) {
|
|
127
|
+
// apply default accidental
|
|
128
|
+
noteName = state.keySignature.unconvertNote(noteName);
|
|
129
|
+
}
|
|
130
|
+
if (start === null) {
|
|
131
|
+
start = state.position;
|
|
132
|
+
state.position += duration;
|
|
133
|
+
}
|
|
134
|
+
song.pushWithTrack(new SongNote(noteName, start, duration), state.currentTrack);
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
case "rest": {
|
|
138
|
+
const [, restTiming] = command;
|
|
139
|
+
let duration = state.beatsPerNote * state.timeScale;
|
|
140
|
+
if (restTiming) {
|
|
141
|
+
if (restTiming.start) {
|
|
142
|
+
break; // do nothing
|
|
143
|
+
}
|
|
144
|
+
if (restTiming.duration) {
|
|
145
|
+
duration *= restTiming.duration;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
state.position += duration;
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
case "keySignature": {
|
|
152
|
+
state.keySignature = new KeySignature(+command[1]);
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
case "timeSignature": {
|
|
156
|
+
const [, perBeat, noteValue] = command;
|
|
157
|
+
state.beatsPerNote = 4 / noteValue;
|
|
158
|
+
state.beatsPerMeasure = state.beatsPerNote * perBeat;
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
case "macro": {
|
|
162
|
+
const [, macroName] = command;
|
|
163
|
+
const chord = AutoChords.coerceChord(macroName);
|
|
164
|
+
if (chord) {
|
|
165
|
+
if (!song.autoChords) {
|
|
166
|
+
song.autoChords = [];
|
|
167
|
+
}
|
|
168
|
+
song.autoChords.push([state.position, chord]);
|
|
169
|
+
}
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
default: {
|
|
173
|
+
console.warn("Got unknown command when parsing song", command);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
SongParser.peg = peg;
|
|
180
|
+
export default SongParser;
|
|
181
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/song.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export declare class SongNote {
|
|
2
|
+
id: symbol;
|
|
3
|
+
note: string;
|
|
4
|
+
start: number;
|
|
5
|
+
duration: number;
|
|
6
|
+
constructor(note: string, start: number, duration: number);
|
|
7
|
+
clone(): SongNote;
|
|
8
|
+
inRange(min: number, max: number): boolean;
|
|
9
|
+
transpose(semitones: number): SongNote;
|
|
10
|
+
getStart(): number;
|
|
11
|
+
getStop(): number;
|
|
12
|
+
getRenderStop(): number;
|
|
13
|
+
toString(): string;
|
|
14
|
+
}
|
|
15
|
+
export interface SongMetadata {
|
|
16
|
+
keySignature?: number;
|
|
17
|
+
beatsPerMeasure?: number;
|
|
18
|
+
}
|
|
19
|
+
export declare class SongNoteList extends Array<SongNote> {
|
|
20
|
+
static bucketSize: number;
|
|
21
|
+
metadata?: SongMetadata;
|
|
22
|
+
autoChords?: [number, [string, string]][];
|
|
23
|
+
clefs?: [number, string][];
|
|
24
|
+
trackName?: string;
|
|
25
|
+
private buckets?;
|
|
26
|
+
constructor();
|
|
27
|
+
static newSong(noteTuples: [string, number, number][]): SongNoteList;
|
|
28
|
+
clone(): SongNoteList;
|
|
29
|
+
clearCache(): void;
|
|
30
|
+
transpose(amount?: number): SongNoteList;
|
|
31
|
+
notesInRange(start: number, stop: number): SongNote[];
|
|
32
|
+
getStopInBeats(): number;
|
|
33
|
+
getStartInBeats(): number;
|
|
34
|
+
noteRange(): [string, string] | undefined;
|
|
35
|
+
fittingStaff(): "treble" | "bass" | "grand";
|
|
36
|
+
private getBucketRange;
|
|
37
|
+
private buildBuckets;
|
|
38
|
+
private adjacentBuckets;
|
|
39
|
+
private getBuckets;
|
|
40
|
+
matchNoteFast(findNote: string, beat: number, wrapRight?: number, wrapLeft?: number): number | null;
|
|
41
|
+
matchNote(findNote: string, beat: number): number | null;
|
|
42
|
+
}
|
|
43
|
+
export declare class MultiTrackSong extends SongNoteList {
|
|
44
|
+
tracks: SongNoteList[];
|
|
45
|
+
constructor();
|
|
46
|
+
pushWithTrack(note: SongNote, trackIdx: number): SongNote;
|
|
47
|
+
findEmptyTrackIdx(): number;
|
|
48
|
+
getTrack(idx: number): SongNoteList;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=song.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"song.d.ts","sourceRoot":"","sources":["../src/song.ts"],"names":[],"mappings":"AAKA,qBAAa,QAAQ;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;gBAEJ,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAOzD,KAAK,IAAI,QAAQ;IAMjB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAS1C,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ;IAMtC,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,MAAM;IAIjB,aAAa,IAAI,MAAM;IAIvB,QAAQ,IAAI,MAAM;CAGnB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAGD,qBAAa,YAAa,SAAQ,KAAK,CAAC,QAAQ,CAAC;IAC/C,MAAM,CAAC,UAAU,SAAI;IAErB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAA;IACzC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,OAAO,CAAC,OAAO,CAAC,CAA0B;;IAO1C,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,YAAY;IAYpE,KAAK,IAAI,YAAY;IAUrB,UAAU,IAAI,IAAI;IAIlB,SAAS,CAAC,MAAM,SAAI,GAAG,YAAY;IAenC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE;IAIrD,cAAc,IAAI,MAAM;IAKxB,eAAe,IAAI,MAAM;IAKzB,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;IAoBzC,YAAY,IAAI,QAAQ,GAAG,MAAM,GAAG,OAAO;IAyC3C,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,UAAU;IAQlB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAqDnG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAsBzD;AAED,qBAAa,cAAe,SAAQ,YAAY;IAC9C,MAAM,EAAE,YAAY,EAAE,CAAK;;IAO3B,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ;IAQzD,iBAAiB,IAAI,MAAM;IAI3B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;CAOpC"}
|