@musodojo/music-theory-data 26.3.0 → 26.4.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 (86) hide show
  1. package/README.md +29 -5
  2. package/esm/src/data/chord-progressions/basic.d.ts +10 -0
  3. package/esm/src/data/chord-progressions/basic.d.ts.map +1 -0
  4. package/esm/src/data/chord-progressions/basic.js +164 -0
  5. package/esm/src/data/chord-progressions/blues.d.ts +5 -0
  6. package/esm/src/data/chord-progressions/blues.d.ts.map +1 -0
  7. package/esm/src/data/chord-progressions/blues.js +30 -0
  8. package/esm/src/data/chord-progressions/jazz.d.ts +8 -0
  9. package/esm/src/data/chord-progressions/jazz.d.ts.map +1 -0
  10. package/esm/src/data/chord-progressions/jazz.js +143 -0
  11. package/esm/src/data/chord-progressions/mod.d.ts +61 -0
  12. package/esm/src/data/chord-progressions/mod.d.ts.map +1 -0
  13. package/esm/src/data/chord-progressions/mod.js +61 -0
  14. package/esm/src/data/chord-progressions/pop.d.ts +6 -0
  15. package/esm/src/data/chord-progressions/pop.d.ts.map +1 -0
  16. package/esm/src/data/chord-progressions/pop.js +42 -0
  17. package/esm/src/data/chords/mod.d.ts +28 -3
  18. package/esm/src/data/chords/mod.d.ts.map +1 -1
  19. package/esm/src/data/chords/mod.js +57 -18
  20. package/esm/src/data/mod.d.ts +1 -0
  21. package/esm/src/data/mod.d.ts.map +1 -1
  22. package/esm/src/data/mod.js +1 -0
  23. package/esm/src/data/note-collections/mod.d.ts +5 -2
  24. package/esm/src/data/note-collections/mod.d.ts.map +1 -1
  25. package/esm/src/data/note-collections/mod.js +2 -2
  26. package/esm/src/data/note-collections/other-collections.d.ts +5 -2
  27. package/esm/src/data/note-collections/other-collections.d.ts.map +1 -1
  28. package/esm/src/data/note-collections/other-collections.js +43 -4
  29. package/esm/src/mod.d.ts +1 -1
  30. package/esm/src/mod.js +1 -1
  31. package/esm/src/utils/chord-progressions.d.ts +18 -0
  32. package/esm/src/utils/chord-progressions.d.ts.map +1 -0
  33. package/esm/src/utils/chord-progressions.js +111 -0
  34. package/esm/src/utils/chords.d.ts +2 -1
  35. package/esm/src/utils/chords.d.ts.map +1 -1
  36. package/esm/src/utils/chords.js +21 -35
  37. package/esm/src/utils/mod.d.ts +1 -0
  38. package/esm/src/utils/mod.d.ts.map +1 -1
  39. package/esm/src/utils/mod.js +1 -0
  40. package/esm/src/utils/note-collections.d.ts +4 -2
  41. package/esm/src/utils/note-collections.d.ts.map +1 -1
  42. package/esm/src/utils/note-collections.js +5 -2
  43. package/esm/tests/chord-progressions.test.d.ts.map +1 -0
  44. package/package.json +1 -1
  45. package/script/src/data/chord-progressions/basic.d.ts +10 -0
  46. package/script/src/data/chord-progressions/basic.d.ts.map +1 -0
  47. package/script/src/data/chord-progressions/basic.js +167 -0
  48. package/script/src/data/chord-progressions/blues.d.ts +5 -0
  49. package/script/src/data/chord-progressions/blues.d.ts.map +1 -0
  50. package/script/src/data/chord-progressions/blues.js +33 -0
  51. package/script/src/data/chord-progressions/jazz.d.ts +8 -0
  52. package/script/src/data/chord-progressions/jazz.d.ts.map +1 -0
  53. package/script/src/data/chord-progressions/jazz.js +146 -0
  54. package/script/src/data/chord-progressions/mod.d.ts +61 -0
  55. package/script/src/data/chord-progressions/mod.d.ts.map +1 -0
  56. package/script/src/data/chord-progressions/mod.js +68 -0
  57. package/script/src/data/chord-progressions/pop.d.ts +6 -0
  58. package/script/src/data/chord-progressions/pop.d.ts.map +1 -0
  59. package/script/src/data/chord-progressions/pop.js +45 -0
  60. package/script/src/data/chords/mod.d.ts +28 -3
  61. package/script/src/data/chords/mod.d.ts.map +1 -1
  62. package/script/src/data/chords/mod.js +58 -19
  63. package/script/src/data/mod.d.ts +1 -0
  64. package/script/src/data/mod.d.ts.map +1 -1
  65. package/script/src/data/mod.js +1 -0
  66. package/script/src/data/note-collections/mod.d.ts +5 -2
  67. package/script/src/data/note-collections/mod.d.ts.map +1 -1
  68. package/script/src/data/note-collections/mod.js +2 -2
  69. package/script/src/data/note-collections/other-collections.d.ts +5 -2
  70. package/script/src/data/note-collections/other-collections.d.ts.map +1 -1
  71. package/script/src/data/note-collections/other-collections.js +43 -4
  72. package/script/src/mod.d.ts +1 -1
  73. package/script/src/mod.js +1 -1
  74. package/script/src/utils/chord-progressions.d.ts +18 -0
  75. package/script/src/utils/chord-progressions.d.ts.map +1 -0
  76. package/script/src/utils/chord-progressions.js +120 -0
  77. package/script/src/utils/chords.d.ts +2 -1
  78. package/script/src/utils/chords.d.ts.map +1 -1
  79. package/script/src/utils/chords.js +21 -34
  80. package/script/src/utils/mod.d.ts +1 -0
  81. package/script/src/utils/mod.d.ts.map +1 -1
  82. package/script/src/utils/mod.js +1 -0
  83. package/script/src/utils/note-collections.d.ts +4 -2
  84. package/script/src/utils/note-collections.d.ts.map +1 -1
  85. package/script/src/utils/note-collections.js +5 -2
  86. package/script/tests/chord-progressions.test.d.ts.map +1 -0
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Muso Dojo | Music Theory Data
2
2
 
