@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.
Files changed (58) hide show
  1. package/README.md +42 -12
  2. package/esm/src/data/chord-progressions/mod.d.ts +19 -64
  3. package/esm/src/data/chord-progressions/mod.d.ts.map +1 -1
  4. package/esm/src/data/chord-progressions/mod.js +149 -65
  5. package/esm/src/data/chords/mod.d.ts +5 -0
  6. package/esm/src/data/chords/mod.d.ts.map +1 -1
  7. package/esm/src/data/chords/mod.js +20 -0
  8. package/esm/src/data/note-collections/augmented-variants.d.ts +1 -0
  9. package/esm/src/data/note-collections/augmented-variants.d.ts.map +1 -1
  10. package/esm/src/data/note-collections/augmented-variants.js +25 -0
  11. package/esm/src/data/note-collections/mod.d.ts +2 -1
  12. package/esm/src/data/note-collections/mod.d.ts.map +1 -1
  13. package/esm/src/mod.d.ts +1 -1
  14. package/esm/src/mod.js +1 -1
  15. package/esm/src/utils/chord-progressions.d.ts +14 -16
  16. package/esm/src/utils/chord-progressions.d.ts.map +1 -1
  17. package/esm/src/utils/chord-progressions.js +49 -105
  18. package/package.json +1 -1
  19. package/script/src/data/chord-progressions/mod.d.ts +19 -64
  20. package/script/src/data/chord-progressions/mod.d.ts.map +1 -1
  21. package/script/src/data/chord-progressions/mod.js +150 -70
  22. package/script/src/data/chords/mod.d.ts +5 -0
  23. package/script/src/data/chords/mod.d.ts.map +1 -1
  24. package/script/src/data/chords/mod.js +22 -1
  25. package/script/src/data/note-collections/augmented-variants.d.ts +1 -0
  26. package/script/src/data/note-collections/augmented-variants.d.ts.map +1 -1
  27. package/script/src/data/note-collections/augmented-variants.js +25 -0
  28. package/script/src/data/note-collections/mod.d.ts +2 -1
  29. package/script/src/data/note-collections/mod.d.ts.map +1 -1
  30. package/script/src/mod.d.ts +1 -1
  31. package/script/src/mod.js +1 -1
  32. package/script/src/utils/chord-progressions.d.ts +14 -16
  33. package/script/src/utils/chord-progressions.d.ts.map +1 -1
  34. package/script/src/utils/chord-progressions.js +51 -108
  35. package/esm/src/data/chord-progressions/basic.d.ts +0 -10
  36. package/esm/src/data/chord-progressions/basic.d.ts.map +0 -1
  37. package/esm/src/data/chord-progressions/basic.js +0 -164
  38. package/esm/src/data/chord-progressions/blues.d.ts +0 -5
  39. package/esm/src/data/chord-progressions/blues.d.ts.map +0 -1
  40. package/esm/src/data/chord-progressions/blues.js +0 -30
  41. package/esm/src/data/chord-progressions/jazz.d.ts +0 -8
  42. package/esm/src/data/chord-progressions/jazz.d.ts.map +0 -1
  43. package/esm/src/data/chord-progressions/jazz.js +0 -143
  44. package/esm/src/data/chord-progressions/pop.d.ts +0 -6
  45. package/esm/src/data/chord-progressions/pop.d.ts.map +0 -1
  46. package/esm/src/data/chord-progressions/pop.js +0 -42
  47. package/script/src/data/chord-progressions/basic.d.ts +0 -10
  48. package/script/src/data/chord-progressions/basic.d.ts.map +0 -1
  49. package/script/src/data/chord-progressions/basic.js +0 -167
  50. package/script/src/data/chord-progressions/blues.d.ts +0 -5
  51. package/script/src/data/chord-progressions/blues.d.ts.map +0 -1
  52. package/script/src/data/chord-progressions/blues.js +0 -33
  53. package/script/src/data/chord-progressions/jazz.d.ts +0 -8
  54. package/script/src/data/chord-progressions/jazz.d.ts.map +0 -1
  55. package/script/src/data/chord-progressions/jazz.js +0 -146
  56. package/script/src/data/chord-progressions/pop.d.ts +0 -6
  57. package/script/src/data/chord-progressions/pop.d.ts.map +0 -1
  58. package/script/src/data/chord-progressions/pop.js +0 -45
