@musodojo/music-theory-data 32.0.0 → 34.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 (91) hide show
  1. package/README.md +58 -7
  2. package/esm/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/build_message.d.ts.map +1 -1
  3. 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
  4. 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
  5. 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
  6. package/esm/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/styles.d.ts.map +1 -1
  7. package/esm/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/types.d.ts.map +1 -1
  8. package/esm/src/data/chord-progressions/mod.d.ts +28 -16
  9. package/esm/src/data/chord-progressions/mod.d.ts.map +1 -1
  10. package/esm/src/data/chord-progressions/mod.js +180 -65
  11. package/esm/src/data/chords/mod.d.ts +26 -1
  12. package/esm/src/data/chords/mod.d.ts.map +1 -1
  13. package/esm/src/data/chords/mod.js +70 -1
  14. package/esm/src/data/labels/mod.d.ts +1 -0
  15. package/esm/src/data/labels/mod.d.ts.map +1 -1
  16. package/esm/src/data/labels/mod.js +1 -0
  17. package/esm/src/data/labels/note-label-collections.d.ts +1 -25
  18. package/esm/src/data/labels/note-label-collections.d.ts.map +1 -1
  19. package/esm/src/data/labels/note-label-collections.js +1 -77
  20. package/esm/src/data/labels/note-labels.d.ts +1 -1
  21. package/esm/src/data/labels/note-labels.d.ts.map +1 -1
  22. package/esm/src/data/labels/solfege.d.ts +33 -0
  23. package/esm/src/data/labels/solfege.d.ts.map +1 -0
  24. package/esm/src/data/labels/solfege.js +165 -0
  25. package/esm/src/data/note-collections/mod.d.ts +15 -0
  26. package/esm/src/data/note-collections/mod.d.ts.map +1 -1
  27. package/esm/src/data/note-collections/mod.js +2 -2
  28. package/esm/src/utils/chord-progressions.d.ts +22 -5
  29. package/esm/src/utils/chord-progressions.d.ts.map +1 -1
  30. package/esm/src/utils/chord-progressions.js +70 -7
  31. package/esm/src/utils/chords.d.ts +7 -1
  32. package/esm/src/utils/chords.d.ts.map +1 -1
  33. package/esm/src/utils/chords.js +18 -1
  34. package/esm/src/utils/conversion-registry.d.ts +40 -20
  35. package/esm/src/utils/conversion-registry.d.ts.map +1 -1
  36. package/esm/src/utils/conversion-registry.js +95 -25
  37. package/esm/src/utils/intervals.d.ts +3 -0
  38. package/esm/src/utils/intervals.d.ts.map +1 -1
  39. package/esm/src/utils/intervals.js +23 -0
  40. package/esm/src/utils/midi.d.ts +7 -0
  41. package/esm/src/utils/midi.d.ts.map +1 -1
  42. package/esm/src/utils/midi.js +18 -0
  43. package/esm/src/utils/note-collections.d.ts +9 -1
  44. package/esm/src/utils/note-collections.d.ts.map +1 -1
  45. package/esm/src/utils/note-collections.js +22 -0
  46. package/esm/tests/solfege.test.d.ts.map +1 -0
  47. package/package.json +1 -1
  48. package/script/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/build_message.d.ts.map +1 -1
  49. 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
  50. 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
  51. 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
  52. package/script/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/styles.d.ts.map +1 -1
  53. package/script/deps/jsr.io/@std/internal/{1.0.13 → 1.0.14}/types.d.ts.map +1 -1
  54. package/script/src/data/chord-progressions/mod.d.ts +28 -16
  55. package/script/src/data/chord-progressions/mod.d.ts.map +1 -1
  56. package/script/src/data/chord-progressions/mod.js +181 -66
  57. package/script/src/data/chords/mod.d.ts +26 -1
  58. package/script/src/data/chords/mod.d.ts.map +1 -1
  59. package/script/src/data/chords/mod.js +75 -2
  60. package/script/src/data/labels/mod.d.ts +1 -0
  61. package/script/src/data/labels/mod.d.ts.map +1 -1
  62. package/script/src/data/labels/mod.js +1 -0
  63. package/script/src/data/labels/note-label-collections.d.ts +1 -25
  64. package/script/src/data/labels/note-label-collections.d.ts.map +1 -1
  65. package/script/src/data/labels/note-label-collections.js +1 -77
  66. package/script/src/data/labels/note-labels.d.ts +1 -1
  67. package/script/src/data/labels/note-labels.d.ts.map +1 -1
  68. package/script/src/data/labels/solfege.d.ts +33 -0
  69. package/script/src/data/labels/solfege.d.ts.map +1 -0
  70. package/script/src/data/labels/solfege.js +173 -0
  71. package/script/src/data/note-collections/mod.d.ts +15 -0
  72. package/script/src/data/note-collections/mod.d.ts.map +1 -1
  73. package/script/src/utils/chord-progressions.d.ts +22 -5
  74. package/script/src/utils/chord-progressions.d.ts.map +1 -1
  75. package/script/src/utils/chord-progressions.js +72 -5
  76. package/script/src/utils/chords.d.ts +7 -1
  77. package/script/src/utils/chords.d.ts.map +1 -1
  78. package/script/src/utils/chords.js +19 -0
  79. package/script/src/utils/conversion-registry.d.ts +40 -20
  80. package/script/src/utils/conversion-registry.d.ts.map +1 -1
  81. package/script/src/utils/conversion-registry.js +98 -26
  82. package/script/src/utils/intervals.d.ts +3 -0
  83. package/script/src/utils/intervals.d.ts.map +1 -1
  84. package/script/src/utils/intervals.js +26 -0
  85. package/script/src/utils/midi.d.ts +7 -0
  86. package/script/src/utils/midi.d.ts.map +1 -1
  87. package/script/src/utils/midi.js +21 -0
  88. package/script/src/utils/note-collections.d.ts +9 -1
  89. package/script/src/utils/note-collections.d.ts.map +1 -1
  90. package/script/src/utils/note-collections.js +25 -0
  91. 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,6 +1,6 @@
