@musodojo/music-theory-data 31.1.0 → 33.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 +58 -7
- package/esm/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/build_message.d.ts.map +1 -1
- package/{script/deps/jsr.io/@std/internal/1.0.13 → esm/deps/jsr.io/@std/internal/1.0.14}/diff.d.ts.map +1 -1
- package/{script/deps/jsr.io/@std/internal/1.0.13 → esm/deps/jsr.io/@std/internal/1.0.14}/diff_str.d.ts.map +1 -1
- package/{script/deps/jsr.io/@std/internal/1.0.13 → esm/deps/jsr.io/@std/internal/1.0.14}/format.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/styles.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/types.d.ts.map +1 -1
- package/esm/src/data/chord-progressions/mod.d.ts +28 -16
- package/esm/src/data/chord-progressions/mod.d.ts.map +1 -1
- package/esm/src/data/chord-progressions/mod.js +180 -65
- package/esm/src/data/chords/mod.d.ts +26 -1
- package/esm/src/data/chords/mod.d.ts.map +1 -1
- package/esm/src/data/chords/mod.js +70 -1
- package/esm/src/data/labels/mod.d.ts +1 -0
- package/esm/src/data/labels/mod.d.ts.map +1 -1
- package/esm/src/data/labels/mod.js +1 -0
- package/esm/src/data/labels/note-label-collections.d.ts +1 -25
- package/esm/src/data/labels/note-label-collections.d.ts.map +1 -1
- package/esm/src/data/labels/note-label-collections.js +1 -77
- package/esm/src/data/labels/note-labels.d.ts +1 -1
- package/esm/src/data/labels/note-labels.d.ts.map +1 -1
- package/esm/src/data/labels/solfege.d.ts +33 -0
- package/esm/src/data/labels/solfege.d.ts.map +1 -0
- package/esm/src/data/labels/solfege.js +165 -0
- package/esm/src/data/note-collections/augmented-variants.d.ts.map +1 -1
- package/esm/src/data/note-collections/augmented-variants.js +3 -2
- package/esm/src/data/note-collections/mod.d.ts +15 -0
- package/esm/src/data/note-collections/mod.d.ts.map +1 -1
- package/esm/src/data/note-collections/mod.js +2 -2
- package/esm/src/utils/chord-progressions.d.ts +22 -5
- package/esm/src/utils/chord-progressions.d.ts.map +1 -1
- package/esm/src/utils/chord-progressions.js +70 -7
- package/esm/src/utils/chords.d.ts +7 -1
- package/esm/src/utils/chords.d.ts.map +1 -1
- package/esm/src/utils/chords.js +18 -1
- package/esm/src/utils/conversion-registry.d.ts +40 -20
- package/esm/src/utils/conversion-registry.d.ts.map +1 -1
- package/esm/src/utils/conversion-registry.js +95 -25
- package/esm/src/utils/intervals.d.ts +3 -0
- package/esm/src/utils/intervals.d.ts.map +1 -1
- package/esm/src/utils/intervals.js +23 -0
- package/esm/src/utils/midi.d.ts +7 -0
- package/esm/src/utils/midi.d.ts.map +1 -1
- package/esm/src/utils/midi.js +16 -0
- package/esm/src/utils/note-collections.d.ts +9 -1
- package/esm/src/utils/note-collections.d.ts.map +1 -1
- package/esm/src/utils/note-collections.js +22 -0
- package/esm/tests/solfege.test.d.ts.map +1 -0
- package/package.json +1 -1
- package/script/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/build_message.d.ts.map +1 -1
- package/{esm/deps/jsr.io/@std/internal/1.0.13 → script/deps/jsr.io/@std/internal/1.0.14}/diff.d.ts.map +1 -1
- package/{esm/deps/jsr.io/@std/internal/1.0.13 → script/deps/jsr.io/@std/internal/1.0.14}/diff_str.d.ts.map +1 -1
- package/{esm/deps/jsr.io/@std/internal/1.0.13 → script/deps/jsr.io/@std/internal/1.0.14}/format.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/styles.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/types.d.ts.map +1 -1
- package/script/src/data/chord-progressions/mod.d.ts +28 -16
- package/script/src/data/chord-progressions/mod.d.ts.map +1 -1
- package/script/src/data/chord-progressions/mod.js +181 -66
- package/script/src/data/chords/mod.d.ts +26 -1
- package/script/src/data/chords/mod.d.ts.map +1 -1
- package/script/src/data/chords/mod.js +75 -2
- package/script/src/data/labels/mod.d.ts +1 -0
- package/script/src/data/labels/mod.d.ts.map +1 -1
- package/script/src/data/labels/mod.js +1 -0
- package/script/src/data/labels/note-label-collections.d.ts +1 -25
- package/script/src/data/labels/note-label-collections.d.ts.map +1 -1
- package/script/src/data/labels/note-label-collections.js +1 -77
- package/script/src/data/labels/note-labels.d.ts +1 -1
- package/script/src/data/labels/note-labels.d.ts.map +1 -1
- package/script/src/data/labels/solfege.d.ts +33 -0
- package/script/src/data/labels/solfege.d.ts.map +1 -0
- package/script/src/data/labels/solfege.js +173 -0
- package/script/src/data/note-collections/augmented-variants.d.ts.map +1 -1
- package/script/src/data/note-collections/augmented-variants.js +3 -2
- package/script/src/data/note-collections/mod.d.ts +15 -0
- package/script/src/data/note-collections/mod.d.ts.map +1 -1
- package/script/src/utils/chord-progressions.d.ts +22 -5
- package/script/src/utils/chord-progressions.d.ts.map +1 -1
- package/script/src/utils/chord-progressions.js +72 -5
- package/script/src/utils/chords.d.ts +7 -1
- package/script/src/utils/chords.d.ts.map +1 -1
- package/script/src/utils/chords.js +19 -0
- package/script/src/utils/conversion-registry.d.ts +40 -20
- package/script/src/utils/conversion-registry.d.ts.map +1 -1
- package/script/src/utils/conversion-registry.js +98 -26
- package/script/src/utils/intervals.d.ts +3 -0
- package/script/src/utils/intervals.d.ts.map +1 -1
- package/script/src/utils/intervals.js +26 -0
- package/script/src/utils/midi.d.ts +7 -0
- package/script/src/utils/midi.d.ts.map +1 -1
- package/script/src/utils/midi.js +19 -0
- package/script/src/utils/note-collections.d.ts +9 -1
- package/script/src/utils/note-collections.d.ts.map +1 -1
- package/script/src/utils/note-collections.js +25 -0
- package/script/tests/solfege.test.d.ts.map +1 -0
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { noteCollections, } from "../data/note-collections/mod.js";
|
|
2
|
+
import { rootNoteToIntegerMap, } from "../data/labels/note-labels.js";
|
|
3
|
+
import { normalizeChromaticIndex } from "./chromatic.js";
|
|
4
|
+
import { normalizeRootNoteString } from "./note-names.js";
|
|
2
5
|
/**
|
|
3
6
|
* Checks if a given string is a valid `NoteCollectionKey`.
|
|
4
7
|
* @param key The string to check.
|
|
@@ -7,6 +10,25 @@ import { noteCollections, } from "../data/note-collections/mod.js";
|
|
|
7
10
|
export function isValidNoteCollectionKey(key) {
|
|
8
11
|
return Object.prototype.hasOwnProperty.call(noteCollections, key);
|
|
9
12
|
}
|
|
13
|
+
export function getNoteCollectionPitchClasses({ rootNote: rawRootNote, noteCollectionKey, }) {
|
|
14
|
+
const rootNote = normalizeRootNoteString(rawRootNote);
|
|
15
|
+
if (!rootNote || !isValidNoteCollectionKey(noteCollectionKey)) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
const rootInteger = rootNoteToIntegerMap.get(rootNote);
|
|
19
|
+
if (rootInteger === undefined)
|
|
20
|
+
return undefined;
|
|
21
|
+
const collection = noteCollections[noteCollectionKey];
|
|
22
|
+
const pitchClasses = collection.integers.map((interval) => normalizeChromaticIndex(rootInteger + interval));
|
|
23
|
+
return new Set(pitchClasses);
|
|
24
|
+
}
|
|
25
|
+
export const noteCollectionDisplayNames = new Map(Object.entries(noteCollections).map(([collectionKey, collection]) => [
|
|
26
|
+
collectionKey,
|
|
27
|
+
collection.primaryName,
|
|
28
|
+
]));
|
|
29
|
+
export function getNoteCollectionDisplayName(noteCollectionKey) {
|
|
30
|
+
return noteCollectionDisplayNames.get(noteCollectionKey) ?? noteCollectionKey;
|
|
31
|
+
}
|
|
10
32
|
const normalizationMap = new Map();
|
|
11
33
|
const aliasSets = {
|
|
12
34
|
"♭": ["b", "flat"],
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solfege.test.d.ts","sourceRoot":"","sources":["../../src/tests/solfege.test.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_message.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"build_message.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.14/build_message.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,QAAQ;AAClB;;;GAGG;AACH,UAAU,UAAQ,GACjB,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAWvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CASrD;AAED,4CAA4C;AAC5C,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAC7C,OAAO,GAAE,mBAAwB,EACjC,YAAY,CAAC,EAAE,CACb,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAC7C,UAAU,EAAE,OAAO,EACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,KAC1B,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GACrC,MAAM,EAAE,CA8BV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.14/diff.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;CACZ;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAanD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAWvE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,CAAC,EAAE,CAAC,EAAE,EACN,CAAC,EAAE,CAAC,EAAE,EACN,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,EACnB,kBAAkB,EAAE,MAAM,GACzB,KAAK,CAAC;IACP,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,CAAC,CAAC;CACV,CAAC,CAiCD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,QAAQ,CACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,WAAW,EACnB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,aAAa,GACnB,aAAa,CAsBf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAwEvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff_str.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"diff_str.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.14/diff_str.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,YAAY,CAAC;AAGhE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAY/C;AAKD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,MAAM,EAAE,CAiBnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,GAC3B,UAAU,CAAC,MAAM,CAAC,EAAE,CAetB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAkDlE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.14/format.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,SAAS,GAAG,CACtB,CAAC,EAAE,OAAO,EACV,OAAO,EAAE;IACP,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,KACE,MAAM,CAAC;AAEZ;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAmBzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.14/styles.ts"],"names":[],"mappings":"AAqCA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAWD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.14/types.ts"],"names":[],"mappings":"AAGA,kDAAkD;AAClD,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAEvE;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;CAC3B,CAAC"}
|
|
@@ -1,25 +1,37 @@
|
|
|
1
|
-
import type { ChordProgression, ChordProgressionBarGroup } from "../../types/chord-progressions";
|
|
1
|
+
import type { ChordProgression, ChordProgressionBarGroup, ChordProgressionCategoryGroup, ChordProgressionCategoryKey, ChordProgressionCategoryMetadata } from "../../types/chord-progressions";
|
|
2
|
+
type BuiltInChordProgression = ChordProgression & {
|
|
3
|
+
readonly category: ChordProgressionCategoryKey;
|
|
4
|
+
};
|
|
5
|
+
/** Category display metadata for built-in chord progressions. */
|
|
6
|
+
export declare const chordProgressionCategories: Record<ChordProgressionCategoryKey, ChordProgressionCategoryMetadata>;
|
|
7
|
+
/** Built-in chord progression category keys in recommended display order. */
|
|
8
|
+
export declare const chordProgressionCategoryKeys: readonly ChordProgressionCategoryKey[];
|
|
2
9
|
declare const _chordProgressions: {
|
|
3
|
-
readonly oneOneFiveFive:
|
|
4
|
-
readonly oneOneFiveFiveDominant7:
|
|
5
|
-
readonly oneOneFourFour:
|
|
6
|
-
readonly oneOneFourFive:
|
|
7
|
-
readonly oneFourOneFive:
|
|
8
|
-
readonly oneSixFourFive:
|
|
9
|
-
readonly oneFiveSixFour:
|
|
10
|
-
readonly oneSixTwoFive:
|
|
11
|
-
readonly sixTwoFiveOne:
|
|
12
|
-
readonly majorTwoFiveOne:
|
|
13
|
-
readonly minorTwoFiveOne:
|
|
14
|
-
readonly oneFourOneFiveSplitReturn:
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
10
|
+
readonly oneOneFiveFive: BuiltInChordProgression;
|
|
11
|
+
readonly oneOneFiveFiveDominant7: BuiltInChordProgression;
|
|
12
|
+
readonly oneOneFourFour: BuiltInChordProgression;
|
|
13
|
+
readonly oneOneFourFive: BuiltInChordProgression;
|
|
14
|
+
readonly oneFourOneFive: BuiltInChordProgression;
|
|
15
|
+
readonly oneSixFourFive: BuiltInChordProgression;
|
|
16
|
+
readonly oneFiveSixFour: BuiltInChordProgression;
|
|
17
|
+
readonly oneSixTwoFive: BuiltInChordProgression;
|
|
18
|
+
readonly sixTwoFiveOne: BuiltInChordProgression;
|
|
19
|
+
readonly majorTwoFiveOne: BuiltInChordProgression;
|
|
20
|
+
readonly minorTwoFiveOne: BuiltInChordProgression;
|
|
21
|
+
readonly oneFourOneFiveSplitReturn: BuiltInChordProgression;
|
|
22
|
+
readonly autumnLeavesA: BuiltInChordProgression;
|
|
23
|
+
readonly autumnLeavesB: BuiltInChordProgression;
|
|
24
|
+
readonly twelveBarBlues: BuiltInChordProgression;
|
|
25
|
+
readonly twelveBarBluesQuickChange: BuiltInChordProgression;
|
|
26
|
+
readonly rhythmChanges: BuiltInChordProgression;
|
|
17
27
|
};
|
|
18
28
|
/** A key for one of the built-in chord progression templates. */
|
|
19
29
|
export type ChordProgressionKey = keyof typeof _chordProgressions;
|
|
20
30
|
/** Built-in chord progression templates keyed by progression id. */
|
|
21
|
-
export declare const chordProgressions: Record<ChordProgressionKey,
|
|
31
|
+
export declare const chordProgressions: Record<ChordProgressionKey, BuiltInChordProgression>;
|
|
22
32
|
/** Built-in chord progression keys grouped by total duration in bars. */
|
|
23
33
|
export declare const chordProgressionBarGroups: readonly ChordProgressionBarGroup<ChordProgressionKey>[];
|
|
34
|
+
/** Built-in chord progression keys grouped by musical category. */
|
|
35
|
+
export declare const chordProgressionCategoryGroups: readonly ChordProgressionCategoryGroup<ChordProgressionKey>[];
|
|
24
36
|
export {};
|
|
25
37
|
//# 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":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/src/data/chord-progressions/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,gCAAgC,EAEjC,MAAM,gCAAgC,CAAC;AAExC,KAAK,uBAAuB,GAAG,gBAAgB,GAAG;IAChD,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;CAChD,CAAC;AAgDF,iEAAiE;AACjE,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAC7C,2BAA2B,EAC3B,gCAAgC,CACH,CAAC;AAEhC,6EAA6E;AAC7E,eAAO,MAAM,4BAA4B,EACvC,SAAS,2BAA2B,EAKnC,CAAC;AAsNJ,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;CAkBd,CAAC;AAEX,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAElE,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,mBAAmB,EACnB,uBAAuB,CACH,CAAC;AAiBvB,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,EAAE,SAAS,wBAAwB,CACvE,mBAAmB,CACpB,EAM0C,CAAC;AAE5C,mEAAmE;AACnE,eAAO,MAAM,8BAA8B,EACzC,SAAS,6BAA6B,CAAC,mBAAmB,CAAC,EAQtD,CAAC"}
|
|
@@ -1,131 +1,237 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.chordProgressionBarGroups = exports.chordProgressions = void 0;
|
|
4
|
-
function chord(
|
|
5
|
-
|
|
6
|
-
romanSymbol,
|
|
3
|
+
exports.chordProgressionCategoryGroups = exports.chordProgressionBarGroups = exports.chordProgressions = exports.chordProgressionCategoryKeys = exports.chordProgressionCategories = void 0;
|
|
4
|
+
function chord(degree, chordCollectionKey, durationInBars, analysis) {
|
|
5
|
+
const progressionChord = {
|
|
7
6
|
degree,
|
|
8
|
-
|
|
7
|
+
chordCollectionKey,
|
|
9
8
|
durationInBars,
|
|
10
9
|
};
|
|
10
|
+
if (analysis === undefined)
|
|
11
|
+
return progressionChord;
|
|
12
|
+
return {
|
|
13
|
+
...progressionChord,
|
|
14
|
+
analysis,
|
|
15
|
+
};
|
|
11
16
|
}
|
|
17
|
+
const _chordProgressionCategories = {
|
|
18
|
+
fundamentals: {
|
|
19
|
+
name: "Fundamentals",
|
|
20
|
+
description: "Small tonic, subdominant, and dominant patterns for core harmonic motion.",
|
|
21
|
+
},
|
|
22
|
+
popular: {
|
|
23
|
+
name: "Popular Loops",
|
|
24
|
+
description: "Common diatonic loops used widely in popular, rock, folk, and songwriting contexts.",
|
|
25
|
+
},
|
|
26
|
+
jazz: {
|
|
27
|
+
name: "Jazz & Turnarounds",
|
|
28
|
+
description: "ii-V motion, turnarounds, and jazz-standard forms with richer chord collections.",
|
|
29
|
+
},
|
|
30
|
+
blues: {
|
|
31
|
+
name: "Blues",
|
|
32
|
+
description: "Blues forms built from dominant-function tonic, subdominant, and dominant areas.",
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
/** Category display metadata for built-in chord progressions. */
|
|
36
|
+
exports.chordProgressionCategories = _chordProgressionCategories;
|
|
37
|
+
/** Built-in chord progression category keys in recommended display order. */
|
|
38
|
+
exports.chordProgressionCategoryKeys = [
|
|
39
|
+
"fundamentals",
|
|
40
|
+
"popular",
|
|
41
|
+
"jazz",
|
|
42
|
+
"blues",
|
|
43
|
+
];
|
|
12
44
|
const oneOneFiveFive = {
|
|
45
|
+
category: "fundamentals",
|
|
13
46
|
chords: [
|
|
14
|
-
chord("
|
|
15
|
-
chord("
|
|
47
|
+
chord("1", "major", 2),
|
|
48
|
+
chord("5", "major", 2),
|
|
16
49
|
],
|
|
17
50
|
};
|
|
18
51
|
const oneOneFiveFiveDominant7 = {
|
|
52
|
+
category: "fundamentals",
|
|
19
53
|
chords: [
|
|
20
|
-
chord("
|
|
21
|
-
chord("
|
|
22
|
-
chord("
|
|
54
|
+
chord("1", "major", 2),
|
|
55
|
+
chord("5", "major", 1),
|
|
56
|
+
chord("5", "dominant7", 1),
|
|
23
57
|
],
|
|
24
58
|
};
|
|
25
59
|
const oneOneFourFour = {
|
|
60
|
+
category: "fundamentals",
|
|
26
61
|
chords: [
|
|
27
|
-
chord("
|
|
28
|
-
chord("
|
|
62
|
+
chord("1", "major", 2),
|
|
63
|
+
chord("4", "major", 2),
|
|
29
64
|
],
|
|
30
65
|
};
|
|
31
66
|
const oneOneFourFive = {
|
|
67
|
+
category: "fundamentals",
|
|
32
68
|
chords: [
|
|
33
|
-
chord("
|
|
34
|
-
chord("
|
|
35
|
-
chord("
|
|
69
|
+
chord("1", "major", 2),
|
|
70
|
+
chord("4", "major", 1),
|
|
71
|
+
chord("5", "major", 1),
|
|
36
72
|
],
|
|
37
73
|
};
|
|
38
74
|
const oneFourOneFive = {
|
|
75
|
+
category: "fundamentals",
|
|
39
76
|
chords: [
|
|
40
|
-
chord("
|
|
41
|
-
chord("
|
|
42
|
-
chord("
|
|
43
|
-
chord("
|
|
77
|
+
chord("1", "major", 1),
|
|
78
|
+
chord("4", "major", 1),
|
|
79
|
+
chord("1", "major", 1),
|
|
80
|
+
chord("5", "major", 1),
|
|
44
81
|
],
|
|
45
82
|
};
|
|
46
83
|
const oneSixFourFive = {
|
|
84
|
+
category: "popular",
|
|
47
85
|
chords: [
|
|
48
|
-
chord("
|
|
49
|
-
chord("
|
|
50
|
-
chord("
|
|
51
|
-
chord("
|
|
86
|
+
chord("1", "major", 1),
|
|
87
|
+
chord("6", "minor", 1),
|
|
88
|
+
chord("4", "major", 1),
|
|
89
|
+
chord("5", "major", 1),
|
|
52
90
|
],
|
|
53
91
|
};
|
|
54
92
|
const oneFiveSixFour = {
|
|
93
|
+
category: "popular",
|
|
55
94
|
chords: [
|
|
56
|
-
chord("
|
|
57
|
-
chord("
|
|
58
|
-
chord("
|
|
59
|
-
chord("
|
|
95
|
+
chord("1", "major", 1),
|
|
96
|
+
chord("5", "major", 1),
|
|
97
|
+
chord("6", "minor", 1),
|
|
98
|
+
chord("4", "major", 1),
|
|
60
99
|
],
|
|
61
100
|
};
|
|
62
101
|
const oneSixTwoFive = {
|
|
102
|
+
category: "jazz",
|
|
63
103
|
chords: [
|
|
64
|
-
chord("
|
|
65
|
-
chord("
|
|
66
|
-
chord("
|
|
67
|
-
chord("
|
|
104
|
+
chord("1", "major", 1),
|
|
105
|
+
chord("6", "minor", 1),
|
|
106
|
+
chord("2", "minor", 1),
|
|
107
|
+
chord("5", "major", 1),
|
|
68
108
|
],
|
|
69
109
|
};
|
|
70
110
|
const sixTwoFiveOne = {
|
|
111
|
+
category: "jazz",
|
|
71
112
|
chords: [
|
|
72
|
-
chord("
|
|
73
|
-
chord("
|
|
74
|
-
chord("
|
|
75
|
-
chord("
|
|
113
|
+
chord("6", "minor", 1),
|
|
114
|
+
chord("2", "minor", 1),
|
|
115
|
+
chord("5", "major", 1),
|
|
116
|
+
chord("1", "major", 1),
|
|
76
117
|
],
|
|
77
118
|
};
|
|
78
119
|
const majorTwoFiveOne = {
|
|
120
|
+
category: "jazz",
|
|
79
121
|
chords: [
|
|
80
|
-
chord("
|
|
81
|
-
chord("
|
|
82
|
-
chord("
|
|
122
|
+
chord("2", "minor7", 1),
|
|
123
|
+
chord("5", "dominant7", 1),
|
|
124
|
+
chord("1", "major7", 2),
|
|
83
125
|
],
|
|
84
126
|
};
|
|
85
127
|
const minorTwoFiveOne = {
|
|
128
|
+
category: "jazz",
|
|
129
|
+
chords: [
|
|
130
|
+
chord("2", "halfDiminished7", 1),
|
|
131
|
+
chord("5", "dominant7", 1),
|
|
132
|
+
chord("1", "minor", 2),
|
|
133
|
+
],
|
|
134
|
+
};
|
|
135
|
+
const autumnLeavesA = {
|
|
136
|
+
commonName: "Autumn Leaves A Section",
|
|
137
|
+
category: "jazz",
|
|
86
138
|
chords: [
|
|
87
|
-
chord("
|
|
88
|
-
chord("
|
|
89
|
-
chord("
|
|
139
|
+
chord("2", "minor7", 1),
|
|
140
|
+
chord("5", "dominant7", 1),
|
|
141
|
+
chord("1", "major7", 1),
|
|
142
|
+
chord("4", "major7", 1),
|
|
143
|
+
chord("7", "halfDiminished7", 1, { romanSymbol: "iiø7/vi" }),
|
|
144
|
+
chord("3", "dominant7", 1, { romanSymbol: "V7/vi" }),
|
|
145
|
+
chord("6", "minor", 2),
|
|
146
|
+
],
|
|
147
|
+
};
|
|
148
|
+
const autumnLeavesB = {
|
|
149
|
+
commonName: "Autumn Leaves B Section",
|
|
150
|
+
category: "jazz",
|
|
151
|
+
chords: [
|
|
152
|
+
chord("7", "halfDiminished7", 1, { romanSymbol: "iiø7/vi" }),
|
|
153
|
+
chord("3", "dominant7", 1, { romanSymbol: "V7/vi" }),
|
|
154
|
+
chord("6", "minor", 2),
|
|
155
|
+
chord("2", "minor7", 1),
|
|
156
|
+
chord("5", "dominant7", 1),
|
|
157
|
+
chord("1", "major7", 1),
|
|
158
|
+
chord("4", "major7", 1),
|
|
90
159
|
],
|
|
91
160
|
};
|
|
92
161
|
const oneFourOneFiveSplitReturn = {
|
|
162
|
+
category: "fundamentals",
|
|
93
163
|
chords: [
|
|
94
|
-
chord("
|
|
95
|
-
chord("
|
|
96
|
-
chord("
|
|
97
|
-
chord("
|
|
98
|
-
chord("
|
|
99
|
-
chord("
|
|
100
|
-
chord("
|
|
101
|
-
chord("
|
|
102
|
-
chord("
|
|
164
|
+
chord("1", "major", 1),
|
|
165
|
+
chord("4", "major", 1),
|
|
166
|
+
chord("1", "major", 1),
|
|
167
|
+
chord("5", "major", 1),
|
|
168
|
+
chord("1", "major", 1),
|
|
169
|
+
chord("4", "major", 1),
|
|
170
|
+
chord("1", "major", 0.5),
|
|
171
|
+
chord("5", "major", 0.5),
|
|
172
|
+
chord("1", "major", 1),
|
|
103
173
|
],
|
|
104
174
|
};
|
|
105
175
|
const twelveBarBlues = {
|
|
106
176
|
commonName: "12 Bar Blues",
|
|
177
|
+
category: "blues",
|
|
107
178
|
chords: [
|
|
108
|
-
chord("
|
|
109
|
-
chord("
|
|
110
|
-
chord("
|
|
111
|
-
chord("
|
|
112
|
-
chord("
|
|
113
|
-
chord("
|
|
114
|
-
chord("
|
|
179
|
+
chord("1", "dominant7", 4),
|
|
180
|
+
chord("4", "dominant7", 2),
|
|
181
|
+
chord("1", "dominant7", 2),
|
|
182
|
+
chord("5", "dominant7", 1),
|
|
183
|
+
chord("4", "dominant7", 1),
|
|
184
|
+
chord("1", "dominant7", 1),
|
|
185
|
+
chord("5", "dominant7", 1),
|
|
115
186
|
],
|
|
116
187
|
};
|
|
117
188
|
const twelveBarBluesQuickChange = {
|
|
118
189
|
commonName: "12 Bar Blues Quick Change",
|
|
190
|
+
category: "blues",
|
|
191
|
+
chords: [
|
|
192
|
+
chord("1", "dominant7", 1),
|
|
193
|
+
chord("4", "dominant7", 1),
|
|
194
|
+
chord("1", "dominant7", 2),
|
|
195
|
+
chord("4", "dominant7", 2),
|
|
196
|
+
chord("1", "dominant7", 2),
|
|
197
|
+
chord("5", "dominant7", 1),
|
|
198
|
+
chord("4", "dominant7", 1),
|
|
199
|
+
chord("1", "dominant7", 1),
|
|
200
|
+
chord("5", "dominant7", 1),
|
|
201
|
+
],
|
|
202
|
+
};
|
|
203
|
+
const rhythmChangesAChords = [
|
|
204
|
+
chord("1", "major", 0.5),
|
|
205
|
+
chord("6", "dominant7", 0.5),
|
|
206
|
+
chord("2", "minor7", 0.5),
|
|
207
|
+
chord("5", "dominant7", 0.5),
|
|
208
|
+
chord("3", "minor7", 0.5),
|
|
209
|
+
chord("6", "dominant7", 0.5),
|
|
210
|
+
chord("2", "minor7", 0.5),
|
|
211
|
+
chord("5", "dominant7", 0.5),
|
|
212
|
+
chord("1", "major", 0.5),
|
|
213
|
+
chord("1", "dominant7", 0.5),
|
|
214
|
+
chord("4", "major", 0.5),
|
|
215
|
+
chord("♯4", "diminished7", 0.5),
|
|
216
|
+
chord("1", "major", 0.5),
|
|
217
|
+
chord("6", "dominant7", 0.5),
|
|
218
|
+
chord("2", "minor7", 0.5),
|
|
219
|
+
chord("5", "dominant7", 0.5),
|
|
220
|
+
];
|
|
221
|
+
const rhythmChangesBridgeChords = [
|
|
222
|
+
chord("3", "dominant7", 2),
|
|
223
|
+
chord("6", "dominant7", 2),
|
|
224
|
+
chord("2", "dominant7", 2),
|
|
225
|
+
chord("5", "dominant7", 2),
|
|
226
|
+
];
|
|
227
|
+
const rhythmChanges = {
|
|
228
|
+
commonName: "Rhythm Changes",
|
|
229
|
+
category: "jazz",
|
|
119
230
|
chords: [
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
chord("I7", "1", "7", 2),
|
|
125
|
-
chord("V7", "5", "7", 1),
|
|
126
|
-
chord("IV7", "4", "7", 1),
|
|
127
|
-
chord("I7", "1", "7", 1),
|
|
128
|
-
chord("V7", "5", "7", 1),
|
|
231
|
+
...rhythmChangesAChords,
|
|
232
|
+
...rhythmChangesAChords,
|
|
233
|
+
...rhythmChangesBridgeChords,
|
|
234
|
+
...rhythmChangesAChords,
|
|
129
235
|
],
|
|
130
236
|
};
|
|
131
237
|
const _chordProgressions = {
|
|
@@ -141,8 +247,11 @@ const _chordProgressions = {
|
|
|
141
247
|
majorTwoFiveOne,
|
|
142
248
|
minorTwoFiveOne,
|
|
143
249
|
oneFourOneFiveSplitReturn,
|
|
250
|
+
autumnLeavesA,
|
|
251
|
+
autumnLeavesB,
|
|
144
252
|
twelveBarBlues,
|
|
145
253
|
twelveBarBluesQuickChange,
|
|
254
|
+
rhythmChanges,
|
|
146
255
|
};
|
|
147
256
|
/** Built-in chord progression templates keyed by progression id. */
|
|
148
257
|
exports.chordProgressions = _chordProgressions;
|
|
@@ -163,3 +272,9 @@ exports.chordProgressionBarGroups = Array.from(chordProgressionsByTotalBars, ([t
|
|
|
163
272
|
totalBars,
|
|
164
273
|
progressionKeys,
|
|
165
274
|
})).sort((a, b) => a.totalBars - b.totalBars);
|
|
275
|
+
/** Built-in chord progression keys grouped by musical category. */
|
|
276
|
+
exports.chordProgressionCategoryGroups = exports.chordProgressionCategoryKeys.map((category) => ({
|
|
277
|
+
category,
|
|
278
|
+
...exports.chordProgressionCategories[category],
|
|
279
|
+
progressionKeys: Object.entries(exports.chordProgressions).flatMap(([key, progression]) => progression.category === category ? [key] : []),
|
|
280
|
+
}));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NoteCollectionKey } from "../note-collections/mod.js";
|
|
1
|
+
import type { ChordCollectionKey, NoteCollectionKey } from "../note-collections/mod.js";
|
|
2
2
|
declare const _triadChordQualities: readonly ["M", "m", "°", "+"];
|
|
3
3
|
declare const _seventhChordQualities: readonly ["M7", "m7", "7", "ø7", "m7♭5", "°7", "m(M7)", "+M7", "M7♯5"];
|
|
4
4
|
declare const _upperCaseRomanNumerals: readonly ["I", "II", "III", "IV", "V", "VI", "VII"];
|
|
@@ -26,16 +26,33 @@ export interface ChordQualityRomanRendering {
|
|
|
26
26
|
readonly numeralCase: RomanNumeralCase;
|
|
27
27
|
readonly suffix: string;
|
|
28
28
|
}
|
|
29
|
+
/** Rendering metadata for converting a chord collection into chord/roman symbols. */
|
|
30
|
+
export interface ChordCollectionSymbolRendering {
|
|
31
|
+
/** The suffix used after a root note in a chord symbol, e.g. "m7" in "Dm7". */
|
|
32
|
+
readonly chordSuffix: string;
|
|
33
|
+
/** The suffix used after a roman numeral, e.g. "ø7" in "iiø7". */
|
|
34
|
+
readonly romanSuffix: string;
|
|
35
|
+
/** The preferred roman numeral case for this chord collection. */
|
|
36
|
+
readonly numeralCase: RomanNumeralCase;
|
|
37
|
+
}
|
|
38
|
+
export type ChordCollectionChordSuffix = string;
|
|
39
|
+
export type ChordCollectionRomanSuffix = string;
|
|
29
40
|
/** The complete set of supported triad chord qualities. */
|
|
30
41
|
export declare const triadChordQualities: readonly Triad[];
|
|
31
42
|
/** The complete set of supported seventh chord qualities. */
|
|
32
43
|
export declare const seventhChordQualities: readonly SeventhChord[];
|
|
33
44
|
/** The complete set of supported chord suffix qualities. */
|
|
34
45
|
export declare const chordQualities: readonly ChordQuality[];
|
|
46
|
+
/** Maps each supported chord quality to its matching chord collection key. */
|
|
47
|
+
export type ChordQualityChordCollectionKeyMap = Record<ChordQuality, ChordCollectionKey>;
|
|
48
|
+
/** Chord collection keys for every supported chord quality. */
|
|
49
|
+
export declare const chordQualityChordCollectionKeys: ChordQualityChordCollectionKeyMap;
|
|
35
50
|
/** Maps each supported chord quality to its matching note-collection key. */
|
|
36
51
|
export type ChordQualityNoteCollectionKeyMap = Record<ChordQuality, NoteCollectionKey>;
|
|
37
52
|
/** Note-collection keys for every supported chord quality. */
|
|
38
53
|
export declare const chordQualityNoteCollectionKeys: ChordQualityNoteCollectionKeyMap;
|
|
54
|
+
/** Symbol rendering metadata for every built-in chord collection. */
|
|
55
|
+
export declare const chordCollectionSymbolRenderings: Record<ChordCollectionKey, ChordCollectionSymbolRendering>;
|
|
39
56
|
/** Roman numeral rendering metadata for each supported chord quality. */
|
|
40
57
|
export declare const chordQualityRomanRenderings: ReadonlyMap<ChordQuality, ChordQualityRomanRendering>;
|
|
41
58
|
/** An ordered array containing the fundamental triad qualities of the diatonic major scale. */
|
|
@@ -56,5 +73,13 @@ export declare const upperCaseRomanNumerals: readonly UpperCaseRomanNumeral[];
|
|
|
56
73
|
export declare const lowerCaseRomanNumerals: readonly LowerCaseRomanNumeral[];
|
|
57
74
|
/** Returns the note-collection key that describes the notes in a chord quality. */
|
|
58
75
|
export declare function getChordQualityNoteCollectionKey(quality: ChordQuality): NoteCollectionKey;
|
|
76
|
+
/** Returns the chord-collection key that describes the notes in a chord quality. */
|
|
77
|
+
export declare function getChordQualityChordCollectionKey(quality: ChordQuality): ChordCollectionKey;
|
|
78
|
+
/** Returns symbol rendering metadata for a chord collection. */
|
|
79
|
+
export declare function getChordCollectionSymbolRendering(chordCollectionKey: ChordCollectionKey): ChordCollectionSymbolRendering;
|
|
80
|
+
/** Returns the chord-symbol suffix for a chord collection. */
|
|
81
|
+
export declare function getChordCollectionChordSuffix(chordCollectionKey: ChordCollectionKey): ChordCollectionChordSuffix;
|
|
82
|
+
/** Returns the roman-symbol suffix for a chord collection. */
|
|
83
|
+
export declare function getChordCollectionRomanSuffix(chordCollectionKey: ChordCollectionKey): ChordCollectionRomanSuffix;
|
|
59
84
|
export {};
|
|
60
85
|
//# 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,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/src/data/chords/mod.ts"],"names":[],"mappings":"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"}
|