@@ -1,111 +1,55 @@
1
- import { chordProgressionTemplates, } from "../data/chord-progressions/mod.js";
2
- import { getRomanNumeralForScaleIndexAndChordQuality } from "./chords.js";
3
- import { getNoteNamesForRootAndIntervals } from "./note-names.js";
4
- const INTERVAL_REGEX = /^([𝄫♭♮♯𝄪]*)([1-7])$/;
5
- export function isValidChordProgressionTemplateKey(key) {
6
- return Object.prototype.hasOwnProperty.call(chordProgressionTemplates, key);
7
- }
8
- function flattenTemplateSteps(template) {
9
- return template.sections.flatMap((section) => section.chords);
10
- }
11
- function normalizeSearchTerm(str) {
12
- return str
13
- .trim()
14
- .replaceAll("-", " ")
15
- .replace(/\s+/g, " ")
16
- .toLowerCase();
17
- }
18
- function getSearchableTemplateText(template) {
19
- return [
20
- template.primaryName,
21
- template.templateType,
22
- template.category,
23
- ...template.names,
24
- ...template.type,
25
- ...template.characteristics,
26
- ...getChordProgressionTemplateDegreeNames(template),
27
- ...getChordProgressionTemplateRomanNames(template),
28
- ]
29
- .map(normalizeSearchTerm)
30
- .join(" ");
31
- }
32
- export function searchChordProgressionTemplates(options = {}) {
33
- const { query, category, templateType, type } = options;
34
- let candidates = Object.values(chordProgressionTemplates);
35
- if (category) {
36
- candidates = candidates.filter((template) => template.category === category);
37
- }
38
- if (templateType) {
39
- candidates = candidates.filter((template) => template.templateType === templateType);
40
- }
41
- if (type) {
42
- const normalizedType = normalizeSearchTerm(type);
43
- candidates = candidates.filter((template) => template.type.map(normalizeSearchTerm).includes(normalizedType));
44
- }
45
- if (!query)
46
- return candidates;
47
- const normalizedQuery = normalizeSearchTerm(query);
48
- if (!normalizedQuery)
49
- return candidates;
50
- const queryWords = normalizedQuery.split(" ");
51
- const textFilteredCandidates = candidates.filter((template) => {
52
- const searchableText = getSearchableTemplateText(template);
53
- return queryWords.every((word) => searchableText.includes(word));
54
- });
55
- const prioritizedResults = new Set();
56
- const passes = [
57
- (template) => normalizeSearchTerm(template.primaryName) === normalizedQuery,
58
- (template) => template.names.some((name) => normalizeSearchTerm(name) === normalizedQuery),
59
- (template) => normalizeSearchTerm(template.primaryName).startsWith(normalizedQuery),
60
- (template) => template.names.some((name) => normalizeSearchTerm(name).startsWith(normalizedQuery)),
61
- ];
62
- for (const pass of passes) {
63
- for (const template of textFilteredCandidates) {
64
- if (pass(template))
65
- prioritizedResults.add(template);
66
- }
67
- }
68
- for (const template of textFilteredCandidates) {
69
- prioritizedResults.add(template);
70
- }
71
- return Array.from(prioritizedResults);
72
- }
73
- export function findChordProgressionTemplate(options = {}) {
74
- return searchChordProgressionTemplates(options)[0];
75
- }
76
- function resolveTemplate(templateOrKey) {
77
- if (typeof templateOrKey !== "string")
78
- return templateOrKey;
79
- return chordProgressionTemplates[templateOrKey];
80
- }
81
- export function getRomanNumeralForIntervalAndChordQuality(interval, quality) {
82
- const match = interval.match(INTERVAL_REGEX);
83
- if (!match)
84
- return undefined;
85
- const [, accidental, intervalNumber] = match;
86
- const roman = getRomanNumeralForScaleIndexAndChordQuality(Number(intervalNumber) - 1, quality);
87
- return roman === undefined ? undefined : accidental + roman;
88
- }
89
- export function getChordProgressionTemplateDegreeNames(templateOrKey) {
90
- const template = resolveTemplate(templateOrKey);
91
- if (!template)
1
+ import { chordProgressions, } from "../data/chord-progressions/mod.js";
2
+ import { getChordQualityNoteCollectionKey } from "../data/chords/mod.js";
3
+ import { getNoteNamesForRootAndIntervals, normalizeRootNoteString, } from "./note-names.js";
4
+ export function isValidChordProgressionKey(key) {
5
+ return Object.prototype.hasOwnProperty.call(chordProgressions, key);
6
+ }
7
+ function resolveProgression(progressionOrKey) {
8
+ if (typeof progressionOrKey !== "string")
9
+ return progressionOrKey;
10
+ return chordProgressions[progressionOrKey];
11
+ }
12
+ export function getChordProgressionChordNames(rootNote, progressionOrKey) {
13
+ const progression = resolveProgression(progressionOrKey);
14
+ if (!progression)
92
15
  return [];
93
- return flattenTemplateSteps(template).map((step) => step.interval + step.quality);
16
+ const noteNames = getNoteNamesForRootAndIntervals(rootNote, progression.chords.map((chord) => chord.degree));
17
+ return progression.chords.map((chord, index) => noteNames[index] + chord.quality);
94
18
  }
95
- export function getChordProgressionTemplateRomanNames(templateOrKey) {
96
- const template = resolveTemplate(templateOrKey);
97
- if (!template)
19
+ export function getChordProgressionUniqueChordNames(rootNote, progressionOrKey) {
20
+ return Array.from(new Set(getChordProgressionChordNames(rootNote, progressionOrKey)));
21
+ }
22
+ export function getChordProgressionChordReferences(rootNote, progressionOrKey) {
23
+ const progression = resolveProgression(progressionOrKey);
24
+ if (!progression)
98
25
  return [];
99
- return flattenTemplateSteps(template).flatMap((step) => {
100
- const roman = getRomanNumeralForIntervalAndChordQuality(step.interval, step.quality);
101
- return roman ? [roman] : [];
26
+ const chordRootNotes = getNoteNamesForRootAndIntervals(rootNote, progression.chords.map((chord) => chord.degree)).map((noteName) => normalizeRootNoteString(noteName));
27
+ return progression.chords.flatMap((chord, index) => {
28
+ const chordRootNote = chordRootNotes[index];
29
+ if (!chordRootNote)
30
+ return [];
31
+ return [{
32
+ rootNote: chordRootNote,
33
+ chordName: chordRootNote + chord.quality,
34
+ noteCollectionKey: getChordQualityNoteCollectionKey(chord.quality),
35
+ }];
102
36
  });
103
37
  }
104
- export function getChordProgressionTemplateChordNames(rootNote, templateOrKey) {
105
- const template = resolveTemplate(templateOrKey);
106
- if (!template)
107
- return [];
108
- const steps = flattenTemplateSteps(template);
109
- const noteNames = getNoteNamesForRootAndIntervals(rootNote, steps.map((step) => step.interval));
110
- return noteNames.map((noteName, i) => noteName + steps[i].quality);
38
+ export function getChordProgressionUniqueChordReferences(rootNote, progressionOrKey) {
39
+ const uniqueReferences = [];
40
+ const seen = new Set();
41
+ for (const reference of getChordProgressionChordReferences(rootNote, progressionOrKey)) {
42
+ const key = `${reference.rootNote}:${reference.noteCollectionKey}:${reference.chordName}`;
43
+ if (seen.has(key))
44
+ continue;
45
+ seen.add(key);
46
+ uniqueReferences.push(reference);
47
+ }
48
+ return uniqueReferences;
49
+ }
50
+ export function getChordProgressionTotalDurationInBars(progressionOrKey) {
51
+ const progression = resolveProgression(progressionOrKey);
52
+ if (!progression)
53
+ return 0;
54
+ return progression.chords.reduce((total, chord) => total + chord.durationInBars, 0);
111
55
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@musodojo/music-theory-data",
3
- "version": "27.0.0",
3
+ "version": "28.0.0",
4
4
  "description": "The musician-friendly TypeScript library for scales, modes, chords, and arpeggios.",
5
5
  "keywords": [
6
6
  "music",
@@ -1,66 +1,21 @@
1
- import type { ChordProgressionTemplateCategory, ChordProgressionTemplateType } from "../../types/chord-progressions";
2
- import type { ChordQuality } from "../../types/chords";
3
- import type { NoteCollectionKey } from "../note-collections/mod.js";
4
- export { basicChordProgressionTemplates } from "./basic.js";
5
- export { bluesChordProgressionTemplates } from "./blues.js";
6
- export { jazzChordProgressionTemplates } from "./jazz.js";
7
- export { popChordProgressionTemplates } from "./pop.js";
8
- export declare const chordProgressionTemplates: {
9
- readonly twoFiveOneMajor: import("../../types/chord-progressions").ChordProgressionTemplate;
10
- readonly minorTwoFiveOne: import("../../types/chord-progressions").ChordProgressionTemplate;
11
- readonly rhythmChanges: import("../../types/chord-progressions").ChordProgressionTemplate;
12
- readonly jazzBluesBasic: import("../../types/chord-progressions").ChordProgressionTemplate;
13
- readonly twelveBarBlues: import("../../types/chord-progressions").ChordProgressionTemplate;
14
- readonly dooWop: import("../../types/chord-progressions").ChordProgressionTemplate;
15
- readonly axisProgression: import("../../types/chord-progressions").ChordProgressionTemplate;
16
- readonly oneFourFive: import("../../types/chord-progressions").ChordProgressionTemplate;
17
- readonly oneFive: import("../../types/chord-progressions").ChordProgressionTemplate;
18
- readonly oneFour: import("../../types/chord-progressions").ChordProgressionTemplate;
19
- readonly oneOneFiveFive: import("../../types/chord-progressions").ChordProgressionTemplate;
20
- readonly oneOneFiveFiveSeven: import("../../types/chord-progressions").ChordProgressionTemplate;
21
- readonly oneFourOneFive: import("../../types/chord-progressions").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 ChordProgressionTemplateKey = keyof typeof chordProgressionTemplates;
24
- export type ChordProgressionStepNoteCollectionKeyMap = Partial<Record<ChordQuality, NoteCollectionKey>>;
25
- /** Canonical chord/arpeggio collection keys for chord qualities used by progression steps. */
26
- export declare const chordProgressionStepNoteCollectionKeys: ChordProgressionStepNoteCollectionKeyMap;
27
- export declare const groupedChordProgressionTemplates: {
28
- readonly basicChordProgressionTemplates: {
29
- readonly oneFourFive: import("../../types/chord-progressions").ChordProgressionTemplate;
30
- readonly oneFive: import("../../types/chord-progressions").ChordProgressionTemplate;
31
- readonly oneFour: import("../../types/chord-progressions").ChordProgressionTemplate;
32
- readonly oneOneFiveFive: import("../../types/chord-progressions").ChordProgressionTemplate;
33
- readonly oneOneFiveFiveSeven: import("../../types/chord-progressions").ChordProgressionTemplate;
34
- readonly oneFourOneFive: import("../../types/chord-progressions").ChordProgressionTemplate;
35
- };
36
- readonly popChordProgressionTemplates: {
37
- readonly dooWop: import("../../types/chord-progressions").ChordProgressionTemplate;
38
- readonly axisProgression: import("../../types/chord-progressions").ChordProgressionTemplate;
39
- };
40
- readonly bluesChordProgressionTemplates: {
41
- readonly twelveBarBlues: import("../../types/chord-progressions").ChordProgressionTemplate;
42
- };
43
- readonly jazzChordProgressionTemplates: {
44
- readonly twoFiveOneMajor: import("../../types/chord-progressions").ChordProgressionTemplate;
45
- readonly minorTwoFiveOne: import("../../types/chord-progressions").ChordProgressionTemplate;
46
- readonly rhythmChanges: import("../../types/chord-progressions").ChordProgressionTemplate;
47
- readonly jazzBluesBasic: import("../../types/chord-progressions").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":"AAIA,OAAO,KAAK,EACV,gCAAgC,EAChC,4BAA4B,EAC7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;CAK5B,CAAC;AAEX,MAAM,MAAM,2BAA2B,GACrC,MAAM,OAAO,yBAAyB,CAAC;AAEzC,MAAM,MAAM,wCAAwC,GAAG,OAAO,CAC5D,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,CACxC,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,sCAAsC,EACjD,wCAQU,CAAC;AAEb,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;CAKnC,CAAC;AAEX,MAAM,MAAM,gCAAgC,GAC1C,MAAM,OAAO,gCAAgC,CAAC;AAEhD,kGAAkG;AAClG,eAAO,MAAM,sCAAsC,EAAE,MAAM,CACzD,gCAAgC,EAChC;IACE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAsBO,CAAC;AAEX,4FAA4F;AAC5F,eAAO,MAAM,wCAAwC,EAAE,MAAM,CAC3D,gCAAgC,EAChC;IACE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAMO,CAAC;AAEX,gGAAgG;AAChG,eAAO,MAAM,oCAAoC,EAAE,MAAM,CACvD,4BAA4B,EAC5B;IACE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAgBO,CAAC"}
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,78 +1,158 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.chordProgressionTemplateTypeMetadata = exports.chordProgressionTemplateCategoryMetadata = exports.chordProgressionTemplateGroupsMetadata = exports.groupedChordProgressionTemplates = exports.chordProgressionStepNoteCollectionKeys = exports.chordProgressionTemplates = exports.popChordProgressionTemplates = exports.jazzChordProgressionTemplates = exports.bluesChordProgressionTemplates = exports.basicChordProgressionTemplates = void 0;
4
- const basic_js_1 = require("./basic.js");
5
- const blues_js_1 = require("./blues.js");
6
- const jazz_js_1 = require("./jazz.js");
7
- const pop_js_1 = require("./pop.js");
8
- var basic_js_2 = require("./basic.js");
9
- Object.defineProperty(exports, "basicChordProgressionTemplates", { enumerable: true, get: function () { return basic_js_2.basicChordProgressionTemplates; } });
10
- var blues_js_2 = require("./blues.js");
11
- Object.defineProperty(exports, "bluesChordProgressionTemplates", { enumerable: true, get: function () { return blues_js_2.bluesChordProgressionTemplates; } });
12
- var jazz_js_2 = require("./jazz.js");
13
- Object.defineProperty(exports, "jazzChordProgressionTemplates", { enumerable: true, get: function () { return jazz_js_2.jazzChordProgressionTemplates; } });
14
- var pop_js_2 = require("./pop.js");
15
- Object.defineProperty(exports, "popChordProgressionTemplates", { enumerable: true, get: function () { return pop_js_2.popChordProgressionTemplates; } });
16
- exports.chordProgressionTemplates = {
17
- ...basic_js_1.basicChordProgressionTemplates,
18
- ...pop_js_1.popChordProgressionTemplates,
19
- ...blues_js_1.bluesChordProgressionTemplates,
20
- ...jazz_js_1.jazzChordProgressionTemplates,
3
+ exports.chordProgressions = void 0;
4
+ function chord(degree, quality, durationInBars) {
5
+ return {
6
+ degree,
7
+ quality,
8
+ durationInBars,
9
+ };
10
+ }
11
+ const oneOneFiveFive = {
12
+ primaryName: "I | I | V | V",
13
+ chords: [
14
+ chord("1", "M", 2),
15
+ chord("5", "M", 2),
16
+ ],
21
17
  };
22
- /** Canonical chord/arpeggio collection keys for chord qualities used by progression steps. */
23
- exports.chordProgressionStepNoteCollectionKeys = {
24
- M: "major",
25
- m: "minor",
26
- "7": "dominant7",
27
- M7: "major7",
28
- m7: "minor7",
29
- "ø7": "halfDiminished7",
30
- "°7": "diminished7",
18
+ const oneOneFiveFiveDominant7 = {
19
+ primaryName: "I | I | V | V7",
20
+ chords: [
21
+ chord("1", "M", 2),
22
+ chord("5", "M", 1),
23
+ chord("5", "7", 1),
24
+ ],
31
25
  };
32
- exports.groupedChordProgressionTemplates = {
33
- basicChordProgressionTemplates: basic_js_1.basicChordProgressionTemplates,
34
- popChordProgressionTemplates: pop_js_1.popChordProgressionTemplates,
35
- bluesChordProgressionTemplates: blues_js_1.bluesChordProgressionTemplates,
36
- jazzChordProgressionTemplates: jazz_js_1.jazzChordProgressionTemplates,
26
+ const oneOneFourFour = {
27
+ primaryName: "I | I | IV | IV",
28
+ chords: [
29
+ chord("1", "M", 2),
30
+ chord("4", "M", 2),
31
+ ],
37
32
  };
38
- /** Human-readable DisplayName and Description metadata for top-level chord progression groups. */
39
- exports.chordProgressionTemplateGroupsMetadata = {
40
- basicChordProgressionTemplates: {
41
- displayName: "Basic",
42
- description: "Simple beginner-friendly formulas and playable loops built from foundational harmonic movement.",
43
- },
44
- popChordProgressionTemplates: {
45
- displayName: "Pop",
46
- description: "Common songwriting loops used across pop, rock, folk, and related styles.",
47
- },
48
- bluesChordProgressionTemplates: {
49
- displayName: "Blues",
50
- description: "Blues forms and dominant-chord progressions, including twelve-bar templates.",
51
- },
52
- jazzChordProgressionTemplates: {
53
- displayName: "Jazz",
54
- description: "Functional harmony templates, turnarounds, cadences, and standard jazz forms.",
55
- },
33
+ const oneOneFourFive = {
34
+ primaryName: "I | I | IV | V",
35
+ chords: [
36
+ chord("1", "M", 2),
37
+ chord("4", "M", 1),
38
+ chord("5", "M", 1),
39
+ ],
56
40
  };
57
- /** Human-readable DisplayName and Description metadata for chord progression categories. */
58
- exports.chordProgressionTemplateCategoryMetadata = {
59
- basic: exports.chordProgressionTemplateGroupsMetadata.basicChordProgressionTemplates,
60
- pop: exports.chordProgressionTemplateGroupsMetadata.popChordProgressionTemplates,
61
- blues: exports.chordProgressionTemplateGroupsMetadata.bluesChordProgressionTemplates,
62
- jazz: exports.chordProgressionTemplateGroupsMetadata.jazzChordProgressionTemplates,
41
+ const oneFourOneFive = {
42
+ primaryName: "I | IV | I | V",
43
+ chords: [
44
+ chord("1", "M", 1),
45
+ chord("4", "M", 1),
46
+ chord("1", "M", 1),
47
+ chord("5", "M", 1),
48
+ ],
63
49
  };
64
- /** Human-readable DisplayName and Description metadata for chord progression template types. */
65
- exports.chordProgressionTemplateTypeMetadata = {
66
- formula: {
67
- displayName: "Formula",
68
- description: "A reusable harmonic relationship, not necessarily a complete playable loop or song form.",
69
- },
70
- loop: {
71
- displayName: "Loop",
72
- description: "A short playable chord progression intended to repeat.",
73
- },
74
- form: {
75
- displayName: "Form",
76
- description: "A longer structured progression with named sections or a conventional song form.",
77
- },
50
+ const oneSixFourFive = {
51
+ primaryName: "I | vi | IV | V",
52
+ chords: [
53
+ chord("1", "M", 1),
54
+ chord("6", "m", 1),
55
+ chord("4", "M", 1),
56
+ chord("5", "M", 1),
57
+ ],
78
58
  };
59
+ const oneFiveSixFour = {
60
+ primaryName: "I | V | vi | IV",
61
+ chords: [
62
+ chord("1", "M", 1),
63
+ chord("5", "M", 1),
64
+ chord("6", "m", 1),
65
+ chord("4", "M", 1),
66
+ ],
67
+ };
68
+ const oneSixTwoFive = {
69
+ primaryName: "I | vi | ii | V",
70
+ chords: [
71
+ chord("1", "M", 1),
72
+ chord("6", "m", 1),
73
+ chord("2", "m", 1),
74
+ chord("5", "M", 1),
75
+ ],
76
+ };
77
+ const sixTwoFiveOne = {
78
+ primaryName: "vi | ii | V | I",
79
+ chords: [
80
+ chord("6", "m", 1),
81
+ chord("2", "m", 1),
82
+ chord("5", "M", 1),
83
+ chord("1", "M", 1),
84
+ ],
85
+ };
86
+ const majorTwoFiveOne = {
87
+ primaryName: "iim7 | V7 | Imaj7 | Imaj7",
88
+ chords: [
89
+ chord("2", "m7", 1),
90
+ chord("5", "7", 1),
91
+ chord("1", "M7", 2),
92
+ ],
93
+ };
94
+ const minorTwoFiveOne = {
95
+ primaryName: "iiø7 | V7 | i | i",
96
+ chords: [
97
+ chord("2", "ø7", 1),
98
+ chord("5", "7", 1),
99
+ chord("1", "m", 2),
100
+ ],
101
+ };
102
+ const oneFourOneFiveSplitReturn = {
103
+ primaryName: "I | IV | I | V | I | IV | I V | I",
104
+ chords: [
105
+ chord("1", "M", 1),
106
+ chord("4", "M", 1),
107
+ chord("1", "M", 1),
108
+ chord("5", "M", 1),
109
+ chord("1", "M", 1),
110
+ chord("4", "M", 1),
111
+ chord("1", "M", 0.5),
112
+ chord("5", "M", 0.5),
113
+ chord("1", "M", 1),
114
+ ],
115
+ };
116
+ const twelveBarBlues = {
117
+ primaryName: "12 Bar Blues",
118
+ chords: [
119
+ chord("1", "7", 4),
120
+ chord("4", "7", 2),
121
+ chord("1", "7", 2),
122
+ chord("5", "7", 1),
123
+ chord("4", "7", 1),
124
+ chord("1", "7", 1),
125
+ chord("5", "7", 1),
126
+ ],
127
+ };
128
+ const twelveBarBluesQuickChange = {
129
+ primaryName: "12 Bar Blues Quick Change",
130
+ chords: [
131
+ chord("1", "7", 1),
132
+ chord("4", "7", 1),
133
+ chord("1", "7", 2),
134
+ chord("4", "7", 2),
135
+ chord("1", "7", 2),
136
+ chord("5", "7", 1),
137
+ chord("4", "7", 1),
138
+ chord("1", "7", 1),
139
+ chord("5", "7", 1),
140
+ ],
141
+ };
142
+ const _chordProgressions = {
143
+ oneOneFiveFive,
144
+ oneOneFiveFiveDominant7,
145
+ oneOneFourFour,
146
+ oneOneFourFive,
147
+ oneFourOneFive,
148
+ oneSixFourFive,
149
+ oneFiveSixFour,
150
+ oneSixTwoFive,
151
+ sixTwoFiveOne,
152
+ majorTwoFiveOne,
153
+ minorTwoFiveOne,
154
+ oneFourOneFiveSplitReturn,
155
+ twelveBarBlues,
156
+ twelveBarBluesQuickChange,
157
+ };
158
+ exports.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;AAED,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,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"}
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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.lowerCaseRomanNumerals = exports.upperCaseRomanNumerals = exports.melodicMinorSeventhChords = exports.melodicMinorTriads = exports.harmonicMinorSeventhChords = exports.harmonicMinorTriads = exports.diatonicSeventhChords = exports.diatonicTriads = exports.chordQualityRomanRenderings = exports.chordQualities = exports.seventhChordQualities = exports.triadChordQualities = void 0;
3
+ exports.lowerCaseRomanNumerals = exports.upperCaseRomanNumerals = exports.melodicMinorSeventhChords = exports.melodicMinorTriads = exports.harmonicMinorSeventhChords = exports.harmonicMinorTriads = exports.diatonicSeventhChords = exports.diatonicTriads = exports.chordQualityRomanRenderings = exports.chordQualityNoteCollectionKeys = exports.chordQualities = exports.seventhChordQualities = exports.triadChordQualities = void 0;
4
+ exports.getChordQualityNoteCollectionKey = getChordQualityNoteCollectionKey;
4
5
  const _triadChordQualities = ["M", "m", "°", "+"];
5
6
  const _seventhChordQualities = [
6
7
  "M7",
@@ -31,6 +32,21 @@ const _lowerCaseRomanNumerals = [
31
32
  "vi",
32
33
  "vii",
33
34
  ];
35
+ const _chordQualityNoteCollectionKeys = {
36
+ M: "major",
37
+ m: "minor",
38
+ "°": "diminishedTriad",
39
+ "+": "augmentedTriad",
40
+ M7: "major7",
41
+ m7: "minor7",
42
+ "7": "dominant7",
43
+ "ø7": "halfDiminished7",
44
+ "m7♭5": "halfDiminished7",
45
+ "°7": "diminished7",
46
+ "m(M7)": "minorMajor7",
47
+ "+M7": "augmentedMajor7",
48
+ "M7♯5": "augmentedMajor7",
49
+ };
34
50
  /** The complete set of supported triad chord qualities. */
35
51
  exports.triadChordQualities = _triadChordQualities;
36
52
  /** The complete set of supported seventh chord qualities. */
@@ -40,6 +56,8 @@ exports.chordQualities = [
40
56
  ...exports.triadChordQualities,
41
57
  ...exports.seventhChordQualities,
42
58
  ];
59
+ /** Note-collection keys for every supported chord quality. */
60
+ exports.chordQualityNoteCollectionKeys = _chordQualityNoteCollectionKeys;
43
61
  /** Roman numeral rendering metadata for each supported chord quality. */
44
62
  exports.chordQualityRomanRenderings = new Map([
45
63
  ["M", { numeralCase: "upper", suffix: "" }],
@@ -120,3 +138,6 @@ exports.melodicMinorSeventhChords = [
120
138
  exports.upperCaseRomanNumerals = _upperCaseRomanNumerals;
121
139
  /** An array mapping 7 index scale degrees to their corresponding lower-case Roman numerals. */
122
140
  exports.lowerCaseRomanNumerals = _lowerCaseRomanNumerals;
141
+ function getChordQualityNoteCollectionKey(quality) {
142
+ return exports.chordQualityNoteCollectionKeys[quality];
143
+ }
@@ -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;AA4BpE,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAElE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,EAAE,eAAe,CACvD,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"}
@@ -25,8 +25,33 @@ const augmented7 = {
25
25
  pattern: ["major third", "major third", "major second"],
26
26
  patternShort: ["M3", "M3", "M2"],
27
27
  };
28
+ const augmentedMajor7 = {
29
+ category: "chord",
30
+ mostSimilarScale: "ionianSharp5",
31
+ primaryName: "+M7",
32
+ names: [
33
+ "+M7",
34
+ "M7♯5",
35
+ "maj7♯5",
36
+ "Augmented Major 7th",
37
+ "Augmented Major Seventh",
38
+ ],
39
+ intervals: ["1", "3", "♯5", "7"],
40
+ integers: [0, 4, 8, 11],
41
+ type: ["augmented", "major", "chord", "arpeggio", "tetrad"],
42
+ characteristics: [
43
+ "dreamy",
44
+ "unstable",
45
+ "lush",
46
+ "bright",
47
+ "used in jazz and film harmony",
48
+ ],
49
+ pattern: ["major third", "major third", "minor third"],
50
+ patternShort: ["M3", "M3", "m3"],
51
+ };
28
52
  exports._augmentedVariants = {
29
53
  augmentedTriad,
30
54
  augmented7,
55
+ augmentedMajor7,
31
56
  };
32
57
  exports.augmentedVariants = exports._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. */