3
3
  **Empower your music applications with a comprehensive, type-safe, and
4
- musician-friendly TypeScript/JavaScript library for modes, scales, chords, and
5
- more.**
4
+ musician-friendly TypeScript/JavaScript library for notes, dyads, modes, scales,
5
+ chord pitch collections, chord progression templates, and more.**
6
6
 
7
7
  ## Community & Support
8
8
 
@@ -24,7 +24,14 @@ Have a question, a suggestion, or want to report a bug? Get in touch!
24
24
  - ✅ Melodic Minor Modes
25
25
  - ✅ Diminished Variants
26
26
  - ✅ Augmented Variants
27
- - ✅ Other Note Collections
27
+ - ✅ Other Note Collections, including notes and dyads
28
+
29
+ ## Available Chord Progression Templates
30
+
31
+ - ✅ Basic Progressions
32
+ - ✅ Pop Progressions
33
+ - ✅ Blues Progressions
34
+ - ✅ Jazz Progressions
28
35
 
29
36
  ## Features
30
37
 
@@ -35,8 +42,9 @@ Have a question, a suggestion, or want to report a bug? Get in touch!
35
42
 
36
43
  ### Rich Data Structures
37
44
 
38
- Access detailed information for scales, modes, chords, and more, including
39
- intervals, integer notations, and common names.
45
+ Access detailed information for notes, dyads, scales, modes, chord pitch
46
+ collections, chord progression templates, and more, including intervals, integer
47
+ notations, and common names.
40
48
 
41
49
  ```ts
42
50
  // src/data/note-collections/diatonic-modes.ts
@@ -168,6 +176,22 @@ console.log(Object.keys(music_theory_data.noteCollections));
168
176
  // Log an array of all available Grouped Note Collections Keys
169
177
  console.log(Object.keys(music_theory_data.groupedNoteCollections));
170
178
  // ["diatonicModes", "pentatonicVariants", ...]
179
+
180
+ // Get a beginner-friendly chord progression template
181
+ const oneFourFive = music_theory_data.chordProgressionTemplates.oneFourFive;
182
+
183
+ console.log(oneFourFive.primaryName);
184
+ // "One Four Five"
185
+
186
+ console.log(
187
+ music_theory_data.getChordProgressionTemplateRomanNames("oneFourFive"),
188
+ );
189
+ // ["I", "IV", "V"]
190
+
191
+ console.log(
192
+ music_theory_data.getChordProgressionTemplateChordNames("C", "oneFourFive"),
193
+ );
194
+ // ["CM", "FM", "GM"]
171
195
  ```
172
196
 
173
197
  ## API Documentation
