@musodojo/music-theory-data 27.0.0 → 28.0.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 +42 -12
- package/esm/src/data/chord-progressions/mod.d.ts +19 -64
- package/esm/src/data/chord-progressions/mod.d.ts.map +1 -1
- package/esm/src/data/chord-progressions/mod.js +149 -65
- package/esm/src/data/chords/mod.d.ts +5 -0
- package/esm/src/data/chords/mod.d.ts.map +1 -1
- package/esm/src/data/chords/mod.js +20 -0
- package/esm/src/data/note-collections/augmented-variants.d.ts +1 -0
- package/esm/src/data/note-collections/augmented-variants.d.ts.map +1 -1
- package/esm/src/data/note-collections/augmented-variants.js +25 -0
- package/esm/src/data/note-collections/mod.d.ts +2 -1
- package/esm/src/data/note-collections/mod.d.ts.map +1 -1
- package/esm/src/mod.d.ts +1 -1
- package/esm/src/mod.js +1 -1
- package/esm/src/utils/chord-progressions.d.ts +14 -16
- package/esm/src/utils/chord-progressions.d.ts.map +1 -1
- package/esm/src/utils/chord-progressions.js +49 -105
- package/package.json +1 -1
- package/script/src/data/chord-progressions/mod.d.ts +19 -64
- package/script/src/data/chord-progressions/mod.d.ts.map +1 -1
- package/script/src/data/chord-progressions/mod.js +150 -70
- package/script/src/data/chords/mod.d.ts +5 -0
- package/script/src/data/chords/mod.d.ts.map +1 -1
- package/script/src/data/chords/mod.js +22 -1
- package/script/src/data/note-collections/augmented-variants.d.ts +1 -0
- package/script/src/data/note-collections/augmented-variants.d.ts.map +1 -1
- package/script/src/data/note-collections/augmented-variants.js +25 -0
- package/script/src/data/note-collections/mod.d.ts +2 -1
- package/script/src/data/note-collections/mod.d.ts.map +1 -1
- package/script/src/mod.d.ts +1 -1
- package/script/src/mod.js +1 -1
- package/script/src/utils/chord-progressions.d.ts +14 -16
- package/script/src/utils/chord-progressions.d.ts.map +1 -1
- package/script/src/utils/chord-progressions.js +51 -108
- package/esm/src/data/chord-progressions/basic.d.ts +0 -10
- package/esm/src/data/chord-progressions/basic.d.ts.map +0 -1
- package/esm/src/data/chord-progressions/basic.js +0 -164
- package/esm/src/data/chord-progressions/blues.d.ts +0 -5
- package/esm/src/data/chord-progressions/blues.d.ts.map +0 -1
- package/esm/src/data/chord-progressions/blues.js +0 -30
- package/esm/src/data/chord-progressions/jazz.d.ts +0 -8
- package/esm/src/data/chord-progressions/jazz.d.ts.map +0 -1
- package/esm/src/data/chord-progressions/jazz.js +0 -143
- package/esm/src/data/chord-progressions/pop.d.ts +0 -6
- package/esm/src/data/chord-progressions/pop.d.ts.map +0 -1
- package/esm/src/data/chord-progressions/pop.js +0 -42
- package/script/src/data/chord-progressions/basic.d.ts +0 -10
- package/script/src/data/chord-progressions/basic.d.ts.map +0 -1
- package/script/src/data/chord-progressions/basic.js +0 -167
- package/script/src/data/chord-progressions/blues.d.ts +0 -5
- package/script/src/data/chord-progressions/blues.d.ts.map +0 -1
- package/script/src/data/chord-progressions/blues.js +0 -33
- package/script/src/data/chord-progressions/jazz.d.ts +0 -8
- package/script/src/data/chord-progressions/jazz.d.ts.map +0 -1
- package/script/src/data/chord-progressions/jazz.js +0 -146
- package/script/src/data/chord-progressions/pop.d.ts +0 -6
- package/script/src/data/chord-progressions/pop.d.ts.map +0 -1
- package/script/src/data/chord-progressions/pop.js +0 -45
package/README.md
CHANGED
|
@@ -26,12 +26,11 @@ Have a question, a suggestion, or want to report a bug? Get in touch!
|
|
|
26
26
|
- ✅ Augmented Variants
|
|
27
27
|
- ✅ Other Note Collections, including notes and dyads
|
|
28
28
|
|
|
29
|
-
## Available Chord
|
|
29
|
+
## Available Chord Progressions
|
|
30
30
|
|
|
31
|
-
- ✅
|
|
32
|
-
- ✅
|
|
33
|
-
- ✅
|
|
34
|
-
- ✅ Jazz Progressions
|
|
31
|
+
- ✅ 4-bar foundational loops
|
|
32
|
+
- ✅ 8-bar loops
|
|
33
|
+
- ✅ 12-bar blues
|
|
35
34
|
|
|
36
35
|
## Features
|
|
37
36
|
|
|
@@ -177,21 +176,52 @@ console.log(Object.keys(music_theory_data.noteCollections));
|
|
|
177
176
|
console.log(Object.keys(music_theory_data.groupedNoteCollections));
|
|
178
177
|
// ["diatonicModes", "pentatonicVariants", ...]
|
|
179
178
|
|
|
180
|
-
// Get a
|
|
181
|
-
const
|
|
179
|
+
// Get a chord progression
|
|
180
|
+
const oneSixFourFive = music_theory_data.chordProgressions.oneSixFourFive;
|
|
182
181
|
|
|
183
|
-
console.log(
|
|
184
|
-
// "
|
|
182
|
+
console.log(oneSixFourFive.primaryName);
|
|
183
|
+
// "I | vi | IV | V"
|
|
184
|
+
|
|
185
|
+
console.log(oneSixFourFive.chords);
|
|
186
|
+
// [
|
|
187
|
+
// { degree: "1", quality: "M", durationInBars: 1 },
|
|
188
|
+
// { degree: "6", quality: "m", durationInBars: 1 },
|
|
189
|
+
// { degree: "4", quality: "M", durationInBars: 1 },
|
|
190
|
+
// { degree: "5", quality: "M", durationInBars: 1 },
|
|
191
|
+
// ]
|
|
185
192
|
|
|
186
193
|
console.log(
|
|
187
|
-
music_theory_data.
|
|
194
|
+
music_theory_data.getChordProgressionChordNames(
|
|
195
|
+
"C",
|
|
196
|
+
"oneSixFourFive",
|
|
197
|
+
),
|
|
188
198
|
);
|
|
189
|
-
// ["
|
|
199
|
+
// ["CM", "Am", "FM", "GM"]
|
|
190
200
|
|
|
191
201
|
console.log(
|
|
192
|
-
music_theory_data.
|
|
202
|
+
music_theory_data.getChordProgressionUniqueChordNames(
|
|
203
|
+
"C",
|
|
204
|
+
"oneFourOneFiveSplitReturn",
|
|
205
|
+
),
|
|
193
206
|
);
|
|
194
207
|
// ["CM", "FM", "GM"]
|
|
208
|
+
|
|
209
|
+
console.log(
|
|
210
|
+
music_theory_data.getChordProgressionUniqueChordReferences(
|
|
211
|
+
"C",
|
|
212
|
+
"oneFourOneFiveSplitReturn",
|
|
213
|
+
),
|
|
214
|
+
);
|
|
215
|
+
// [
|
|
216
|
+
// { rootNote: "C", chordName: "CM", noteCollectionKey: "major" },
|
|
217
|
+
// { rootNote: "C", chordName: "FM", noteCollectionKey: "major" },
|
|
218
|
+
// { rootNote: "C", chordName: "GM", noteCollectionKey: "major" },
|
|
219
|
+
// ]
|
|
220
|
+
|
|
221
|
+
console.log(
|
|
222
|
+
music_theory_data.getChordProgressionTotalDurationInBars("twelveBarBlues"),
|
|
223
|
+
);
|
|
224
|
+
// 12
|
|
195
225
|
```
|
|
196
226
|
|
|
197
227
|
## Note Colors And Chromatic Indexes
|
|
@@ -1,66 +1,21 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
readonly
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
12
|
-
readonly
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
readonly oneFive: import("../../mod.js").ChordProgressionTemplate;
|
|
18
|
-
readonly oneFour: import("../../mod.js").ChordProgressionTemplate;
|
|
19
|
-
readonly oneOneFiveFive: import("../../mod.js").ChordProgressionTemplate;
|
|
20
|
-
readonly oneOneFiveFiveSeven: import("../../mod.js").ChordProgressionTemplate;
|
|
21
|
-
readonly oneFourOneFive: import("../../mod.js").ChordProgressionTemplate;
|
|
1
|
+
import type { ChordProgression } from "../../types/chord-progressions";
|
|
2
|
+
declare const _chordProgressions: {
|
|
3
|
+
readonly oneOneFiveFive: ChordProgression;
|
|
4
|
+
readonly oneOneFiveFiveDominant7: ChordProgression;
|
|
5
|
+
readonly oneOneFourFour: ChordProgression;
|
|
6
|
+
readonly oneOneFourFive: ChordProgression;
|
|
7
|
+
readonly oneFourOneFive: ChordProgression;
|
|
8
|
+
readonly oneSixFourFive: ChordProgression;
|
|
9
|
+
readonly oneFiveSixFour: ChordProgression;
|
|
10
|
+
readonly oneSixTwoFive: ChordProgression;
|
|
11
|
+
readonly sixTwoFiveOne: ChordProgression;
|
|
12
|
+
readonly majorTwoFiveOne: ChordProgression;
|
|
13
|
+
readonly minorTwoFiveOne: ChordProgression;
|
|
14
|
+
readonly oneFourOneFiveSplitReturn: ChordProgression;
|
|
15
|
+
readonly twelveBarBlues: ChordProgression;
|
|
16
|
+
readonly twelveBarBluesQuickChange: ChordProgression;
|
|
22
17
|
};
|
|
23
|
-
export type
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
export declare const chordProgressionStepNoteCollectionKeys: ChordProgressionStepNoteCollectionKeyMap;
|
|
27
|
-
export declare const groupedChordProgressionTemplates: {
|
|
28
|
-
readonly basicChordProgressionTemplates: {
|
|
29
|
-
readonly oneFourFive: import("../../mod.js").ChordProgressionTemplate;
|
|
30
|
-
readonly oneFive: import("../../mod.js").ChordProgressionTemplate;
|
|
31
|
-
readonly oneFour: import("../../mod.js").ChordProgressionTemplate;
|
|
32
|
-
readonly oneOneFiveFive: import("../../mod.js").ChordProgressionTemplate;
|
|
33
|
-
readonly oneOneFiveFiveSeven: import("../../mod.js").ChordProgressionTemplate;
|
|
34
|
-
readonly oneFourOneFive: import("../../mod.js").ChordProgressionTemplate;
|
|
35
|
-
};
|
|
36
|
-
readonly popChordProgressionTemplates: {
|
|
37
|
-
readonly dooWop: import("../../mod.js").ChordProgressionTemplate;
|
|
38
|
-
readonly axisProgression: import("../../mod.js").ChordProgressionTemplate;
|
|
39
|
-
};
|
|
40
|
-
readonly bluesChordProgressionTemplates: {
|
|
41
|
-
readonly twelveBarBlues: import("../../mod.js").ChordProgressionTemplate;
|
|
42
|
-
};
|
|
43
|
-
readonly jazzChordProgressionTemplates: {
|
|
44
|
-
readonly twoFiveOneMajor: import("../../mod.js").ChordProgressionTemplate;
|
|
45
|
-
readonly minorTwoFiveOne: import("../../mod.js").ChordProgressionTemplate;
|
|
46
|
-
readonly rhythmChanges: import("../../mod.js").ChordProgressionTemplate;
|
|
47
|
-
readonly jazzBluesBasic: import("../../mod.js").ChordProgressionTemplate;
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
export type ChordProgressionTemplateGroupKey = keyof typeof groupedChordProgressionTemplates;
|
|
51
|
-
/** Human-readable DisplayName and Description metadata for top-level chord progression groups. */
|
|
52
|
-
export declare const chordProgressionTemplateGroupsMetadata: Record<ChordProgressionTemplateGroupKey, {
|
|
53
|
-
displayName: string;
|
|
54
|
-
description: string;
|
|
55
|
-
}>;
|
|
56
|
-
/** Human-readable DisplayName and Description metadata for chord progression categories. */
|
|
57
|
-
export declare const chordProgressionTemplateCategoryMetadata: Record<ChordProgressionTemplateCategory, {
|
|
58
|
-
displayName: string;
|
|
59
|
-
description: string;
|
|
60
|
-
}>;
|
|
61
|
-
/** Human-readable DisplayName and Description metadata for chord progression template types. */
|
|
62
|
-
export declare const chordProgressionTemplateTypeMetadata: Record<ChordProgressionTemplateType, {
|
|
63
|
-
displayName: string;
|
|
64
|
-
description: string;
|
|
65
|
-
}>;
|
|
18
|
+
export type ChordProgressionKey = keyof typeof _chordProgressions;
|
|
19
|
+
export declare const chordProgressions: Record<ChordProgressionKey, ChordProgression>;
|
|
20
|
+
export {};
|
|
66
21
|
//# sourceMappingURL=mod.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/src/data/chord-progressions/mod.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/src/data/chord-progressions/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,gCAAgC,CAAC;AA+JxC,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;CAed,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAElE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CACxD,CAAC"}
|
|
@@ -1,71 +1,155 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
function chord(degree, quality, durationInBars) {
|
|
2
|
+
return {
|
|
3
|
+
degree,
|
|
4
|
+
quality,
|
|
5
|
+
durationInBars,
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
const oneOneFiveFive = {
|
|
9
|
+
primaryName: "I | I | V | V",
|
|
10
|
+
chords: [
|
|
11
|
+
chord("1", "M", 2),
|
|
12
|
+
chord("5", "M", 2),
|
|
13
|
+
],
|
|
14
14
|
};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"ø7": "halfDiminished7",
|
|
23
|
-
"°7": "diminished7",
|
|
15
|
+
const oneOneFiveFiveDominant7 = {
|
|
16
|
+
primaryName: "I | I | V | V7",
|
|
17
|
+
chords: [
|
|
18
|
+
chord("1", "M", 2),
|
|
19
|
+
chord("5", "M", 1),
|
|
20
|
+
chord("5", "7", 1),
|
|
21
|
+
],
|
|
24
22
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
const oneOneFourFour = {
|
|
24
|
+
primaryName: "I | I | IV | IV",
|
|
25
|
+
chords: [
|
|
26
|
+
chord("1", "M", 2),
|
|
27
|
+
chord("4", "M", 2),
|
|
28
|
+
],
|
|
30
29
|
};
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
displayName: "Pop",
|
|
39
|
-
description: "Common songwriting loops used across pop, rock, folk, and related styles.",
|
|
40
|
-
},
|
|
41
|
-
bluesChordProgressionTemplates: {
|
|
42
|
-
displayName: "Blues",
|
|
43
|
-
description: "Blues forms and dominant-chord progressions, including twelve-bar templates.",
|
|
44
|
-
},
|
|
45
|
-
jazzChordProgressionTemplates: {
|
|
46
|
-
displayName: "Jazz",
|
|
47
|
-
description: "Functional harmony templates, turnarounds, cadences, and standard jazz forms.",
|
|
48
|
-
},
|
|
30
|
+
const oneOneFourFive = {
|
|
31
|
+
primaryName: "I | I | IV | V",
|
|
32
|
+
chords: [
|
|
33
|
+
chord("1", "M", 2),
|
|
34
|
+
chord("4", "M", 1),
|
|
35
|
+
chord("5", "M", 1),
|
|
36
|
+
],
|
|
49
37
|
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
38
|
+
const oneFourOneFive = {
|
|
39
|
+
primaryName: "I | IV | I | V",
|
|
40
|
+
chords: [
|
|
41
|
+
chord("1", "M", 1),
|
|
42
|
+
chord("4", "M", 1),
|
|
43
|
+
chord("1", "M", 1),
|
|
44
|
+
chord("5", "M", 1),
|
|
45
|
+
],
|
|
56
46
|
};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
description: "A short playable chord progression intended to repeat.",
|
|
66
|
-
},
|
|
67
|
-
form: {
|
|
68
|
-
displayName: "Form",
|
|
69
|
-
description: "A longer structured progression with named sections or a conventional song form.",
|
|
70
|
-
},
|
|
47
|
+
const oneSixFourFive = {
|
|
48
|
+
primaryName: "I | vi | IV | V",
|
|
49
|
+
chords: [
|
|
50
|
+
chord("1", "M", 1),
|
|
51
|
+
chord("6", "m", 1),
|
|
52
|
+
chord("4", "M", 1),
|
|
53
|
+
chord("5", "M", 1),
|
|
54
|
+
],
|
|
71
55
|
};
|
|
56
|
+
const oneFiveSixFour = {
|
|
57
|
+
primaryName: "I | V | vi | IV",
|
|
58
|
+
chords: [
|
|
59
|
+
chord("1", "M", 1),
|
|
60
|
+
chord("5", "M", 1),
|
|
61
|
+
chord("6", "m", 1),
|
|
62
|
+
chord("4", "M", 1),
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
const oneSixTwoFive = {
|
|
66
|
+
primaryName: "I | vi | ii | V",
|
|
67
|
+
chords: [
|
|
68
|
+
chord("1", "M", 1),
|
|
69
|
+
chord("6", "m", 1),
|
|
70
|
+
chord("2", "m", 1),
|
|
71
|
+
chord("5", "M", 1),
|
|
72
|
+
],
|
|
73
|
+
};
|
|
74
|
+
const sixTwoFiveOne = {
|
|
75
|
+
primaryName: "vi | ii | V | I",
|
|
76
|
+
chords: [
|
|
77
|
+
chord("6", "m", 1),
|
|
78
|
+
chord("2", "m", 1),
|
|
79
|
+
chord("5", "M", 1),
|
|
80
|
+
chord("1", "M", 1),
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
const majorTwoFiveOne = {
|
|
84
|
+
primaryName: "iim7 | V7 | Imaj7 | Imaj7",
|
|
85
|
+
chords: [
|
|
86
|
+
chord("2", "m7", 1),
|
|
87
|
+
chord("5", "7", 1),
|
|
88
|
+
chord("1", "M7", 2),
|
|
89
|
+
],
|
|
90
|
+
};
|
|
91
|
+
const minorTwoFiveOne = {
|
|
92
|
+
primaryName: "iiø7 | V7 | i | i",
|
|
93
|
+
chords: [
|
|
94
|
+
chord("2", "ø7", 1),
|
|
95
|
+
chord("5", "7", 1),
|
|
96
|
+
chord("1", "m", 2),
|
|
97
|
+
],
|
|
98
|
+
};
|
|
99
|
+
const oneFourOneFiveSplitReturn = {
|
|
100
|
+
primaryName: "I | IV | I | V | I | IV | I V | I",
|
|
101
|
+
chords: [
|
|
102
|
+
chord("1", "M", 1),
|
|
103
|
+
chord("4", "M", 1),
|
|
104
|
+
chord("1", "M", 1),
|
|
105
|
+
chord("5", "M", 1),
|
|
106
|
+
chord("1", "M", 1),
|
|
107
|
+
chord("4", "M", 1),
|
|
108
|
+
chord("1", "M", 0.5),
|
|
109
|
+
chord("5", "M", 0.5),
|
|
110
|
+
chord("1", "M", 1),
|
|
111
|
+
],
|
|
112
|
+
};
|
|
113
|
+
const twelveBarBlues = {
|
|
114
|
+
primaryName: "12 Bar Blues",
|
|
115
|
+
chords: [
|
|
116
|
+
chord("1", "7", 4),
|
|
117
|
+
chord("4", "7", 2),
|
|
118
|
+
chord("1", "7", 2),
|
|
119
|
+
chord("5", "7", 1),
|
|
120
|
+
chord("4", "7", 1),
|
|
121
|
+
chord("1", "7", 1),
|
|
122
|
+
chord("5", "7", 1),
|
|
123
|
+
],
|
|
124
|
+
};
|
|
125
|
+
const twelveBarBluesQuickChange = {
|
|
126
|
+
primaryName: "12 Bar Blues Quick Change",
|
|
127
|
+
chords: [
|
|
128
|
+
chord("1", "7", 1),
|
|
129
|
+
chord("4", "7", 1),
|
|
130
|
+
chord("1", "7", 2),
|
|
131
|
+
chord("4", "7", 2),
|
|
132
|
+
chord("1", "7", 2),
|
|
133
|
+
chord("5", "7", 1),
|
|
134
|
+
chord("4", "7", 1),
|
|
135
|
+
chord("1", "7", 1),
|
|
136
|
+
chord("5", "7", 1),
|
|
137
|
+
],
|
|
138
|
+
};
|
|
139
|
+
const _chordProgressions = {
|
|
140
|
+
oneOneFiveFive,
|
|
141
|
+
oneOneFiveFiveDominant7,
|
|
142
|
+
oneOneFourFour,
|
|
143
|
+
oneOneFourFive,
|
|
144
|
+
oneFourOneFive,
|
|
145
|
+
oneSixFourFive,
|
|
146
|
+
oneFiveSixFour,
|
|
147
|
+
oneSixTwoFive,
|
|
148
|
+
sixTwoFiveOne,
|
|
149
|
+
majorTwoFiveOne,
|
|
150
|
+
minorTwoFiveOne,
|
|
151
|
+
oneFourOneFiveSplitReturn,
|
|
152
|
+
twelveBarBlues,
|
|
153
|
+
twelveBarBluesQuickChange,
|
|
154
|
+
};
|
|
155
|
+
export const chordProgressions = _chordProgressions;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { NoteCollectionKey } from "../note-collections/mod.js";
|
|
1
2
|
declare const _triadChordQualities: readonly ["M", "m", "°", "+"];
|
|
2
3
|
declare const _seventhChordQualities: readonly ["M7", "m7", "7", "ø7", "m7♭5", "°7", "m(M7)", "+M7", "M7♯5"];
|
|
3
4
|
declare const _upperCaseRomanNumerals: readonly ["I", "II", "III", "IV", "V", "VI", "VII"];
|
|
@@ -21,6 +22,9 @@ export declare const triadChordQualities: readonly Triad[];
|
|
|
21
22
|
export declare const seventhChordQualities: readonly SeventhChord[];
|
|
22
23
|
/** The complete set of supported chord suffix qualities. */
|
|
23
24
|
export declare const chordQualities: readonly ChordQuality[];
|
|
25
|
+
export type ChordQualityNoteCollectionKeyMap = Record<ChordQuality, NoteCollectionKey>;
|
|
26
|
+
/** Note-collection keys for every supported chord quality. */
|
|
27
|
+
export declare const chordQualityNoteCollectionKeys: ChordQualityNoteCollectionKeyMap;
|
|
24
28
|
/** Roman numeral rendering metadata for each supported chord quality. */
|
|
25
29
|
export declare const chordQualityRomanRenderings: ReadonlyMap<ChordQuality, ChordQualityRomanRendering>;
|
|
26
30
|
/** An ordered array containing the fundamental triad qualities of the diatonic major scale. */
|
|
@@ -39,5 +43,6 @@ export declare const melodicMinorSeventhChords: SeventhChord[];
|
|
|
39
43
|
export declare const upperCaseRomanNumerals: readonly UpperCaseRomanNumeral[];
|
|
40
44
|
/** An array mapping 7 index scale degrees to their corresponding lower-case Roman numerals. */
|
|
41
45
|
export declare const lowerCaseRomanNumerals: readonly LowerCaseRomanNumeral[];
|
|
46
|
+
export declare function getChordQualityNoteCollectionKey(quality: ChordQuality): NoteCollectionKey;
|
|
42
47
|
export {};
|
|
43
48
|
//# sourceMappingURL=mod.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/src/data/chords/mod.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,oBAAoB,+BAAgC,CAAC;AAE3D,QAAA,MAAM,sBAAsB,wEAUlB,CAAC;AAEX,QAAA,MAAM,uBAAuB,qDAQnB,CAAC;AAEX,QAAA,MAAM,uBAAuB,qDAQnB,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AACnE,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,YAAY,CAAC;AAEhD,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7E,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7E,MAAM,MAAM,YAAY,GAAG,qBAAqB,GAAG,qBAAqB,CAAC;AAEzE,MAAM,MAAM,UAAU,GAAG,GAAG,YAAY,EAAE,GAAG,GAAG,YAAY,GAAG,KAAK,EAAE,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,GAAG,YAAY,GAAG,YAAY,EAAE,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/src/data/chords/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,QAAA,MAAM,oBAAoB,+BAAgC,CAAC;AAE3D,QAAA,MAAM,sBAAsB,wEAUlB,CAAC;AAEX,QAAA,MAAM,uBAAuB,qDAQnB,CAAC;AAEX,QAAA,MAAM,uBAAuB,qDAQnB,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AACnE,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,YAAY,CAAC;AAEhD,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7E,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7E,MAAM,MAAM,YAAY,GAAG,qBAAqB,GAAG,qBAAqB,CAAC;AAEzE,MAAM,MAAM,UAAU,GAAG,GAAG,YAAY,EAAE,GAAG,GAAG,YAAY,GAAG,KAAK,EAAE,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,GAAG,YAAY,GAAG,YAAY,EAAE,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAkBD,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB,EAAE,SAAS,KAAK,EAAyB,CAAC;AAE1E,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,EAAE,SAAS,YAAY,EACjC,CAAC;AAEzB,4DAA4D;AAC5D,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAGjD,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG,MAAM,CACnD,YAAY,EACZ,iBAAiB,CAClB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,8BAA8B,EAAE,gCACZ,CAAC;AAElC,yEAAyE;AACzE,eAAO,MAAM,2BAA2B,EAAE,WAAW,CACnD,YAAY,EACZ,0BAA0B,CAe1B,CAAC;AAEH,+FAA+F;AAC/F,eAAO,MAAM,cAAc,EAAE,KAAK,EAQxB,CAAC;AAEX,uGAAuG;AACvG,eAAO,MAAM,qBAAqB,EAAE,YAAY,EAQtC,CAAC;AAEX,+FAA+F;AAC/F,eAAO,MAAM,mBAAmB,EAAE,KAAK,EAQ7B,CAAC;AAEX,uGAAuG;AACvG,eAAO,MAAM,0BAA0B,EAAE,YAAY,EAQ3C,CAAC;AAEX,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,EAAE,KAAK,EAQ5B,CAAC;AAEX,sGAAsG;AACtG,eAAO,MAAM,yBAAyB,EAAE,YAAY,EAQ1C,CAAC;AAEX,+FAA+F;AAC/F,eAAO,MAAM,sBAAsB,EAAE,SAAS,qBAAqB,EAC1C,CAAC;AAE1B,+FAA+F;AAC/F,eAAO,MAAM,sBAAsB,EAAE,SAAS,qBAAqB,EAC1C,CAAC;AAE1B,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,YAAY,GACpB,iBAAiB,CAEnB"}
|
|
@@ -28,6 +28,21 @@ const _lowerCaseRomanNumerals = [
|
|
|
28
28
|
"vi",
|
|
29
29
|
"vii",
|
|
30
30
|
];
|
|
31
|
+
const _chordQualityNoteCollectionKeys = {
|
|
32
|
+
M: "major",
|
|
33
|
+
m: "minor",
|
|
34
|
+
"°": "diminishedTriad",
|
|
35
|
+
"+": "augmentedTriad",
|
|
36
|
+
M7: "major7",
|
|
37
|
+
m7: "minor7",
|
|
38
|
+
"7": "dominant7",
|
|
39
|
+
"ø7": "halfDiminished7",
|
|
40
|
+
"m7♭5": "halfDiminished7",
|
|
41
|
+
"°7": "diminished7",
|
|
42
|
+
"m(M7)": "minorMajor7",
|
|
43
|
+
"+M7": "augmentedMajor7",
|
|
44
|
+
"M7♯5": "augmentedMajor7",
|
|
45
|
+
};
|
|
31
46
|
/** The complete set of supported triad chord qualities. */
|
|
32
47
|
export const triadChordQualities = _triadChordQualities;
|
|
33
48
|
/** The complete set of supported seventh chord qualities. */
|
|
@@ -37,6 +52,8 @@ export const chordQualities = [
|
|
|
37
52
|
...triadChordQualities,
|
|
38
53
|
...seventhChordQualities,
|
|
39
54
|
];
|
|
55
|
+
/** Note-collection keys for every supported chord quality. */
|
|
56
|
+
export const chordQualityNoteCollectionKeys = _chordQualityNoteCollectionKeys;
|
|
40
57
|
/** Roman numeral rendering metadata for each supported chord quality. */
|
|
41
58
|
export const chordQualityRomanRenderings = new Map([
|
|
42
59
|
["M", { numeralCase: "upper", suffix: "" }],
|
|
@@ -117,3 +134,6 @@ export const melodicMinorSeventhChords = [
|
|
|
117
134
|
export const upperCaseRomanNumerals = _upperCaseRomanNumerals;
|
|
118
135
|
/** An array mapping 7 index scale degrees to their corresponding lower-case Roman numerals. */
|
|
119
136
|
export const lowerCaseRomanNumerals = _lowerCaseRomanNumerals;
|
|
137
|
+
export function getChordQualityNoteCollectionKey(quality) {
|
|
138
|
+
return chordQualityNoteCollectionKeys[quality];
|
|
139
|
+
}
|
|
@@ -2,6 +2,7 @@ import type { ChordCollection } from "../../types/note-collections";
|
|
|
2
2
|
export declare const _augmentedVariants: {
|
|
3
3
|
readonly augmentedTriad: ChordCollection;
|
|
4
4
|
readonly augmented7: ChordCollection;
|
|
5
|
+
readonly augmentedMajor7: ChordCollection;
|
|
5
6
|
};
|
|
6
7
|
export type AugmentedVariantKey = keyof typeof _augmentedVariants;
|
|
7
8
|
export declare const augmentedVariants: Record<AugmentedVariantKey, ChordCollection>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"augmented-variants.d.ts","sourceRoot":"","sources":["../../../../src/src/data/note-collections/augmented-variants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"augmented-variants.d.ts","sourceRoot":"","sources":["../../../../src/src/data/note-collections/augmented-variants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAqDpE,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAElE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,EAAE,eAAe,CACvD,CAAC"}
|
|
@@ -22,8 +22,33 @@ const augmented7 = {
|
|
|
22
22
|
pattern: ["major third", "major third", "major second"],
|
|
23
23
|
patternShort: ["M3", "M3", "M2"],
|
|
24
24
|
};
|
|
25
|
+
const augmentedMajor7 = {
|
|
26
|
+
category: "chord",
|
|
27
|
+
mostSimilarScale: "ionianSharp5",
|
|
28
|
+
primaryName: "+M7",
|
|
29
|
+
names: [
|
|
30
|
+
"+M7",
|
|
31
|
+
"M7♯5",
|
|
32
|
+
"maj7♯5",
|
|
33
|
+
"Augmented Major 7th",
|
|
34
|
+
"Augmented Major Seventh",
|
|
35
|
+
],
|
|
36
|
+
intervals: ["1", "3", "♯5", "7"],
|
|
37
|
+
integers: [0, 4, 8, 11],
|
|
38
|
+
type: ["augmented", "major", "chord", "arpeggio", "tetrad"],
|
|
39
|
+
characteristics: [
|
|
40
|
+
"dreamy",
|
|
41
|
+
"unstable",
|
|
42
|
+
"lush",
|
|
43
|
+
"bright",
|
|
44
|
+
"used in jazz and film harmony",
|
|
45
|
+
],
|
|
46
|
+
pattern: ["major third", "major third", "minor third"],
|
|
47
|
+
patternShort: ["M3", "M3", "m3"],
|
|
48
|
+
};
|
|
25
49
|
export const _augmentedVariants = {
|
|
26
50
|
augmentedTriad,
|
|
27
51
|
augmented7,
|
|
52
|
+
augmentedMajor7,
|
|
28
53
|
};
|
|
29
54
|
export const augmentedVariants = _augmentedVariants;
|
|
@@ -19,6 +19,7 @@ export declare const noteCollections: {
|
|
|
19
19
|
readonly wholeTone: import("../../mod.js").NoteCollection;
|
|
20
20
|
readonly augmentedTriad: import("../../mod.js").ChordCollection;
|
|
21
21
|
readonly augmented7: import("../../mod.js").ChordCollection;
|
|
22
|
+
readonly augmentedMajor7: import("../../mod.js").ChordCollection;
|
|
22
23
|
readonly diminishedTriad: import("../../mod.js").NoteCollection;
|
|
23
24
|
readonly diminished7: import("../../mod.js").NoteCollection;
|
|
24
25
|
readonly halfDiminished7: import("../../mod.js").NoteCollection;
|
|
@@ -81,7 +82,7 @@ export declare const groupedNoteCollections: {
|
|
|
81
82
|
readonly harmonicMinorModes: Record<"harmonicMinor" | "locrianNatural6" | "ionianSharp5" | "dorianSharp4" | "phrygianDominant" | "lydianSharp2" | "superLocrianDoubleFlat7", import("../../mod.js").ModalScaleCollection>;
|
|
82
83
|
readonly melodicMinorModes: Record<"melodicMinor" | "dorianFlat2" | "lydianAugmented" | "lydianDominant" | "mixolydianFlat6" | "aeolianFlat5" | "altered", import("../../mod.js").ModalScaleCollection>;
|
|
83
84
|
readonly diminishedVariants: Record<"diminishedTriad" | "diminished7" | "halfDiminished7" | "wholeHalfDiminished" | "halfWholeDiminished", import("../../mod.js").NoteCollection>;
|
|
84
|
-
readonly augmentedVariants: Record<"augmentedTriad" | "augmented7", import("../../mod.js").ChordCollection>;
|
|
85
|
+
readonly augmentedVariants: Record<"augmentedTriad" | "augmented7" | "augmentedMajor7", import("../../mod.js").ChordCollection>;
|
|
85
86
|
readonly otherNoteCollections: Record<"root" | "rootAndFifth" | "rootAndFourth" | "rootAndTritone" | "bluesPentatonic" | "chromatic" | "wholeTone", import("../../mod.js").NoteCollection>;
|
|
86
87
|
};
|
|
87
88
|
/** A strictly typed generic string representing the key of a top-level note collection category array. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/src/data/note-collections/mod.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,oIAAoI;AACpI,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/src/data/note-collections/mod.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,oIAAoI;AACpI,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWlB,CAAC;AAEX,0HAA0H;AAC1H,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,eAAe,CAAC;AAE7D,qIAAqI;AACrI,eAAO,MAAM,sBAAsB;;;;;;;;;;;CAWzB,CAAC;AAEX,0GAA0G;AAC1G,MAAM,MAAM,sBAAsB,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAEzE,sHAAsH;AACtH,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAC/C,sBAAsB,EACtB;IACE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAkDO,CAAC"}
|
package/esm/src/mod.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A comprehensive library of music theory data, including notes, dyads, scales, chord pitch collections, and chord
|
|
2
|
+
* A comprehensive library of music theory data, including notes, dyads, scales, chord pitch collections, and chord progressions.
|
|
3
3
|
*
|
|
4
4
|
* This package provides a collection of datasets and utility functions
|
|
5
5
|
* to work with fundamental concepts of music theory. It's designed to be
|
package/esm/src/mod.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A comprehensive library of music theory data, including notes, dyads, scales, chord pitch collections, and chord
|
|
2
|
+
* A comprehensive library of music theory data, including notes, dyads, scales, chord pitch collections, and chord progressions.
|
|
3
3
|
*
|
|
4
4
|
* This package provides a collection of datasets and utility functions
|
|
5
5
|
* to work with fundamental concepts of music theory. It's designed to be
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
export interface
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
type?: string;
|
|
1
|
+
import { type ChordProgressionKey } from "../data/chord-progressions/mod.js";
|
|
2
|
+
import type { ChordProgression } from "../types/chord-progressions";
|
|
3
|
+
import type { RootNote } from "../data/labels/note-labels.js";
|
|
4
|
+
import type { NoteCollectionKey } from "../data/note-collections/mod.js";
|
|
5
|
+
export interface ChordProgressionChordReference {
|
|
6
|
+
readonly rootNote: RootNote;
|
|
7
|
+
readonly chordName: string;
|
|
8
|
+
readonly noteCollectionKey: NoteCollectionKey;
|
|
10
9
|
}
|
|
11
|
-
export declare function
|
|
12
|
-
export declare function
|
|
13
|
-
export declare function
|
|
14
|
-
export declare function
|
|
15
|
-
export declare function
|
|
16
|
-
export declare function
|
|
17
|
-
export declare function getChordProgressionTemplateChordNames(rootNote: RootNote, templateOrKey: ChordProgressionTemplate | ChordProgressionTemplateKey): string[];
|
|
10
|
+
export declare function isValidChordProgressionKey(key: string): key is ChordProgressionKey;
|
|
11
|
+
export declare function getChordProgressionChordNames(rootNote: RootNote, progressionOrKey: ChordProgression | ChordProgressionKey): string[];
|
|
12
|
+
export declare function getChordProgressionUniqueChordNames(rootNote: RootNote, progressionOrKey: ChordProgression | ChordProgressionKey): string[];
|
|
13
|
+
export declare function getChordProgressionChordReferences(rootNote: RootNote, progressionOrKey: ChordProgression | ChordProgressionKey): ChordProgressionChordReference[];
|
|
14
|
+
export declare function getChordProgressionUniqueChordReferences(rootNote: RootNote, progressionOrKey: ChordProgression | ChordProgressionKey): ChordProgressionChordReference[];
|
|
15
|
+
export declare function getChordProgressionTotalDurationInBars(progressionOrKey: ChordProgression | ChordProgressionKey): number;
|
|
18
16
|
//# sourceMappingURL=chord-progressions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chord-progressions.d.ts","sourceRoot":"","sources":["../../../src/src/utils/chord-progressions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"chord-progressions.d.ts","sourceRoot":"","sources":["../../../src/src/utils/chord-progressions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAMzE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;CAC/C;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,GACV,GAAG,IAAI,mBAAmB,CAE5B;AASD,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,GAAG,mBAAmB,GACvD,MAAM,EAAE,CAYV;AAED,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,GAAG,mBAAmB,GACvD,MAAM,EAAE,CAIV;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,GAAG,mBAAmB,GACvD,8BAA8B,EAAE,CAmBlC;AAED,wBAAgB,wCAAwC,CACtD,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,GAAG,mBAAmB,GACvD,8BAA8B,EAAE,CAkBlC;AAED,wBAAgB,sCAAsC,CACpD,gBAAgB,EAAE,gBAAgB,GAAG,mBAAmB,GACvD,MAAM,CAQR"}
|