1
1
  {
2
2
  "name": "@musodojo/music-theory-data",
3
- "version": "32.0.0",
3
+ "version": "34.0.0",
4
4
  "description": "The musician-friendly TypeScript library for scales, modes, chords, and arpeggios.",
5
5
  "keywords": [
6
6
  "music",
@@ -1 +1 @@
1
- {"version":3,"file":"build_message.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.13/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
+ {"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.13/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,CAgCD;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
+ {"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.13/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
+ {"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.13/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
+ {"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.13/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
+ {"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.13/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
+ {"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: 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;
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, ChordProgression>;
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,EAEzB,MAAM,gCAAgC,CAAC;AAqJxC,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;CAed,CAAC;AAEX,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAElE,oEAAoE;AACpE,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CACxD,CAAC;AAiBrB,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,EAAE,SAAS,wBAAwB,CACvE,mBAAmB,CACpB,EAM0C,CAAC"}
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(romanSymbol, degree, quality, durationInBars) {
5
- return {
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
- quality,
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("I", "1", "M", 2),
15
- chord("V", "5", "M", 2),
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("I", "1", "M", 2),
21
- chord("V", "5", "M", 1),
22
- chord("V7", "5", "7", 1),
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("I", "1", "M", 2),
28
- chord("IV", "4", "M", 2),
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("I", "1", "M", 2),
34
- chord("IV", "4", "M", 1),
35
- chord("V", "5", "M", 1),
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("I", "1", "M", 1),
41
- chord("IV", "4", "M", 1),
42
- chord("I", "1", "M", 1),
43
- chord("V", "5", "M", 1),
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("I", "1", "M", 1),
49
- chord("vi", "6", "m", 1),
50
- chord("IV", "4", "M", 1),
51
- chord("V", "5", "M", 1),
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("I", "1", "M", 1),
57
- chord("V", "5", "M", 1),
58
- chord("vi", "6", "m", 1),
59
- chord("IV", "4", "M", 1),
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("I", "1", "M", 1),
65
- chord("vi", "6", "m", 1),
66
- chord("ii", "2", "m", 1),
67
- chord("V", "5", "M", 1),
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("vi", "6", "m", 1),
73
- chord("ii", "2", "m", 1),
74
- chord("V", "5", "M", 1),
75
- chord("I", "1", "M", 1),
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("iim7", "2", "m7", 1),
81
- chord("V7", "5", "7", 1),
82
- chord("IM7", "1", "M7", 2),
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("iiø7", "2", "ø7", 1),
88
- chord("V7", "5", "7", 1),
89
- chord("i", "1", "m", 2),
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("I", "1", "M", 1),
95
- chord("IV", "4", "M", 1),
96
- chord("I", "1", "M", 1),
97
- chord("V", "5", "M", 1),
98
- chord("I", "1", "M", 1),
99
- chord("IV", "4", "M", 1),
100
- chord("I", "1", "M", 0.5),
101
- chord("V", "5", "M", 0.5),
102
- chord("I", "1", "M", 1),
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("I7", "1", "7", 4),
109
- chord("IV7", "4", "7", 2),
110
- chord("I7", "1", "7", 2),
111
- chord("V7", "5", "7", 1),
112
- chord("IV7", "4", "7", 1),
113
- chord("I7", "1", "7", 1),
114
- chord("V7", "5", "7", 1),
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
- chord("I7", "1", "7", 1),
121
- chord("IV7", "4", "7", 1),
122
- chord("I7", "1", "7", 2),
123
- chord("IV7", "4", "7", 2),
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,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,8CAA8C;AAC9C,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,gDAAgD;AAChD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,0CAA0C;AAC1C,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,YAAY,CAAC;AAEhD,sEAAsE;AACtE,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,qEAAqE;AACrE,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,uDAAuD;AACvD,MAAM,MAAM,YAAY,GAAG,qBAAqB,GAAG,qBAAqB,CAAC;AAEzE,0EAA0E;AAC1E,MAAM,MAAM,UAAU,GAAG,GAAG,YAAY,EAAE,GAAG,GAAG,YAAY,GAAG,KAAK,EAAE,CAAC;AAEvE,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,GAAG,YAAY,GAAG,YAAY,EAAE,CAAC;AAEjE,wEAAwE;AACxE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjD,6EAA6E;AAC7E,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,6EAA6E;AAC7E,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,mFAAmF;AACnF,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,YAAY,GACpB,iBAAiB,CAEnB"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/src/data/chords/mod.ts"],"names":[],"mappings":"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"}