@@ -0,0 +1,10 @@
1
+ import type { ChordProgressionTemplate } from "../../types/chord-progressions";
2
+ export declare const basicChordProgressionTemplates: {
3
+ readonly oneFourFive: ChordProgressionTemplate;
4
+ readonly oneFive: ChordProgressionTemplate;
5
+ readonly oneFour: ChordProgressionTemplate;
6
+ readonly oneOneFiveFive: ChordProgressionTemplate;
7
+ readonly oneOneFiveFiveSeven: ChordProgressionTemplate;
8
+ readonly oneFourOneFive: ChordProgressionTemplate;
9
+ };
10
+ //# sourceMappingURL=basic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../../src/src/data/chord-progressions/basic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAoK/E,eAAO,MAAM,8BAA8B;;;;;;;CAOjC,CAAC"}
@@ -0,0 +1,164 @@
1
+ const oneFourFive = {
2
+ templateType: "formula",
3
+ category: "basic",
4
+ primaryName: "I IV V",
5
+ names: ["I IV V", "One Four Five", "1 4 5"],
6
+ type: ["basic", "formula", "major key", "three chord", "beginner"],
7
+ characteristics: [
8
+ "simple",
9
+ "foundational",
10
+ "common",
11
+ "beginner friendly",
12
+ "tonic subdominant dominant",
13
+ ],
14
+ sections: [
15
+ {
16
+ name: "Main",
17
+ chords: [
18
+ { interval: "1", quality: "M" },
19
+ { interval: "4", quality: "M" },
20
+ { interval: "5", quality: "M" },
21
+ ],
22
+ },
23
+ ],
24
+ };
25
+ const oneFive = {
26
+ templateType: "formula",
27
+ category: "basic",
28
+ primaryName: "I V",
29
+ names: ["I V", "One Five", "1 5"],
30
+ type: ["basic", "formula", "major key", "two chord", "beginner"],
31
+ characteristics: [
32
+ "simple",
33
+ "foundational",
34
+ "common",
35
+ "beginner friendly",
36
+ "tonic dominant",
37
+ ],
38
+ sections: [
39
+ {
40
+ name: "Main",
41
+ chords: [
42
+ { interval: "1", quality: "M" },
43
+ { interval: "5", quality: "M" },
44
+ ],
45
+ },
46
+ ],
47
+ };
48
+ const oneFour = {
49
+ templateType: "formula",
50
+ category: "basic",
51
+ primaryName: "I IV",
52
+ names: ["I IV", "One Four", "1 4"],
53
+ type: ["basic", "formula", "major key", "two chord", "beginner"],
54
+ characteristics: [
55
+ "simple",
56
+ "foundational",
57
+ "common",
58
+ "beginner friendly",
59
+ "tonic subdominant",
60
+ ],
61
+ sections: [
62
+ {
63
+ name: "Main",
64
+ chords: [
65
+ { interval: "1", quality: "M" },
66
+ { interval: "4", quality: "M" },
67
+ ],
68
+ },
69
+ ],
70
+ };
71
+ const oneOneFiveFive = {
72
+ templateType: "loop",
73
+ category: "basic",
74
+ primaryName: "I I V V",
75
+ names: ["I I V V", "One One Five Five", "1 1 5 5", "Tonic Dominant Loop"],
76
+ type: ["basic", "loop", "major key", "tonic dominant", "beginner"],
77
+ characteristics: [
78
+ "simple",
79
+ "playable",
80
+ "stable",
81
+ "beginner friendly",
82
+ "practice loop",
83
+ ],
84
+ sections: [
85
+ {
86
+ name: "Main",
87
+ chords: [
88
+ { interval: "1", quality: "M" },
89
+ { interval: "1", quality: "M" },
90
+ { interval: "5", quality: "M" },
91
+ { interval: "5", quality: "M" },
92
+ ],
93
+ },
94
+ ],
95
+ };
96
+ const oneOneFiveFiveSeven = {
97
+ templateType: "loop",
98
+ category: "basic",
99
+ primaryName: "I I V V7",
100
+ names: [
101
+ "I I V V7",
102
+ "One One Five Five-Seven",
103
+ "Tonic Dominant Seventh Loop",
104
+ ],
105
+ type: [
106
+ "basic",
107
+ "loop",
108
+ "major key",
109
+ "tonic dominant",
110
+ "turnaround",
111
+ "beginner",
112
+ ],
113
+ characteristics: [
114
+ "simple",
115
+ "playable",
116
+ "resolving",
117
+ "beginner friendly",
118
+ "practice loop",
119
+ ],
120
+ sections: [
121
+ {
122
+ name: "Main",
123
+ chords: [
124
+ { interval: "1", quality: "M" },
125
+ { interval: "1", quality: "M" },
126
+ { interval: "5", quality: "M" },
127
+ { interval: "5", quality: "7" },
128
+ ],
129
+ },
130
+ ],
131
+ };
132
+ const oneFourOneFive = {
133
+ templateType: "loop",
134
+ category: "basic",
135
+ primaryName: "I IV I V",
136
+ names: ["I IV I V", "One Four One Five", "1 4 1 5"],
137
+ type: ["basic", "loop", "major key", "three chord", "beginner"],
138
+ characteristics: [
139
+ "simple",
140
+ "playable",
141
+ "balanced",
142
+ "beginner friendly",
143
+ "practice loop",
144
+ ],
145
+ sections: [
146
+ {
147
+ name: "Main",
148
+ chords: [
149
+ { interval: "1", quality: "M" },
150
+ { interval: "4", quality: "M" },
151
+ { interval: "1", quality: "M" },
152
+ { interval: "5", quality: "M" },
153
+ ],
154
+ },
155
+ ],
156
+ };
157
+ export const basicChordProgressionTemplates = {
158
+ oneFourFive,
159
+ oneFive,
160
+ oneFour,
161
+ oneOneFiveFive,
162
+ oneOneFiveFiveSeven,
163
+ oneFourOneFive,
164
+ };
@@ -0,0 +1,5 @@
1
+ import type { ChordProgressionTemplate } from "../../types/chord-progressions";
2
+ export declare const bluesChordProgressionTemplates: {
3
+ readonly twelveBarBlues: ChordProgressionTemplate;
4
+ };
5
+ //# sourceMappingURL=blues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blues.d.ts","sourceRoot":"","sources":["../../../../src/src/data/chord-progressions/blues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AA8B/E,eAAO,MAAM,8BAA8B;;CAEjC,CAAC"}
@@ -0,0 +1,30 @@
1
+ const twelveBarBlues = {
2
+ templateType: "form",
3
+ category: "blues",
4
+ primaryName: "Twelve Bar Blues",
5
+ names: ["Twelve Bar Blues", "12 Bar Blues", "I7 IV7 V7 Blues"],
6
+ type: ["blues", "form", "dominant seventh", "twelve bar", "beginner"],
7
+ characteristics: ["foundational", "cyclical", "common", "blues"],
8
+ sections: [
9
+ {
10
+ name: "Main",
11
+ chords: [
12
+ { interval: "1", quality: "7" },
13
+ { interval: "1", quality: "7" },
14
+ { interval: "1", quality: "7" },
15
+ { interval: "1", quality: "7" },
16
+ { interval: "4", quality: "7" },
17
+ { interval: "4", quality: "7" },
18
+ { interval: "1", quality: "7" },
19
+ { interval: "1", quality: "7" },
20
+ { interval: "5", quality: "7" },
21
+ { interval: "4", quality: "7" },
22
+ { interval: "1", quality: "7" },
23
+ { interval: "5", quality: "7" },
24
+ ],
25
+ },
26
+ ],
27
+ };
28
+ export const bluesChordProgressionTemplates = {
29
+ twelveBarBlues,
30
+ };
@@ -0,0 +1,8 @@
1
+ import type { ChordProgressionTemplate } from "../../types/chord-progressions";
2
+ export declare const jazzChordProgressionTemplates: {
3
+ readonly twoFiveOneMajor: ChordProgressionTemplate;
4
+ readonly minorTwoFiveOne: ChordProgressionTemplate;
5
+ readonly rhythmChanges: ChordProgressionTemplate;
6
+ readonly jazzBluesBasic: ChordProgressionTemplate;
7
+ };
8
+ //# sourceMappingURL=jazz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jazz.d.ts","sourceRoot":"","sources":["../../../../src/src/data/chord-progressions/jazz.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AA+I/E,eAAO,MAAM,6BAA6B;;;;;CAKhC,CAAC"}
@@ -0,0 +1,143 @@
1
+ const twoFiveOneMajor = {
2
+ templateType: "formula",
3
+ category: "jazz",
4
+ primaryName: "iim7 V7 IM7",
5
+ names: [
6
+ "iim7 V7 IM7",
7
+ "ii V I",
8
+ "Two Five One",
9
+ "Major Two Five One",
10
+ "2 5 1",
11
+ ],
12
+ type: ["jazz", "formula", "major key", "cadence", "seventh chords"],
13
+ characteristics: ["functional", "resolving", "foundational", "jazz"],
14
+ sections: [
15
+ {
16
+ name: "Main",
17
+ chords: [
18
+ { interval: "2", quality: "m7" },
19
+ { interval: "5", quality: "7" },
20
+ { interval: "1", quality: "M7" },
21
+ ],
22
+ },
23
+ ],
24
+ };
25
+ const minorTwoFiveOne = {
26
+ templateType: "formula",
27
+ category: "jazz",
28
+ primaryName: "iiø7 V7 i",
29
+ names: ["iiø7 V7 i", "iiø V i", "Minor Two Five One", "2 5 1 minor"],
30
+ type: ["jazz", "formula", "minor key", "cadence", "seventh chords"],
31
+ characteristics: ["functional", "minor", "resolving", "jazz"],
32
+ sections: [
33
+ {
34
+ name: "Main",
35
+ chords: [
36
+ { interval: "2", quality: "ø7" },
37
+ { interval: "5", quality: "7" },
38
+ { interval: "1", quality: "m" },
39
+ ],
40
+ },
41
+ ],
42
+ };
43
+ const rhythmChanges = {
44
+ templateType: "form",
45
+ category: "jazz",
46
+ primaryName: "Rhythm Changes",
47
+ names: ["Rhythm Changes", "AABA Rhythm Changes", "Rhythm Changes Form"],
48
+ type: ["jazz", "form", "major key", "turnaround", "AABA"],
49
+ characteristics: [
50
+ "cyclical",
51
+ "functional",
52
+ "jazz",
53
+ "standard",
54
+ "song form",
55
+ ],
56
+ sections: [
57
+ {
58
+ name: "A1",
59
+ chords: [
60
+ { interval: "1", quality: "M7" },
61
+ { interval: "6", quality: "m7" },
62
+ { interval: "2", quality: "m7" },
63
+ { interval: "5", quality: "7" },
64
+ { interval: "3", quality: "m7" },
65
+ { interval: "6", quality: "7" },
66
+ { interval: "2", quality: "m7" },
67
+ { interval: "5", quality: "7" },
68
+ ],
69
+ },
70
+ {
71
+ name: "A2",
72
+ chords: [
73
+ { interval: "1", quality: "M7" },
74
+ { interval: "6", quality: "m7" },
75
+ { interval: "2", quality: "m7" },
76
+ { interval: "5", quality: "7" },
77
+ { interval: "3", quality: "m7" },
78
+ { interval: "6", quality: "7" },
79
+ { interval: "2", quality: "m7" },
80
+ { interval: "5", quality: "7" },
81
+ ],
82
+ },
83
+ {
84
+ name: "B",
85
+ chords: [
86
+ { interval: "3", quality: "7" },
87
+ { interval: "3", quality: "7" },
88
+ { interval: "6", quality: "7" },
89
+ { interval: "6", quality: "7" },
90
+ { interval: "2", quality: "7" },
91
+ { interval: "2", quality: "7" },
92
+ { interval: "5", quality: "7" },
93
+ { interval: "5", quality: "7" },
94
+ ],
95
+ },
96
+ {
97
+ name: "A3",
98
+ chords: [
99
+ { interval: "1", quality: "M7" },
100
+ { interval: "6", quality: "m7" },
101
+ { interval: "2", quality: "m7" },
102
+ { interval: "5", quality: "7" },
103
+ { interval: "3", quality: "m7" },
104
+ { interval: "6", quality: "7" },
105
+ { interval: "2", quality: "m7" },
106
+ { interval: "5", quality: "7" },
107
+ ],
108
+ },
109
+ ],
110
+ };
111
+ const jazzBluesBasic = {
112
+ templateType: "form",
113
+ category: "jazz",
114
+ primaryName: "Jazz Blues Basic",
115
+ names: ["Jazz Blues Basic", "Jazz Blues"],
116
+ type: ["jazz", "blues", "form", "dominant seventh", "turnaround"],
117
+ characteristics: ["functional", "blues", "jazz", "cyclical"],
118
+ sections: [
119
+ {
120
+ name: "Main",
121
+ chords: [
122
+ { interval: "1", quality: "7" },
123
+ { interval: "4", quality: "7" },
124
+ { interval: "1", quality: "7" },
125
+ { interval: "1", quality: "7" },
126
+ { interval: "4", quality: "7" },
127
+ { interval: "♯4", quality: "°7" },
128
+ { interval: "1", quality: "7" },
129
+ { interval: "6", quality: "7" },
130
+ { interval: "2", quality: "m7" },
131
+ { interval: "5", quality: "7" },
132
+ { interval: "1", quality: "7" },
133
+ { interval: "5", quality: "7" },
134
+ ],
135
+ },
136
+ ],
137
+ };
138
+ export const jazzChordProgressionTemplates = {
139
+ twoFiveOneMajor,
140
+ minorTwoFiveOne,
141
+ rhythmChanges,
142
+ jazzBluesBasic,
143
+ };
@@ -0,0 +1,61 @@
1
+ import type { ChordProgressionTemplateCategory, ChordProgressionTemplateType } from "../../types/chord-progressions";
2
+ export { basicChordProgressionTemplates } from "./basic.js";
3
+ export { bluesChordProgressionTemplates } from "./blues.js";
4
+ export { jazzChordProgressionTemplates } from "./jazz.js";
5
+ export { popChordProgressionTemplates } from "./pop.js";
6
+ export declare const chordProgressionTemplates: {
7
+ readonly twoFiveOneMajor: import("../../mod.js").ChordProgressionTemplate;
8
+ readonly minorTwoFiveOne: import("../../mod.js").ChordProgressionTemplate;
9
+ readonly rhythmChanges: import("../../mod.js").ChordProgressionTemplate;
10
+ readonly jazzBluesBasic: import("../../mod.js").ChordProgressionTemplate;
11
+ readonly twelveBarBlues: import("../../mod.js").ChordProgressionTemplate;
12
+ readonly dooWop: import("../../mod.js").ChordProgressionTemplate;
13
+ readonly axisProgression: import("../../mod.js").ChordProgressionTemplate;
14
+ readonly oneFourFive: import("../../mod.js").ChordProgressionTemplate;
15
+ readonly oneFive: import("../../mod.js").ChordProgressionTemplate;
16
+ readonly oneFour: import("../../mod.js").ChordProgressionTemplate;
17
+ readonly oneOneFiveFive: import("../../mod.js").ChordProgressionTemplate;
18
+ readonly oneOneFiveFiveSeven: import("../../mod.js").ChordProgressionTemplate;
19
+ readonly oneFourOneFive: import("../../mod.js").ChordProgressionTemplate;
20
+ };
21
+ export type ChordProgressionTemplateKey = keyof typeof chordProgressionTemplates;
22
+ export declare const groupedChordProgressionTemplates: {
23
+ readonly basicChordProgressionTemplates: {
24
+ readonly oneFourFive: import("../../mod.js").ChordProgressionTemplate;
25
+ readonly oneFive: import("../../mod.js").ChordProgressionTemplate;
26
+ readonly oneFour: import("../../mod.js").ChordProgressionTemplate;
27
+ readonly oneOneFiveFive: import("../../mod.js").ChordProgressionTemplate;
28
+ readonly oneOneFiveFiveSeven: import("../../mod.js").ChordProgressionTemplate;
29
+ readonly oneFourOneFive: import("../../mod.js").ChordProgressionTemplate;
30
+ };
31
+ readonly popChordProgressionTemplates: {
32
+ readonly dooWop: import("../../mod.js").ChordProgressionTemplate;
33
+ readonly axisProgression: import("../../mod.js").ChordProgressionTemplate;
34
+ };
35
+ readonly bluesChordProgressionTemplates: {
36
+ readonly twelveBarBlues: import("../../mod.js").ChordProgressionTemplate;
37
+ };
38
+ readonly jazzChordProgressionTemplates: {
39
+ readonly twoFiveOneMajor: import("../../mod.js").ChordProgressionTemplate;
40
+ readonly minorTwoFiveOne: import("../../mod.js").ChordProgressionTemplate;
41
+ readonly rhythmChanges: import("../../mod.js").ChordProgressionTemplate;
42
+ readonly jazzBluesBasic: import("../../mod.js").ChordProgressionTemplate;
43
+ };
44
+ };
45
+ export type ChordProgressionTemplateGroupKey = keyof typeof groupedChordProgressionTemplates;
46
+ /** Human-readable DisplayName and Description metadata for top-level chord progression groups. */
47
+ export declare const chordProgressionTemplateGroupsMetadata: Record<ChordProgressionTemplateGroupKey, {
48
+ displayName: string;
49
+ description: string;
50
+ }>;
51
+ /** Human-readable DisplayName and Description metadata for chord progression categories. */
52
+ export declare const chordProgressionTemplateCategoryMetadata: Record<ChordProgressionTemplateCategory, {
53
+ displayName: string;
54
+ description: string;
55
+ }>;
56
+ /** Human-readable DisplayName and Description metadata for chord progression template types. */
57
+ export declare const chordProgressionTemplateTypeMetadata: Record<ChordProgressionTemplateType, {
58
+ displayName: string;
59
+ description: string;
60
+ }>;
61
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +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;AAExC,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,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"}
@@ -0,0 +1,61 @@
1
+ import { basicChordProgressionTemplates } from "./basic.js";
2
+ import { bluesChordProgressionTemplates } from "./blues.js";
3
+ import { jazzChordProgressionTemplates } from "./jazz.js";
4
+ import { popChordProgressionTemplates } from "./pop.js";
5
+ export { basicChordProgressionTemplates } from "./basic.js";
6
+ export { bluesChordProgressionTemplates } from "./blues.js";
7
+ export { jazzChordProgressionTemplates } from "./jazz.js";
8
+ export { popChordProgressionTemplates } from "./pop.js";
9
+ export const chordProgressionTemplates = {
10
+ ...basicChordProgressionTemplates,
11
+ ...popChordProgressionTemplates,
12
+ ...bluesChordProgressionTemplates,
13
+ ...jazzChordProgressionTemplates,
14
+ };
15
+ export const groupedChordProgressionTemplates = {
16
+ basicChordProgressionTemplates,
17
+ popChordProgressionTemplates,
18
+ bluesChordProgressionTemplates,
19
+ jazzChordProgressionTemplates,
20
+ };
21
+ /** Human-readable DisplayName and Description metadata for top-level chord progression groups. */
22
+ export const chordProgressionTemplateGroupsMetadata = {
23
+ basicChordProgressionTemplates: {
24
+ displayName: "Basic",
25
+ description: "Simple beginner-friendly formulas and playable loops built from foundational harmonic movement.",
26
+ },
27
+ popChordProgressionTemplates: {
28
+ displayName: "Pop",
29
+ description: "Common songwriting loops used across pop, rock, folk, and related styles.",
30
+ },
31
+ bluesChordProgressionTemplates: {
32
+ displayName: "Blues",
33
+ description: "Blues forms and dominant-chord progressions, including twelve-bar templates.",
34
+ },
35
+ jazzChordProgressionTemplates: {
36
+ displayName: "Jazz",
37
+ description: "Functional harmony templates, turnarounds, cadences, and standard jazz forms.",
38
+ },
39
+ };
40
+ /** Human-readable DisplayName and Description metadata for chord progression categories. */
41
+ export const chordProgressionTemplateCategoryMetadata = {
42
+ basic: chordProgressionTemplateGroupsMetadata.basicChordProgressionTemplates,
43
+ pop: chordProgressionTemplateGroupsMetadata.popChordProgressionTemplates,
44
+ blues: chordProgressionTemplateGroupsMetadata.bluesChordProgressionTemplates,
45
+ jazz: chordProgressionTemplateGroupsMetadata.jazzChordProgressionTemplates,
46
+ };
47
+ /** Human-readable DisplayName and Description metadata for chord progression template types. */
48
+ export const chordProgressionTemplateTypeMetadata = {
49
+ formula: {
50
+ displayName: "Formula",
51
+ description: "A reusable harmonic relationship, not necessarily a complete playable loop or song form.",
52
+ },
53
+ loop: {
54
+ displayName: "Loop",
55
+ description: "A short playable chord progression intended to repeat.",
56
+ },
57
+ form: {
58
+ displayName: "Form",
59
+ description: "A longer structured progression with named sections or a conventional song form.",
60
+ },
61
+ };
@@ -0,0 +1,6 @@
1
+ import type { ChordProgressionTemplate } from "../../types/chord-progressions";
2
+ export declare const popChordProgressionTemplates: {
3
+ readonly dooWop: ChordProgressionTemplate;
4
+ readonly axisProgression: ChordProgressionTemplate;
5
+ };
6
+ //# sourceMappingURL=pop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pop.d.ts","sourceRoot":"","sources":["../../../../src/src/data/chord-progressions/pop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AA0C/E,eAAO,MAAM,4BAA4B;;;CAG/B,CAAC"}
@@ -0,0 +1,42 @@
1
+ const dooWop = {
2
+ templateType: "loop",
3
+ category: "pop",
4
+ primaryName: "I vi IV V",
5
+ names: ["I vi IV V", "Doo Wop", "1 6 4 5", "50s Progression"],
6
+ type: ["pop", "loop", "major key", "songwriting", "beginner"],
7
+ characteristics: ["nostalgic", "stable", "songwriting", "common"],
8
+ sections: [
9
+ {
10
+ name: "Main",
11
+ chords: [
12
+ { interval: "1", quality: "M" },
13
+ { interval: "6", quality: "m" },
14
+ { interval: "4", quality: "M" },
15
+ { interval: "5", quality: "M" },
16
+ ],
17
+ },
18
+ ],
19
+ };
20
+ const axisProgression = {
21
+ templateType: "loop",
22
+ category: "pop",
23
+ primaryName: "I V vi IV",
24
+ names: ["I V vi IV", "Axis Progression", "1 5 6 4", "Pop Punk Progression"],
25
+ type: ["pop", "loop", "major key", "songwriting", "beginner"],
26
+ characteristics: ["anthemic", "common", "songwriting", "stable"],
27
+ sections: [
28
+ {
29
+ name: "Main",
30
+ chords: [
31
+ { interval: "1", quality: "M" },
32
+ { interval: "5", quality: "M" },
33
+ { interval: "6", quality: "m" },
34
+ { interval: "4", quality: "M" },
35
+ ],
36
+ },
37
+ ],
38
+ };
39
+ export const popChordProgressionTemplates = {
40
+ dooWop,
41
+ axisProgression,
42
+ };
@@ -1,4 +1,28 @@
1
- import type { LowerCaseRomanNumeral, SeventhChord, Triad, UpperCaseRomanNumeral } from "../../types/chords";
1
+ declare const _triadChordQualities: readonly ["M", "m", "°", "+"];
2
+ declare const _seventhChordQualities: readonly ["M7", "m7", "7", "ø7", "m7♭5", "°7", "m(M7)", "+M7", "M7♯5"];
3
+ declare const _upperCaseRomanNumerals: readonly ["I", "II", "III", "IV", "V", "VI", "VII"];
4
+ declare const _lowerCaseRomanNumerals: readonly ["i", "ii", "iii", "iv", "v", "vi", "vii"];
5
+ export type Triad = (typeof _triadChordQualities)[number];
6
+ export type SeventhChord = (typeof _seventhChordQualities)[number];
7
+ export type ChordQuality = Triad | SeventhChord;
8
+ export type UpperCaseRomanNumeral = (typeof _upperCaseRomanNumerals)[number];
9
+ export type LowerCaseRomanNumeral = (typeof _lowerCaseRomanNumerals)[number];
10
+ export type RomanNumeral = UpperCaseRomanNumeral | LowerCaseRomanNumeral;
11
+ export type RomanTriad = `${RomanNumeral}` | `${RomanNumeral}${Triad}`;
12
+ export type RomanSeventhChord = `${RomanNumeral}${SeventhChord}`;
13
+ export type RomanNumeralCase = "upper" | "lower";
14
+ export interface ChordQualityRomanRendering {
15
+ readonly numeralCase: RomanNumeralCase;
16
+ readonly suffix: string;
17
+ }
18
+ /** The complete set of supported triad chord qualities. */
19
+ export declare const triadChordQualities: readonly Triad[];
20
+ /** The complete set of supported seventh chord qualities. */
21
+ export declare const seventhChordQualities: readonly SeventhChord[];
22
+ /** The complete set of supported chord suffix qualities. */
23
+ export declare const chordQualities: readonly ChordQuality[];
24
+ /** Roman numeral rendering metadata for each supported chord quality. */
25
+ export declare const chordQualityRomanRenderings: ReadonlyMap<ChordQuality, ChordQualityRomanRendering>;
2
26
  /** An ordered array containing the fundamental triad qualities of the diatonic major scale. */
3
27
  export declare const diatonicTriads: Triad[];
4
28
  /** An ordered array containing the fundamental seventh-chord qualities of the diatonic major scale. */
@@ -12,7 +36,8 @@ export declare const melodicMinorTriads: Triad[];
12
36
  /** An ordered array containing the fundamental seventh-chord qualities of the melodic minor scale. */
13
37
  export declare const melodicMinorSeventhChords: SeventhChord[];
14
38
  /** An array mapping 7 index scale degrees to their corresponding upper-case Roman numerals. */
15
- export declare const upperCaseRomanNumerals: UpperCaseRomanNumeral[];
39
+ export declare const upperCaseRomanNumerals: readonly UpperCaseRomanNumeral[];
16
40
  /** An array mapping 7 index scale degrees to their corresponding lower-case Roman numerals. */
17
- export declare const lowerCaseRomanNumerals: LowerCaseRomanNumeral[];
41
+ export declare const lowerCaseRomanNumerals: readonly LowerCaseRomanNumeral[];
42
+ export {};
18
43
  //# sourceMappingURL=mod.d.ts.map