@musodojo/music-theory-data 34.0.0 → 35.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -6
- package/esm/src/data/chord-progressions/mod.d.ts +14 -4
- package/esm/src/data/chord-progressions/mod.d.ts.map +1 -1
- package/esm/src/data/chord-progressions/mod.js +216 -94
- package/esm/src/utils/conversion-registry.d.ts +2 -1
- package/esm/src/utils/conversion-registry.d.ts.map +1 -1
- package/esm/src/utils/conversion-registry.js +16 -8
- package/package.json +1 -1
- package/script/src/data/chord-progressions/mod.d.ts +14 -4
- package/script/src/data/chord-progressions/mod.d.ts.map +1 -1
- package/script/src/data/chord-progressions/mod.js +216 -94
- package/script/src/utils/conversion-registry.d.ts +2 -1
- package/script/src/utils/conversion-registry.d.ts.map +1 -1
- package/script/src/utils/conversion-registry.js +16 -8
package/README.md
CHANGED
|
@@ -108,14 +108,19 @@ const availableForMajorChord = getAvailableRootAndNoteCollectionConversions(
|
|
|
108
108
|
|
|
109
109
|
console.log(availableForMajorChord.map((entry) => entry.id));
|
|
110
110
|
// ["note-names", "intervals", "extensions", "compound-intervals"]
|
|
111
|
+
|
|
112
|
+
console.log(availableForMajorChord.map((entry) => entry.outputPreview));
|
|
113
|
+
// ["C, D♭, D...", "1, ♭2, 2...", "1, ♭9, 9...", "1, ♭9, 9, ♭10..."]
|
|
111
114
|
```
|
|
112
115
|
|
|
113
116
|
The conversion registry is useful when an app needs selectable display layers
|
|
114
117
|
for the same root and note collection. Each entry includes UI metadata such as
|
|
115
|
-
`name`, `shortName`, `description`, `
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
harmony
|
|
118
|
+
`name`, `shortName`, `description`, `outputPreview`, `sampleOutput`,
|
|
119
|
+
`outputShape`, and whether empty chromatic slots can appear. `outputPreview` is
|
|
120
|
+
intended for compact UI subtitles, while `sampleOutput` is a fuller
|
|
121
|
+
representative output string. Authored harmony conversions are exposed for modal
|
|
122
|
+
collections such as `ionian`, but are filtered out for collections that do not
|
|
123
|
+
define modal harmony, such as the `major` triad.
|
|
119
124
|
|
|
120
125
|
### Inspect A Note Collection
|
|
121
126
|
|
|
@@ -167,10 +172,10 @@ console.log(getChordProgressionRomanSymbols("oneSixFourFive"));
|
|
|
167
172
|
// ["I", "vi", "IV", "V"]
|
|
168
173
|
|
|
169
174
|
console.log(chordProgressionCategoryGroups.map((group) => group.name));
|
|
170
|
-
// ["
|
|
175
|
+
// ["Common Loops & Sequences", "Cadences", "Blues Forms", "Jazz Cadences & Standards"]
|
|
171
176
|
|
|
172
177
|
console.log(getChordProgressionKeysForCategory("jazz"));
|
|
173
|
-
// ["
|
|
178
|
+
// ["majorTwoFiveOne", "minorTwoFiveOne", "backdoorTwoFiveOne", ...]
|
|
174
179
|
|
|
175
180
|
console.log(getChordProgressionChordNames("C", "oneSixFourFive"));
|
|
176
181
|
// ["CM", "Am", "FM", "GM"]
|
|
@@ -16,14 +16,24 @@ declare const _chordProgressions: {
|
|
|
16
16
|
readonly oneFiveSixFour: BuiltInChordProgression;
|
|
17
17
|
readonly oneSixTwoFive: BuiltInChordProgression;
|
|
18
18
|
readonly sixTwoFiveOne: BuiltInChordProgression;
|
|
19
|
+
readonly oneFourOneFiveSplitReturn: BuiltInChordProgression;
|
|
20
|
+
readonly circleOfFifths: BuiltInChordProgression;
|
|
21
|
+
readonly pachelbelCanon: BuiltInChordProgression;
|
|
22
|
+
readonly authenticCadence: BuiltInChordProgression;
|
|
23
|
+
readonly plagalCadence: BuiltInChordProgression;
|
|
24
|
+
readonly deceptiveCadence: BuiltInChordProgression;
|
|
25
|
+
readonly andalusianCadence: BuiltInChordProgression;
|
|
26
|
+
readonly twelveBarBlues: BuiltInChordProgression;
|
|
27
|
+
readonly twelveBarBluesQuickChange: BuiltInChordProgression;
|
|
28
|
+
readonly minorBlues: BuiltInChordProgression;
|
|
29
|
+
readonly jazzBlues: BuiltInChordProgression;
|
|
19
30
|
readonly majorTwoFiveOne: BuiltInChordProgression;
|
|
20
31
|
readonly minorTwoFiveOne: BuiltInChordProgression;
|
|
21
|
-
readonly
|
|
32
|
+
readonly backdoorTwoFiveOne: BuiltInChordProgression;
|
|
22
33
|
readonly autumnLeavesA: BuiltInChordProgression;
|
|
23
34
|
readonly autumnLeavesB: BuiltInChordProgression;
|
|
24
|
-
readonly
|
|
25
|
-
readonly
|
|
26
|
-
readonly rhythmChanges: BuiltInChordProgression;
|
|
35
|
+
readonly rhythmChangesA: BuiltInChordProgression;
|
|
36
|
+
readonly rhythmChangesBridge: BuiltInChordProgression;
|
|
27
37
|
};
|
|
28
38
|
/** A key for one of the built-in chord progression templates. */
|
|
29
39
|
export type ChordProgressionKey = keyof typeof _chordProgressions;
|
|
@@ -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,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;
|
|
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;AA8UJ,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Bd,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"}
|
|
@@ -12,41 +12,41 @@ function chord(degree, chordCollectionKey, durationInBars, analysis) {
|
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
const _chordProgressionCategories = {
|
|
15
|
-
|
|
16
|
-
name: "
|
|
17
|
-
description: "
|
|
15
|
+
commonLoops: {
|
|
16
|
+
name: "Common Loops & Sequences",
|
|
17
|
+
description: "Reusable diatonic and modal loops, pop progressions, and root-motion sequences.",
|
|
18
18
|
},
|
|
19
|
-
|
|
20
|
-
name: "
|
|
21
|
-
description: "
|
|
22
|
-
},
|
|
23
|
-
jazz: {
|
|
24
|
-
name: "Jazz & Turnarounds",
|
|
25
|
-
description: "ii-V motion, turnarounds, and jazz-standard forms with richer chord collections.",
|
|
19
|
+
cadences: {
|
|
20
|
+
name: "Cadences",
|
|
21
|
+
description: "Short resolution patterns for tonic arrival, plagal motion, deceptive motion, and modal minor closure.",
|
|
26
22
|
},
|
|
27
23
|
blues: {
|
|
28
|
-
name: "Blues",
|
|
24
|
+
name: "Blues Forms",
|
|
29
25
|
description: "Blues forms built from dominant-function tonic, subdominant, and dominant areas.",
|
|
30
26
|
},
|
|
27
|
+
jazz: {
|
|
28
|
+
name: "Jazz Cadences & Standards",
|
|
29
|
+
description: "Seventh-chord cadences and reusable sections from foundational jazz-standard forms.",
|
|
30
|
+
},
|
|
31
31
|
};
|
|
32
32
|
/** Category display metadata for built-in chord progressions. */
|
|
33
33
|
export const chordProgressionCategories = _chordProgressionCategories;
|
|
34
34
|
/** Built-in chord progression category keys in recommended display order. */
|
|
35
35
|
export const chordProgressionCategoryKeys = [
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"jazz",
|
|
36
|
+
"commonLoops",
|
|
37
|
+
"cadences",
|
|
39
38
|
"blues",
|
|
39
|
+
"jazz",
|
|
40
40
|
];
|
|
41
41
|
const oneOneFiveFive = {
|
|
42
|
-
category: "
|
|
42
|
+
category: "commonLoops",
|
|
43
43
|
chords: [
|
|
44
44
|
chord("1", "major", 2),
|
|
45
45
|
chord("5", "major", 2),
|
|
46
46
|
],
|
|
47
47
|
};
|
|
48
48
|
const oneOneFiveFiveDominant7 = {
|
|
49
|
-
category: "
|
|
49
|
+
category: "commonLoops",
|
|
50
50
|
chords: [
|
|
51
51
|
chord("1", "major", 2),
|
|
52
52
|
chord("5", "major", 1),
|
|
@@ -54,14 +54,14 @@ const oneOneFiveFiveDominant7 = {
|
|
|
54
54
|
],
|
|
55
55
|
};
|
|
56
56
|
const oneOneFourFour = {
|
|
57
|
-
category: "
|
|
57
|
+
category: "commonLoops",
|
|
58
58
|
chords: [
|
|
59
59
|
chord("1", "major", 2),
|
|
60
60
|
chord("4", "major", 2),
|
|
61
61
|
],
|
|
62
62
|
};
|
|
63
63
|
const oneOneFourFive = {
|
|
64
|
-
category: "
|
|
64
|
+
category: "commonLoops",
|
|
65
65
|
chords: [
|
|
66
66
|
chord("1", "major", 2),
|
|
67
67
|
chord("4", "major", 1),
|
|
@@ -69,7 +69,7 @@ const oneOneFourFive = {
|
|
|
69
69
|
],
|
|
70
70
|
};
|
|
71
71
|
const oneFourOneFive = {
|
|
72
|
-
category: "
|
|
72
|
+
category: "commonLoops",
|
|
73
73
|
chords: [
|
|
74
74
|
chord("1", "major", 1),
|
|
75
75
|
chord("4", "major", 1),
|
|
@@ -78,7 +78,7 @@ const oneFourOneFive = {
|
|
|
78
78
|
],
|
|
79
79
|
};
|
|
80
80
|
const oneSixFourFive = {
|
|
81
|
-
category: "
|
|
81
|
+
category: "commonLoops",
|
|
82
82
|
chords: [
|
|
83
83
|
chord("1", "major", 1),
|
|
84
84
|
chord("6", "minor", 1),
|
|
@@ -87,7 +87,7 @@ const oneSixFourFive = {
|
|
|
87
87
|
],
|
|
88
88
|
};
|
|
89
89
|
const oneFiveSixFour = {
|
|
90
|
-
category: "
|
|
90
|
+
category: "commonLoops",
|
|
91
91
|
chords: [
|
|
92
92
|
chord("1", "major", 1),
|
|
93
93
|
chord("5", "major", 1),
|
|
@@ -96,7 +96,7 @@ const oneFiveSixFour = {
|
|
|
96
96
|
],
|
|
97
97
|
};
|
|
98
98
|
const oneSixTwoFive = {
|
|
99
|
-
category: "
|
|
99
|
+
category: "commonLoops",
|
|
100
100
|
chords: [
|
|
101
101
|
chord("1", "major", 1),
|
|
102
102
|
chord("6", "minor", 1),
|
|
@@ -105,7 +105,7 @@ const oneSixTwoFive = {
|
|
|
105
105
|
],
|
|
106
106
|
};
|
|
107
107
|
const sixTwoFiveOne = {
|
|
108
|
-
category: "
|
|
108
|
+
category: "commonLoops",
|
|
109
109
|
chords: [
|
|
110
110
|
chord("6", "minor", 1),
|
|
111
111
|
chord("2", "minor", 1),
|
|
@@ -113,60 +113,80 @@ const sixTwoFiveOne = {
|
|
|
113
113
|
chord("1", "major", 1),
|
|
114
114
|
],
|
|
115
115
|
};
|
|
116
|
-
const
|
|
117
|
-
category: "
|
|
116
|
+
const oneFourOneFiveSplitReturn = {
|
|
117
|
+
category: "commonLoops",
|
|
118
118
|
chords: [
|
|
119
|
-
chord("
|
|
120
|
-
chord("
|
|
121
|
-
chord("1", "
|
|
119
|
+
chord("1", "major", 1),
|
|
120
|
+
chord("4", "major", 1),
|
|
121
|
+
chord("1", "major", 1),
|
|
122
|
+
chord("5", "major", 1),
|
|
123
|
+
chord("1", "major", 1),
|
|
124
|
+
chord("4", "major", 1),
|
|
125
|
+
chord("1", "major", 0.5),
|
|
126
|
+
chord("5", "major", 0.5),
|
|
127
|
+
chord("1", "major", 1),
|
|
122
128
|
],
|
|
123
129
|
};
|
|
124
|
-
const
|
|
125
|
-
|
|
130
|
+
const circleOfFifths = {
|
|
131
|
+
commonName: "Circle of Fifths Progression",
|
|
132
|
+
category: "commonLoops",
|
|
126
133
|
chords: [
|
|
127
|
-
chord("
|
|
128
|
-
chord("
|
|
129
|
-
chord("
|
|
134
|
+
chord("1", "major", 1),
|
|
135
|
+
chord("4", "major", 1),
|
|
136
|
+
chord("7", "diminishedTriad", 1),
|
|
137
|
+
chord("3", "minor", 1),
|
|
138
|
+
chord("6", "minor", 1),
|
|
139
|
+
chord("2", "minor", 1),
|
|
140
|
+
chord("5", "major", 1),
|
|
141
|
+
chord("1", "major", 1),
|
|
130
142
|
],
|
|
131
143
|
};
|
|
132
|
-
const
|
|
133
|
-
commonName: "
|
|
134
|
-
category: "
|
|
144
|
+
const pachelbelCanon = {
|
|
145
|
+
commonName: "Pachelbel Canon",
|
|
146
|
+
category: "commonLoops",
|
|
135
147
|
chords: [
|
|
136
|
-
chord("
|
|
137
|
-
chord("5", "
|
|
138
|
-
chord("
|
|
139
|
-
chord("
|
|
140
|
-
chord("
|
|
141
|
-
chord("
|
|
142
|
-
chord("
|
|
148
|
+
chord("1", "major", 1),
|
|
149
|
+
chord("5", "major", 1),
|
|
150
|
+
chord("6", "minor", 1),
|
|
151
|
+
chord("3", "minor", 1),
|
|
152
|
+
chord("4", "major", 1),
|
|
153
|
+
chord("1", "major", 1),
|
|
154
|
+
chord("4", "major", 1),
|
|
155
|
+
chord("5", "major", 1),
|
|
143
156
|
],
|
|
144
157
|
};
|
|
145
|
-
const
|
|
146
|
-
commonName: "
|
|
147
|
-
category: "
|
|
158
|
+
const authenticCadence = {
|
|
159
|
+
commonName: "Authentic Cadence",
|
|
160
|
+
category: "cadences",
|
|
148
161
|
chords: [
|
|
149
|
-
chord("7", "halfDiminished7", 1, { romanSymbol: "iiø7/vi" }),
|
|
150
|
-
chord("3", "dominant7", 1, { romanSymbol: "V7/vi" }),
|
|
151
|
-
chord("6", "minor", 2),
|
|
152
|
-
chord("2", "minor7", 1),
|
|
153
162
|
chord("5", "dominant7", 1),
|
|
154
|
-
chord("1", "
|
|
155
|
-
chord("4", "major7", 1),
|
|
163
|
+
chord("1", "major", 1),
|
|
156
164
|
],
|
|
157
165
|
};
|
|
158
|
-
const
|
|
159
|
-
|
|
166
|
+
const plagalCadence = {
|
|
167
|
+
commonName: "Plagal Cadence",
|
|
168
|
+
category: "cadences",
|
|
160
169
|
chords: [
|
|
161
|
-
chord("1", "major", 1),
|
|
162
170
|
chord("4", "major", 1),
|
|
163
171
|
chord("1", "major", 1),
|
|
172
|
+
],
|
|
173
|
+
};
|
|
174
|
+
const deceptiveCadence = {
|
|
175
|
+
commonName: "Deceptive Cadence",
|
|
176
|
+
category: "cadences",
|
|
177
|
+
chords: [
|
|
178
|
+
chord("5", "dominant7", 1),
|
|
179
|
+
chord("6", "minor", 1),
|
|
180
|
+
],
|
|
181
|
+
};
|
|
182
|
+
const andalusianCadence = {
|
|
183
|
+
commonName: "Andalusian Cadence",
|
|
184
|
+
category: "cadences",
|
|
185
|
+
chords: [
|
|
186
|
+
chord("1", "minor", 1),
|
|
187
|
+
chord("♭7", "major", 1),
|
|
188
|
+
chord("♭6", "major", 1),
|
|
164
189
|
chord("5", "major", 1),
|
|
165
|
-
chord("1", "major", 1),
|
|
166
|
-
chord("4", "major", 1),
|
|
167
|
-
chord("1", "major", 0.5),
|
|
168
|
-
chord("5", "major", 0.5),
|
|
169
|
-
chord("1", "major", 1),
|
|
170
190
|
],
|
|
171
191
|
};
|
|
172
192
|
const twelveBarBlues = {
|
|
@@ -197,38 +217,130 @@ const twelveBarBluesQuickChange = {
|
|
|
197
217
|
chord("5", "dominant7", 1),
|
|
198
218
|
],
|
|
199
219
|
};
|
|
200
|
-
const
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
220
|
+
const minorBlues = {
|
|
221
|
+
commonName: "Minor Blues",
|
|
222
|
+
category: "blues",
|
|
223
|
+
chords: [
|
|
224
|
+
chord("1", "minor7", 1),
|
|
225
|
+
chord("4", "minor7", 1),
|
|
226
|
+
chord("1", "minor7", 1),
|
|
227
|
+
chord("1", "minor7", 1),
|
|
228
|
+
chord("4", "minor7", 1),
|
|
229
|
+
chord("4", "minor7", 1),
|
|
230
|
+
chord("1", "minor7", 1),
|
|
231
|
+
chord("1", "minor7", 1),
|
|
232
|
+
chord("♭6", "dominant7", 1),
|
|
233
|
+
chord("5", "dominant7", 1),
|
|
234
|
+
chord("1", "minor7", 1),
|
|
235
|
+
chord("5", "dominant7", 1),
|
|
236
|
+
],
|
|
237
|
+
};
|
|
238
|
+
const jazzBlues = {
|
|
239
|
+
commonName: "Jazz Blues",
|
|
240
|
+
category: "blues",
|
|
241
|
+
chords: [
|
|
242
|
+
chord("1", "dominant7", 1),
|
|
243
|
+
chord("4", "dominant7", 1),
|
|
244
|
+
chord("1", "dominant7", 1),
|
|
245
|
+
chord("5", "minor7", 0.5),
|
|
246
|
+
chord("1", "dominant7", 0.5),
|
|
247
|
+
chord("4", "dominant7", 1),
|
|
248
|
+
chord("♯4", "diminished7", 1),
|
|
249
|
+
chord("1", "dominant7", 0.5),
|
|
250
|
+
chord("6", "dominant7", 0.5),
|
|
251
|
+
chord("2", "minor7", 0.5),
|
|
252
|
+
chord("5", "dominant7", 0.5),
|
|
253
|
+
chord("3", "minor7", 0.5),
|
|
254
|
+
chord("6", "dominant7", 0.5),
|
|
255
|
+
chord("2", "minor7", 0.5),
|
|
256
|
+
chord("5", "dominant7", 0.5),
|
|
257
|
+
chord("1", "dominant7", 0.5),
|
|
258
|
+
chord("6", "dominant7", 0.5),
|
|
259
|
+
chord("2", "minor7", 0.5),
|
|
260
|
+
chord("5", "dominant7", 0.5),
|
|
261
|
+
],
|
|
262
|
+
};
|
|
263
|
+
const majorTwoFiveOne = {
|
|
264
|
+
category: "jazz",
|
|
265
|
+
chords: [
|
|
266
|
+
chord("2", "minor7", 1),
|
|
267
|
+
chord("5", "dominant7", 1),
|
|
268
|
+
chord("1", "major7", 2),
|
|
269
|
+
],
|
|
270
|
+
};
|
|
271
|
+
const minorTwoFiveOne = {
|
|
272
|
+
category: "jazz",
|
|
273
|
+
chords: [
|
|
274
|
+
chord("2", "halfDiminished7", 1),
|
|
275
|
+
chord("5", "dominant7", 1),
|
|
276
|
+
chord("1", "minor", 2),
|
|
277
|
+
],
|
|
278
|
+
};
|
|
279
|
+
const backdoorTwoFiveOne = {
|
|
280
|
+
commonName: "Backdoor ii-V-I",
|
|
281
|
+
category: "jazz",
|
|
282
|
+
chords: [
|
|
283
|
+
chord("4", "minor7", 1),
|
|
284
|
+
chord("♭7", "dominant7", 1),
|
|
285
|
+
chord("1", "major7", 2),
|
|
286
|
+
],
|
|
287
|
+
};
|
|
288
|
+
const autumnLeavesA = {
|
|
289
|
+
commonName: "Autumn Leaves A Section",
|
|
226
290
|
category: "jazz",
|
|
227
291
|
chords: [
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
292
|
+
chord("2", "minor7", 1),
|
|
293
|
+
chord("5", "dominant7", 1),
|
|
294
|
+
chord("1", "major7", 1),
|
|
295
|
+
chord("4", "major7", 1),
|
|
296
|
+
chord("7", "halfDiminished7", 1, { romanSymbol: "iiø7/vi" }),
|
|
297
|
+
chord("3", "dominant7", 1, { romanSymbol: "V7/vi" }),
|
|
298
|
+
chord("6", "minor", 2),
|
|
299
|
+
],
|
|
300
|
+
};
|
|
301
|
+
const autumnLeavesB = {
|
|
302
|
+
commonName: "Autumn Leaves B Section",
|
|
303
|
+
category: "jazz",
|
|
304
|
+
chords: [
|
|
305
|
+
chord("7", "halfDiminished7", 1, { romanSymbol: "iiø7/vi" }),
|
|
306
|
+
chord("3", "dominant7", 1, { romanSymbol: "V7/vi" }),
|
|
307
|
+
chord("6", "minor", 2),
|
|
308
|
+
chord("2", "minor7", 1),
|
|
309
|
+
chord("5", "dominant7", 1),
|
|
310
|
+
chord("1", "major7", 1),
|
|
311
|
+
chord("4", "major7", 1),
|
|
312
|
+
],
|
|
313
|
+
};
|
|
314
|
+
const rhythmChangesA = {
|
|
315
|
+
commonName: "Rhythm Changes A Section",
|
|
316
|
+
category: "jazz",
|
|
317
|
+
chords: [
|
|
318
|
+
chord("1", "major", 0.5),
|
|
319
|
+
chord("6", "dominant7", 0.5),
|
|
320
|
+
chord("2", "minor7", 0.5),
|
|
321
|
+
chord("5", "dominant7", 0.5),
|
|
322
|
+
chord("3", "minor7", 0.5),
|
|
323
|
+
chord("6", "dominant7", 0.5),
|
|
324
|
+
chord("2", "minor7", 0.5),
|
|
325
|
+
chord("5", "dominant7", 0.5),
|
|
326
|
+
chord("1", "major", 0.5),
|
|
327
|
+
chord("1", "dominant7", 0.5),
|
|
328
|
+
chord("4", "major", 0.5),
|
|
329
|
+
chord("4", "minor", 0.5),
|
|
330
|
+
chord("1", "major", 0.5),
|
|
331
|
+
chord("5", "dominant7", 0.5),
|
|
332
|
+
chord("1", "major", 0.5),
|
|
333
|
+
chord("5", "dominant7", 0.5),
|
|
334
|
+
],
|
|
335
|
+
};
|
|
336
|
+
const rhythmChangesBridge = {
|
|
337
|
+
commonName: "Rhythm Changes Bridge",
|
|
338
|
+
category: "jazz",
|
|
339
|
+
chords: [
|
|
340
|
+
chord("3", "dominant7", 2),
|
|
341
|
+
chord("6", "dominant7", 2),
|
|
342
|
+
chord("2", "dominant7", 2),
|
|
343
|
+
chord("5", "dominant7", 2),
|
|
232
344
|
],
|
|
233
345
|
};
|
|
234
346
|
const _chordProgressions = {
|
|
@@ -241,14 +353,24 @@ const _chordProgressions = {
|
|
|
241
353
|
oneFiveSixFour,
|
|
242
354
|
oneSixTwoFive,
|
|
243
355
|
sixTwoFiveOne,
|
|
356
|
+
oneFourOneFiveSplitReturn,
|
|
357
|
+
circleOfFifths,
|
|
358
|
+
pachelbelCanon,
|
|
359
|
+
authenticCadence,
|
|
360
|
+
plagalCadence,
|
|
361
|
+
deceptiveCadence,
|
|
362
|
+
andalusianCadence,
|
|
363
|
+
twelveBarBlues,
|
|
364
|
+
twelveBarBluesQuickChange,
|
|
365
|
+
minorBlues,
|
|
366
|
+
jazzBlues,
|
|
244
367
|
majorTwoFiveOne,
|
|
245
368
|
minorTwoFiveOne,
|
|
246
|
-
|
|
369
|
+
backdoorTwoFiveOne,
|
|
247
370
|
autumnLeavesA,
|
|
248
371
|
autumnLeavesB,
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
rhythmChanges,
|
|
372
|
+
rhythmChangesA,
|
|
373
|
+
rhythmChangesBridge,
|
|
252
374
|
};
|
|
253
375
|
/** Built-in chord progression templates keyed by progression id. */
|
|
254
376
|
export const chordProgressions = _chordProgressions;
|
|
@@ -28,7 +28,8 @@ export interface ConversionRegistryEntry<T, TId extends string = string> {
|
|
|
28
28
|
name: string;
|
|
29
29
|
shortName: string;
|
|
30
30
|
description: string;
|
|
31
|
-
|
|
31
|
+
outputPreview: string;
|
|
32
|
+
sampleOutput: string;
|
|
32
33
|
inputKind: ConversionInputKind;
|
|
33
34
|
outputKind: ConversionOutputKind;
|
|
34
35
|
outputShape: ConversionOutputShape;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversion-registry.d.ts","sourceRoot":"","sources":["../../../src/src/utils/conversion-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACT,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgBrE;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,IAAI,CAAC;IACpB,oBAAoB,EAAE,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAClC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,yBAAyB,KAC/B,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,WAAW,GACX,YAAY,GACZ,eAAe,CAAC;AAEpB,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAEnD,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,WAAW,CAAC;AAEvD,MAAM,MAAM,8BAA8B,GAAG,CAC3C,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,KACjC,OAAO,CAAC;AAEb,MAAM,WAAW,uBAAuB,CAAC,CAAC,EAAE,GAAG,SAAS,MAAM,GAAG,MAAM;IACrE,EAAE,EAAE,GAAG,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"conversion-registry.d.ts","sourceRoot":"","sources":["../../../src/src/utils/conversion-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,8 @@ export const conversions = {
|
|
|
15
15
|
name: "Note Names",
|
|
16
16
|
shortName: "Notes",
|
|
17
17
|
description: "Returns 12 absolute pitch-class slots for the root and collection, indexed so C is slot 0.",
|
|
18
|
-
|
|
18
|
+
outputPreview: "C, D♭, D...",
|
|
19
|
+
sampleOutput: "C, D♭, D, E♭, E, F, G♭, G, A♭, A, B♭, B",
|
|
19
20
|
inputKind: "rootAndNoteCollection",
|
|
20
21
|
outputKind: "noteNames",
|
|
21
22
|
outputShape: "chromatic-12",
|
|
@@ -29,7 +30,8 @@ export const conversions = {
|
|
|
29
30
|
name: "Intervals",
|
|
30
31
|
shortName: "Intervals",
|
|
31
32
|
description: "Returns 12 absolute pitch-class slots labeled with intervals relative to the root, indexed so C is slot 0.",
|
|
32
|
-
|
|
33
|
+
outputPreview: "1, ♭2, 2...",
|
|
34
|
+
sampleOutput: "1, ♭2, 2, ♭3, 3, 4, ♭5, 5, ♭6, 6, ♭7, 7",
|
|
33
35
|
inputKind: "rootAndNoteCollection",
|
|
34
36
|
outputKind: "intervals",
|
|
35
37
|
outputShape: "chromatic-12",
|
|
@@ -43,7 +45,8 @@ export const conversions = {
|
|
|
43
45
|
name: "Extensions",
|
|
44
46
|
shortName: "Extensions",
|
|
45
47
|
description: "Returns 12 chromatic interval slots with simple intervals converted to extensions where applicable.",
|
|
46
|
-
|
|
48
|
+
outputPreview: "1, ♭9, 9...",
|
|
49
|
+
sampleOutput: "1, ♭9, 9, ♭3, 3, 11, ♭5, 5, ♭13, 13, ♭7, 7",
|
|
47
50
|
inputKind: "rootAndNoteCollection",
|
|
48
51
|
outputKind: "intervals",
|
|
49
52
|
outputShape: "chromatic-12",
|
|
@@ -57,7 +60,8 @@ export const conversions = {
|
|
|
57
60
|
name: "Compound Intervals",
|
|
58
61
|
shortName: "Compound",
|
|
59
62
|
description: "Returns 12 chromatic interval slots with simple intervals converted to compound equivalents.",
|
|
60
|
-
|
|
63
|
+
outputPreview: "1, ♭9, 9, ♭10...",
|
|
64
|
+
sampleOutput: "1, ♭9, 9, ♭10, 10, 11, ♭12, 12, ♭13, 13, ♭14, 14",
|
|
61
65
|
inputKind: "rootAndNoteCollection",
|
|
62
66
|
outputKind: "intervals",
|
|
63
67
|
outputShape: "chromatic-12",
|
|
@@ -71,7 +75,8 @@ export const conversions = {
|
|
|
71
75
|
name: "Triads",
|
|
72
76
|
shortName: "Triads",
|
|
73
77
|
description: "Returns 12 chromatic triad-name slots for note collections with authored modal harmony.",
|
|
74
|
-
|
|
78
|
+
outputPreview: "CM, Dm, Em...",
|
|
79
|
+
sampleOutput: "CM, -, Dm, -, Em, FM, -, GM, -, Am, -, B°",
|
|
75
80
|
inputKind: "rootAndNoteCollection",
|
|
76
81
|
outputKind: "chordNames",
|
|
77
82
|
outputShape: "chromatic-12",
|
|
@@ -87,7 +92,8 @@ export const conversions = {
|
|
|
87
92
|
name: "Seventh Chords",
|
|
88
93
|
shortName: "Sevenths",
|
|
89
94
|
description: "Returns 12 chromatic seventh-chord-name slots for note collections with authored modal harmony.",
|
|
90
|
-
|
|
95
|
+
outputPreview: "CM7, Dm7, Em7...",
|
|
96
|
+
sampleOutput: "CM7, -, Dm7, -, Em7, FM7, -, G7, -, Am7, -, Bø7",
|
|
91
97
|
inputKind: "rootAndNoteCollection",
|
|
92
98
|
outputKind: "chordNames",
|
|
93
99
|
outputShape: "chromatic-12",
|
|
@@ -103,7 +109,8 @@ export const conversions = {
|
|
|
103
109
|
name: "Roman Numeral Triads",
|
|
104
110
|
shortName: "Roman Triads",
|
|
105
111
|
description: "Returns 12 chromatic Roman numeral triad slots for note collections with authored modal harmony.",
|
|
106
|
-
|
|
112
|
+
outputPreview: "I, ii, iii...",
|
|
113
|
+
sampleOutput: "I, -, ii, -, iii, IV, -, V, -, vi, -, vii°",
|
|
107
114
|
inputKind: "rootAndNoteCollection",
|
|
108
115
|
outputKind: "romanNumerals",
|
|
109
116
|
outputShape: "chromatic-12",
|
|
@@ -119,7 +126,8 @@ export const conversions = {
|
|
|
119
126
|
name: "Roman Numeral Seventh Chords",
|
|
120
127
|
shortName: "Roman Sevenths",
|
|
121
128
|
description: "Returns 12 chromatic Roman numeral seventh-chord slots for note collections with authored modal harmony.",
|
|
122
|
-
|
|
129
|
+
outputPreview: "IM7, iim7, iiim7...",
|
|
130
|
+
sampleOutput: "IM7, -, iim7, -, iiim7, IVM7, -, V7, -, vim7, -, viiø7",
|
|
123
131
|
inputKind: "rootAndNoteCollection",
|
|
124
132
|
outputKind: "romanNumerals",
|
|
125
133
|
outputShape: "chromatic-12",
|
package/package.json
CHANGED
|
@@ -16,14 +16,24 @@ declare const _chordProgressions: {
|
|
|
16
16
|
readonly oneFiveSixFour: BuiltInChordProgression;
|
|
17
17
|
readonly oneSixTwoFive: BuiltInChordProgression;
|
|
18
18
|
readonly sixTwoFiveOne: BuiltInChordProgression;
|
|
19
|
+
readonly oneFourOneFiveSplitReturn: BuiltInChordProgression;
|
|
20
|
+
readonly circleOfFifths: BuiltInChordProgression;
|
|
21
|
+
readonly pachelbelCanon: BuiltInChordProgression;
|
|
22
|
+
readonly authenticCadence: BuiltInChordProgression;
|
|
23
|
+
readonly plagalCadence: BuiltInChordProgression;
|
|
24
|
+
readonly deceptiveCadence: BuiltInChordProgression;
|
|
25
|
+
readonly andalusianCadence: BuiltInChordProgression;
|
|
26
|
+
readonly twelveBarBlues: BuiltInChordProgression;
|
|
27
|
+
readonly twelveBarBluesQuickChange: BuiltInChordProgression;
|
|
28
|
+
readonly minorBlues: BuiltInChordProgression;
|
|
29
|
+
readonly jazzBlues: BuiltInChordProgression;
|
|
19
30
|
readonly majorTwoFiveOne: BuiltInChordProgression;
|
|
20
31
|
readonly minorTwoFiveOne: BuiltInChordProgression;
|
|
21
|
-
readonly
|
|
32
|
+
readonly backdoorTwoFiveOne: BuiltInChordProgression;
|
|
22
33
|
readonly autumnLeavesA: BuiltInChordProgression;
|
|
23
34
|
readonly autumnLeavesB: BuiltInChordProgression;
|
|
24
|
-
readonly
|
|
25
|
-
readonly
|
|
26
|
-
readonly rhythmChanges: BuiltInChordProgression;
|
|
35
|
+
readonly rhythmChangesA: BuiltInChordProgression;
|
|
36
|
+
readonly rhythmChangesBridge: BuiltInChordProgression;
|
|
27
37
|
};
|
|
28
38
|
/** A key for one of the built-in chord progression templates. */
|
|
29
39
|
export type ChordProgressionKey = keyof typeof _chordProgressions;
|
|
@@ -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,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;
|
|
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;AA8UJ,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Bd,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"}
|
|
@@ -15,41 +15,41 @@ function chord(degree, chordCollectionKey, durationInBars, analysis) {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
const _chordProgressionCategories = {
|
|
18
|
-
|
|
19
|
-
name: "
|
|
20
|
-
description: "
|
|
18
|
+
commonLoops: {
|
|
19
|
+
name: "Common Loops & Sequences",
|
|
20
|
+
description: "Reusable diatonic and modal loops, pop progressions, and root-motion sequences.",
|
|
21
21
|
},
|
|
22
|
-
|
|
23
|
-
name: "
|
|
24
|
-
description: "
|
|
25
|
-
},
|
|
26
|
-
jazz: {
|
|
27
|
-
name: "Jazz & Turnarounds",
|
|
28
|
-
description: "ii-V motion, turnarounds, and jazz-standard forms with richer chord collections.",
|
|
22
|
+
cadences: {
|
|
23
|
+
name: "Cadences",
|
|
24
|
+
description: "Short resolution patterns for tonic arrival, plagal motion, deceptive motion, and modal minor closure.",
|
|
29
25
|
},
|
|
30
26
|
blues: {
|
|
31
|
-
name: "Blues",
|
|
27
|
+
name: "Blues Forms",
|
|
32
28
|
description: "Blues forms built from dominant-function tonic, subdominant, and dominant areas.",
|
|
33
29
|
},
|
|
30
|
+
jazz: {
|
|
31
|
+
name: "Jazz Cadences & Standards",
|
|
32
|
+
description: "Seventh-chord cadences and reusable sections from foundational jazz-standard forms.",
|
|
33
|
+
},
|
|
34
34
|
};
|
|
35
35
|
/** Category display metadata for built-in chord progressions. */
|
|
36
36
|
exports.chordProgressionCategories = _chordProgressionCategories;
|
|
37
37
|
/** Built-in chord progression category keys in recommended display order. */
|
|
38
38
|
exports.chordProgressionCategoryKeys = [
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"jazz",
|
|
39
|
+
"commonLoops",
|
|
40
|
+
"cadences",
|
|
42
41
|
"blues",
|
|
42
|
+
"jazz",
|
|
43
43
|
];
|
|
44
44
|
const oneOneFiveFive = {
|
|
45
|
-
category: "
|
|
45
|
+
category: "commonLoops",
|
|
46
46
|
chords: [
|
|
47
47
|
chord("1", "major", 2),
|
|
48
48
|
chord("5", "major", 2),
|
|
49
49
|
],
|
|
50
50
|
};
|
|
51
51
|
const oneOneFiveFiveDominant7 = {
|
|
52
|
-
category: "
|
|
52
|
+
category: "commonLoops",
|
|
53
53
|
chords: [
|
|
54
54
|
chord("1", "major", 2),
|
|
55
55
|
chord("5", "major", 1),
|
|
@@ -57,14 +57,14 @@ const oneOneFiveFiveDominant7 = {
|
|
|
57
57
|
],
|
|
58
58
|
};
|
|
59
59
|
const oneOneFourFour = {
|
|
60
|
-
category: "
|
|
60
|
+
category: "commonLoops",
|
|
61
61
|
chords: [
|
|
62
62
|
chord("1", "major", 2),
|
|
63
63
|
chord("4", "major", 2),
|
|
64
64
|
],
|
|
65
65
|
};
|
|
66
66
|
const oneOneFourFive = {
|
|
67
|
-
category: "
|
|
67
|
+
category: "commonLoops",
|
|
68
68
|
chords: [
|
|
69
69
|
chord("1", "major", 2),
|
|
70
70
|
chord("4", "major", 1),
|
|
@@ -72,7 +72,7 @@ const oneOneFourFive = {
|
|
|
72
72
|
],
|
|
73
73
|
};
|
|
74
74
|
const oneFourOneFive = {
|
|
75
|
-
category: "
|
|
75
|
+
category: "commonLoops",
|
|
76
76
|
chords: [
|
|
77
77
|
chord("1", "major", 1),
|
|
78
78
|
chord("4", "major", 1),
|
|
@@ -81,7 +81,7 @@ const oneFourOneFive = {
|
|
|
81
81
|
],
|
|
82
82
|
};
|
|
83
83
|
const oneSixFourFive = {
|
|
84
|
-
category: "
|
|
84
|
+
category: "commonLoops",
|
|
85
85
|
chords: [
|
|
86
86
|
chord("1", "major", 1),
|
|
87
87
|
chord("6", "minor", 1),
|
|
@@ -90,7 +90,7 @@ const oneSixFourFive = {
|
|
|
90
90
|
],
|
|
91
91
|
};
|
|
92
92
|
const oneFiveSixFour = {
|
|
93
|
-
category: "
|
|
93
|
+
category: "commonLoops",
|
|
94
94
|
chords: [
|
|
95
95
|
chord("1", "major", 1),
|
|
96
96
|
chord("5", "major", 1),
|
|
@@ -99,7 +99,7 @@ const oneFiveSixFour = {
|
|
|
99
99
|
],
|
|
100
100
|
};
|
|
101
101
|
const oneSixTwoFive = {
|
|
102
|
-
category: "
|
|
102
|
+
category: "commonLoops",
|
|
103
103
|
chords: [
|
|
104
104
|
chord("1", "major", 1),
|
|
105
105
|
chord("6", "minor", 1),
|
|
@@ -108,7 +108,7 @@ const oneSixTwoFive = {
|
|
|
108
108
|
],
|
|
109
109
|
};
|
|
110
110
|
const sixTwoFiveOne = {
|
|
111
|
-
category: "
|
|
111
|
+
category: "commonLoops",
|
|
112
112
|
chords: [
|
|
113
113
|
chord("6", "minor", 1),
|
|
114
114
|
chord("2", "minor", 1),
|
|
@@ -116,60 +116,80 @@ const sixTwoFiveOne = {
|
|
|
116
116
|
chord("1", "major", 1),
|
|
117
117
|
],
|
|
118
118
|
};
|
|
119
|
-
const
|
|
120
|
-
category: "
|
|
119
|
+
const oneFourOneFiveSplitReturn = {
|
|
120
|
+
category: "commonLoops",
|
|
121
121
|
chords: [
|
|
122
|
-
chord("
|
|
123
|
-
chord("
|
|
124
|
-
chord("1", "
|
|
122
|
+
chord("1", "major", 1),
|
|
123
|
+
chord("4", "major", 1),
|
|
124
|
+
chord("1", "major", 1),
|
|
125
|
+
chord("5", "major", 1),
|
|
126
|
+
chord("1", "major", 1),
|
|
127
|
+
chord("4", "major", 1),
|
|
128
|
+
chord("1", "major", 0.5),
|
|
129
|
+
chord("5", "major", 0.5),
|
|
130
|
+
chord("1", "major", 1),
|
|
125
131
|
],
|
|
126
132
|
};
|
|
127
|
-
const
|
|
128
|
-
|
|
133
|
+
const circleOfFifths = {
|
|
134
|
+
commonName: "Circle of Fifths Progression",
|
|
135
|
+
category: "commonLoops",
|
|
129
136
|
chords: [
|
|
130
|
-
chord("
|
|
131
|
-
chord("
|
|
132
|
-
chord("
|
|
137
|
+
chord("1", "major", 1),
|
|
138
|
+
chord("4", "major", 1),
|
|
139
|
+
chord("7", "diminishedTriad", 1),
|
|
140
|
+
chord("3", "minor", 1),
|
|
141
|
+
chord("6", "minor", 1),
|
|
142
|
+
chord("2", "minor", 1),
|
|
143
|
+
chord("5", "major", 1),
|
|
144
|
+
chord("1", "major", 1),
|
|
133
145
|
],
|
|
134
146
|
};
|
|
135
|
-
const
|
|
136
|
-
commonName: "
|
|
137
|
-
category: "
|
|
147
|
+
const pachelbelCanon = {
|
|
148
|
+
commonName: "Pachelbel Canon",
|
|
149
|
+
category: "commonLoops",
|
|
138
150
|
chords: [
|
|
139
|
-
chord("
|
|
140
|
-
chord("5", "
|
|
141
|
-
chord("
|
|
142
|
-
chord("
|
|
143
|
-
chord("
|
|
144
|
-
chord("
|
|
145
|
-
chord("
|
|
151
|
+
chord("1", "major", 1),
|
|
152
|
+
chord("5", "major", 1),
|
|
153
|
+
chord("6", "minor", 1),
|
|
154
|
+
chord("3", "minor", 1),
|
|
155
|
+
chord("4", "major", 1),
|
|
156
|
+
chord("1", "major", 1),
|
|
157
|
+
chord("4", "major", 1),
|
|
158
|
+
chord("5", "major", 1),
|
|
146
159
|
],
|
|
147
160
|
};
|
|
148
|
-
const
|
|
149
|
-
commonName: "
|
|
150
|
-
category: "
|
|
161
|
+
const authenticCadence = {
|
|
162
|
+
commonName: "Authentic Cadence",
|
|
163
|
+
category: "cadences",
|
|
151
164
|
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
165
|
chord("5", "dominant7", 1),
|
|
157
|
-
chord("1", "
|
|
158
|
-
chord("4", "major7", 1),
|
|
166
|
+
chord("1", "major", 1),
|
|
159
167
|
],
|
|
160
168
|
};
|
|
161
|
-
const
|
|
162
|
-
|
|
169
|
+
const plagalCadence = {
|
|
170
|
+
commonName: "Plagal Cadence",
|
|
171
|
+
category: "cadences",
|
|
163
172
|
chords: [
|
|
164
|
-
chord("1", "major", 1),
|
|
165
173
|
chord("4", "major", 1),
|
|
166
174
|
chord("1", "major", 1),
|
|
175
|
+
],
|
|
176
|
+
};
|
|
177
|
+
const deceptiveCadence = {
|
|
178
|
+
commonName: "Deceptive Cadence",
|
|
179
|
+
category: "cadences",
|
|
180
|
+
chords: [
|
|
181
|
+
chord("5", "dominant7", 1),
|
|
182
|
+
chord("6", "minor", 1),
|
|
183
|
+
],
|
|
184
|
+
};
|
|
185
|
+
const andalusianCadence = {
|
|
186
|
+
commonName: "Andalusian Cadence",
|
|
187
|
+
category: "cadences",
|
|
188
|
+
chords: [
|
|
189
|
+
chord("1", "minor", 1),
|
|
190
|
+
chord("♭7", "major", 1),
|
|
191
|
+
chord("♭6", "major", 1),
|
|
167
192
|
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),
|
|
173
193
|
],
|
|
174
194
|
};
|
|
175
195
|
const twelveBarBlues = {
|
|
@@ -200,38 +220,130 @@ const twelveBarBluesQuickChange = {
|
|
|
200
220
|
chord("5", "dominant7", 1),
|
|
201
221
|
],
|
|
202
222
|
};
|
|
203
|
-
const
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
223
|
+
const minorBlues = {
|
|
224
|
+
commonName: "Minor Blues",
|
|
225
|
+
category: "blues",
|
|
226
|
+
chords: [
|
|
227
|
+
chord("1", "minor7", 1),
|
|
228
|
+
chord("4", "minor7", 1),
|
|
229
|
+
chord("1", "minor7", 1),
|
|
230
|
+
chord("1", "minor7", 1),
|
|
231
|
+
chord("4", "minor7", 1),
|
|
232
|
+
chord("4", "minor7", 1),
|
|
233
|
+
chord("1", "minor7", 1),
|
|
234
|
+
chord("1", "minor7", 1),
|
|
235
|
+
chord("♭6", "dominant7", 1),
|
|
236
|
+
chord("5", "dominant7", 1),
|
|
237
|
+
chord("1", "minor7", 1),
|
|
238
|
+
chord("5", "dominant7", 1),
|
|
239
|
+
],
|
|
240
|
+
};
|
|
241
|
+
const jazzBlues = {
|
|
242
|
+
commonName: "Jazz Blues",
|
|
243
|
+
category: "blues",
|
|
244
|
+
chords: [
|
|
245
|
+
chord("1", "dominant7", 1),
|
|
246
|
+
chord("4", "dominant7", 1),
|
|
247
|
+
chord("1", "dominant7", 1),
|
|
248
|
+
chord("5", "minor7", 0.5),
|
|
249
|
+
chord("1", "dominant7", 0.5),
|
|
250
|
+
chord("4", "dominant7", 1),
|
|
251
|
+
chord("♯4", "diminished7", 1),
|
|
252
|
+
chord("1", "dominant7", 0.5),
|
|
253
|
+
chord("6", "dominant7", 0.5),
|
|
254
|
+
chord("2", "minor7", 0.5),
|
|
255
|
+
chord("5", "dominant7", 0.5),
|
|
256
|
+
chord("3", "minor7", 0.5),
|
|
257
|
+
chord("6", "dominant7", 0.5),
|
|
258
|
+
chord("2", "minor7", 0.5),
|
|
259
|
+
chord("5", "dominant7", 0.5),
|
|
260
|
+
chord("1", "dominant7", 0.5),
|
|
261
|
+
chord("6", "dominant7", 0.5),
|
|
262
|
+
chord("2", "minor7", 0.5),
|
|
263
|
+
chord("5", "dominant7", 0.5),
|
|
264
|
+
],
|
|
265
|
+
};
|
|
266
|
+
const majorTwoFiveOne = {
|
|
267
|
+
category: "jazz",
|
|
268
|
+
chords: [
|
|
269
|
+
chord("2", "minor7", 1),
|
|
270
|
+
chord("5", "dominant7", 1),
|
|
271
|
+
chord("1", "major7", 2),
|
|
272
|
+
],
|
|
273
|
+
};
|
|
274
|
+
const minorTwoFiveOne = {
|
|
275
|
+
category: "jazz",
|
|
276
|
+
chords: [
|
|
277
|
+
chord("2", "halfDiminished7", 1),
|
|
278
|
+
chord("5", "dominant7", 1),
|
|
279
|
+
chord("1", "minor", 2),
|
|
280
|
+
],
|
|
281
|
+
};
|
|
282
|
+
const backdoorTwoFiveOne = {
|
|
283
|
+
commonName: "Backdoor ii-V-I",
|
|
284
|
+
category: "jazz",
|
|
285
|
+
chords: [
|
|
286
|
+
chord("4", "minor7", 1),
|
|
287
|
+
chord("♭7", "dominant7", 1),
|
|
288
|
+
chord("1", "major7", 2),
|
|
289
|
+
],
|
|
290
|
+
};
|
|
291
|
+
const autumnLeavesA = {
|
|
292
|
+
commonName: "Autumn Leaves A Section",
|
|
229
293
|
category: "jazz",
|
|
230
294
|
chords: [
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
295
|
+
chord("2", "minor7", 1),
|
|
296
|
+
chord("5", "dominant7", 1),
|
|
297
|
+
chord("1", "major7", 1),
|
|
298
|
+
chord("4", "major7", 1),
|
|
299
|
+
chord("7", "halfDiminished7", 1, { romanSymbol: "iiø7/vi" }),
|
|
300
|
+
chord("3", "dominant7", 1, { romanSymbol: "V7/vi" }),
|
|
301
|
+
chord("6", "minor", 2),
|
|
302
|
+
],
|
|
303
|
+
};
|
|
304
|
+
const autumnLeavesB = {
|
|
305
|
+
commonName: "Autumn Leaves B Section",
|
|
306
|
+
category: "jazz",
|
|
307
|
+
chords: [
|
|
308
|
+
chord("7", "halfDiminished7", 1, { romanSymbol: "iiø7/vi" }),
|
|
309
|
+
chord("3", "dominant7", 1, { romanSymbol: "V7/vi" }),
|
|
310
|
+
chord("6", "minor", 2),
|
|
311
|
+
chord("2", "minor7", 1),
|
|
312
|
+
chord("5", "dominant7", 1),
|
|
313
|
+
chord("1", "major7", 1),
|
|
314
|
+
chord("4", "major7", 1),
|
|
315
|
+
],
|
|
316
|
+
};
|
|
317
|
+
const rhythmChangesA = {
|
|
318
|
+
commonName: "Rhythm Changes A Section",
|
|
319
|
+
category: "jazz",
|
|
320
|
+
chords: [
|
|
321
|
+
chord("1", "major", 0.5),
|
|
322
|
+
chord("6", "dominant7", 0.5),
|
|
323
|
+
chord("2", "minor7", 0.5),
|
|
324
|
+
chord("5", "dominant7", 0.5),
|
|
325
|
+
chord("3", "minor7", 0.5),
|
|
326
|
+
chord("6", "dominant7", 0.5),
|
|
327
|
+
chord("2", "minor7", 0.5),
|
|
328
|
+
chord("5", "dominant7", 0.5),
|
|
329
|
+
chord("1", "major", 0.5),
|
|
330
|
+
chord("1", "dominant7", 0.5),
|
|
331
|
+
chord("4", "major", 0.5),
|
|
332
|
+
chord("4", "minor", 0.5),
|
|
333
|
+
chord("1", "major", 0.5),
|
|
334
|
+
chord("5", "dominant7", 0.5),
|
|
335
|
+
chord("1", "major", 0.5),
|
|
336
|
+
chord("5", "dominant7", 0.5),
|
|
337
|
+
],
|
|
338
|
+
};
|
|
339
|
+
const rhythmChangesBridge = {
|
|
340
|
+
commonName: "Rhythm Changes Bridge",
|
|
341
|
+
category: "jazz",
|
|
342
|
+
chords: [
|
|
343
|
+
chord("3", "dominant7", 2),
|
|
344
|
+
chord("6", "dominant7", 2),
|
|
345
|
+
chord("2", "dominant7", 2),
|
|
346
|
+
chord("5", "dominant7", 2),
|
|
235
347
|
],
|
|
236
348
|
};
|
|
237
349
|
const _chordProgressions = {
|
|
@@ -244,14 +356,24 @@ const _chordProgressions = {
|
|
|
244
356
|
oneFiveSixFour,
|
|
245
357
|
oneSixTwoFive,
|
|
246
358
|
sixTwoFiveOne,
|
|
359
|
+
oneFourOneFiveSplitReturn,
|
|
360
|
+
circleOfFifths,
|
|
361
|
+
pachelbelCanon,
|
|
362
|
+
authenticCadence,
|
|
363
|
+
plagalCadence,
|
|
364
|
+
deceptiveCadence,
|
|
365
|
+
andalusianCadence,
|
|
366
|
+
twelveBarBlues,
|
|
367
|
+
twelveBarBluesQuickChange,
|
|
368
|
+
minorBlues,
|
|
369
|
+
jazzBlues,
|
|
247
370
|
majorTwoFiveOne,
|
|
248
371
|
minorTwoFiveOne,
|
|
249
|
-
|
|
372
|
+
backdoorTwoFiveOne,
|
|
250
373
|
autumnLeavesA,
|
|
251
374
|
autumnLeavesB,
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
rhythmChanges,
|
|
375
|
+
rhythmChangesA,
|
|
376
|
+
rhythmChangesBridge,
|
|
255
377
|
};
|
|
256
378
|
/** Built-in chord progression templates keyed by progression id. */
|
|
257
379
|
exports.chordProgressions = _chordProgressions;
|
|
@@ -28,7 +28,8 @@ export interface ConversionRegistryEntry<T, TId extends string = string> {
|
|
|
28
28
|
name: string;
|
|
29
29
|
shortName: string;
|
|
30
30
|
description: string;
|
|
31
|
-
|
|
31
|
+
outputPreview: string;
|
|
32
|
+
sampleOutput: string;
|
|
32
33
|
inputKind: ConversionInputKind;
|
|
33
34
|
outputKind: ConversionOutputKind;
|
|
34
35
|
outputShape: ConversionOutputShape;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversion-registry.d.ts","sourceRoot":"","sources":["../../../src/src/utils/conversion-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACT,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgBrE;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,IAAI,CAAC;IACpB,oBAAoB,EAAE,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAClC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,yBAAyB,KAC/B,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,WAAW,GACX,YAAY,GACZ,eAAe,CAAC;AAEpB,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAEnD,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,WAAW,CAAC;AAEvD,MAAM,MAAM,8BAA8B,GAAG,CAC3C,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,KACjC,OAAO,CAAC;AAEb,MAAM,WAAW,uBAAuB,CAAC,CAAC,EAAE,GAAG,SAAS,MAAM,GAAG,MAAM;IACrE,EAAE,EAAE,GAAG,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"conversion-registry.d.ts","sourceRoot":"","sources":["../../../src/src/utils/conversion-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACT,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgBrE;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,IAAI,CAAC;IACpB,oBAAoB,EAAE,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAClC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,yBAAyB,KAC/B,cAAc,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,WAAW,GACX,YAAY,GACZ,eAAe,CAAC;AAEpB,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAEnD,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,WAAW,CAAC;AAEvD,MAAM,MAAM,8BAA8B,GAAG,CAC3C,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,KACjC,OAAO,CAAC;AAEb,MAAM,WAAW,uBAAuB,CAAC,CAAC,EAAE,GAAG,SAAS,MAAM,GAAG,MAAM;IACrE,EAAE,EAAE,GAAG,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,UAAU,EAAE,oBAAoB,CAAC;IACjC,WAAW,EAAE,qBAAqB,CAAC;IACnC,cAAc,EAAE,wBAAwB,CAAC;IACzC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,WAAW,CAAC,EAAE,8BAA8B,CAAC;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,EAAE,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC3D,SAAS,EAAE,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1D,UAAU,EAAE,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC5D,iBAAiB,EAAE,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;IAC3E,MAAM,EAAE,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAClD,aAAa,EAAE,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACjE,WAAW,EAAE,uBAAuB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACjE,kBAAkB,EAAE,uBAAuB,CACzC,iBAAiB,EACjB,sBAAsB,CACvB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,gCAAgC,CAAC;CACzD;AAkBD,eAAO,MAAM,WAAW,EAAE,kBAmKzB,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAC3C,gCAAoE,CAAC;AAEvE,MAAM,MAAM,kCAAkC,GAC5C,MAAM,OAAO,gCAAgC,CAAC;AAEhD,MAAM,MAAM,+BAA+B,GACzC,OAAO,gCAAgC,CAAC,kCAAkC,CAAC,CAAC;AAE9E,wBAAgB,0CAA0C,CACxD,UAAU,EAAE,+BAA+B,EAC3C,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAET;AAED,wBAAgB,4CAA4C,CAC1D,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,iBAAiB,GACnC,+BAA+B,EAAE,CAQnC"}
|
|
@@ -20,7 +20,8 @@ exports.conversions = {
|
|
|
20
20
|
name: "Note Names",
|
|
21
21
|
shortName: "Notes",
|
|
22
22
|
description: "Returns 12 absolute pitch-class slots for the root and collection, indexed so C is slot 0.",
|
|
23
|
-
|
|
23
|
+
outputPreview: "C, D♭, D...",
|
|
24
|
+
sampleOutput: "C, D♭, D, E♭, E, F, G♭, G, A♭, A, B♭, B",
|
|
24
25
|
inputKind: "rootAndNoteCollection",
|
|
25
26
|
outputKind: "noteNames",
|
|
26
27
|
outputShape: "chromatic-12",
|
|
@@ -34,7 +35,8 @@ exports.conversions = {
|
|
|
34
35
|
name: "Intervals",
|
|
35
36
|
shortName: "Intervals",
|
|
36
37
|
description: "Returns 12 absolute pitch-class slots labeled with intervals relative to the root, indexed so C is slot 0.",
|
|
37
|
-
|
|
38
|
+
outputPreview: "1, ♭2, 2...",
|
|
39
|
+
sampleOutput: "1, ♭2, 2, ♭3, 3, 4, ♭5, 5, ♭6, 6, ♭7, 7",
|
|
38
40
|
inputKind: "rootAndNoteCollection",
|
|
39
41
|
outputKind: "intervals",
|
|
40
42
|
outputShape: "chromatic-12",
|
|
@@ -48,7 +50,8 @@ exports.conversions = {
|
|
|
48
50
|
name: "Extensions",
|
|
49
51
|
shortName: "Extensions",
|
|
50
52
|
description: "Returns 12 chromatic interval slots with simple intervals converted to extensions where applicable.",
|
|
51
|
-
|
|
53
|
+
outputPreview: "1, ♭9, 9...",
|
|
54
|
+
sampleOutput: "1, ♭9, 9, ♭3, 3, 11, ♭5, 5, ♭13, 13, ♭7, 7",
|
|
52
55
|
inputKind: "rootAndNoteCollection",
|
|
53
56
|
outputKind: "intervals",
|
|
54
57
|
outputShape: "chromatic-12",
|
|
@@ -62,7 +65,8 @@ exports.conversions = {
|
|
|
62
65
|
name: "Compound Intervals",
|
|
63
66
|
shortName: "Compound",
|
|
64
67
|
description: "Returns 12 chromatic interval slots with simple intervals converted to compound equivalents.",
|
|
65
|
-
|
|
68
|
+
outputPreview: "1, ♭9, 9, ♭10...",
|
|
69
|
+
sampleOutput: "1, ♭9, 9, ♭10, 10, 11, ♭12, 12, ♭13, 13, ♭14, 14",
|
|
66
70
|
inputKind: "rootAndNoteCollection",
|
|
67
71
|
outputKind: "intervals",
|
|
68
72
|
outputShape: "chromatic-12",
|
|
@@ -76,7 +80,8 @@ exports.conversions = {
|
|
|
76
80
|
name: "Triads",
|
|
77
81
|
shortName: "Triads",
|
|
78
82
|
description: "Returns 12 chromatic triad-name slots for note collections with authored modal harmony.",
|
|
79
|
-
|
|
83
|
+
outputPreview: "CM, Dm, Em...",
|
|
84
|
+
sampleOutput: "CM, -, Dm, -, Em, FM, -, GM, -, Am, -, B°",
|
|
80
85
|
inputKind: "rootAndNoteCollection",
|
|
81
86
|
outputKind: "chordNames",
|
|
82
87
|
outputShape: "chromatic-12",
|
|
@@ -92,7 +97,8 @@ exports.conversions = {
|
|
|
92
97
|
name: "Seventh Chords",
|
|
93
98
|
shortName: "Sevenths",
|
|
94
99
|
description: "Returns 12 chromatic seventh-chord-name slots for note collections with authored modal harmony.",
|
|
95
|
-
|
|
100
|
+
outputPreview: "CM7, Dm7, Em7...",
|
|
101
|
+
sampleOutput: "CM7, -, Dm7, -, Em7, FM7, -, G7, -, Am7, -, Bø7",
|
|
96
102
|
inputKind: "rootAndNoteCollection",
|
|
97
103
|
outputKind: "chordNames",
|
|
98
104
|
outputShape: "chromatic-12",
|
|
@@ -108,7 +114,8 @@ exports.conversions = {
|
|
|
108
114
|
name: "Roman Numeral Triads",
|
|
109
115
|
shortName: "Roman Triads",
|
|
110
116
|
description: "Returns 12 chromatic Roman numeral triad slots for note collections with authored modal harmony.",
|
|
111
|
-
|
|
117
|
+
outputPreview: "I, ii, iii...",
|
|
118
|
+
sampleOutput: "I, -, ii, -, iii, IV, -, V, -, vi, -, vii°",
|
|
112
119
|
inputKind: "rootAndNoteCollection",
|
|
113
120
|
outputKind: "romanNumerals",
|
|
114
121
|
outputShape: "chromatic-12",
|
|
@@ -124,7 +131,8 @@ exports.conversions = {
|
|
|
124
131
|
name: "Roman Numeral Seventh Chords",
|
|
125
132
|
shortName: "Roman Sevenths",
|
|
126
133
|
description: "Returns 12 chromatic Roman numeral seventh-chord slots for note collections with authored modal harmony.",
|
|
127
|
-
|
|
134
|
+
outputPreview: "IM7, iim7, iiim7...",
|
|
135
|
+
sampleOutput: "IM7, -, iim7, -, iiim7, IVM7, -, V7, -, vim7, -, viiø7",
|
|
128
136
|
inputKind: "rootAndNoteCollection",
|
|
129
137
|
outputKind: "romanNumerals",
|
|
130
138
|
outputShape: "chromatic-12",
|