@musodojo/music-theory-data 14.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.
@@ -0,0 +1,110 @@
1
+ import type { NoteCollection } from "../../types/note-collections.d.ts";
2
+
3
+ const dominant7: NoteCollection = {
4
+ primaryName: "7",
5
+ names: ["7", "dom7", "Dominant 7th", "Dominant Seventh"],
6
+ intervals: ["1", "3", "5", "♭7"],
7
+ integers: [0, 4, 7, 10],
8
+ type: ["dominant", "major", "chord", "arpeggio", "tetrad"],
9
+ characteristics: [
10
+ "unstable",
11
+ "bluesy",
12
+ "tense",
13
+ "jazzy",
14
+ "major with flat 7th",
15
+ "minor 7th",
16
+ "the most common dominant chord",
17
+ "used in blues, jazz, and rock",
18
+ "foundational dominant chord",
19
+ "creates strong tension and resolution",
20
+ "used in an authentic cadence",
21
+ ],
22
+ pattern: ["major third", "minor third", "minor third"],
23
+ patternShort: ["M3", "m3", "m3"],
24
+ } as const;
25
+
26
+ const dominant9: NoteCollection = {
27
+ primaryName: "9",
28
+ names: ["9", "dom9", "Dominant 9th", "Dominant Ninth"],
29
+ intervals: ["1", "3", "5", "♭7", "9"],
30
+ integers: [0, 2, 4, 7, 10],
31
+ type: ["dominant", "major", "chord", "arpeggio", "pentad"],
32
+ characteristics: [
33
+ "unstable",
34
+ "bluesy",
35
+ "tense",
36
+ "jazzy",
37
+ "rich",
38
+ "richer than a 7th chord",
39
+ "common in jazz and R&B",
40
+ ],
41
+ pattern: ["major third", "minor third", "minor third", "major third"],
42
+ patternShort: ["M3", "m3", "m3", "M3"],
43
+ } as const;
44
+
45
+ const dominant11: NoteCollection = {
46
+ primaryName: "11",
47
+ names: ["11", "dom11", "Dominant 11th", "Dominant Eleventh"],
48
+ intervals: ["1", "3", "5", "♭7", "9", "11"],
49
+ integers: [0, 2, 4, 5, 7, 10],
50
+ type: ["dominant", "major", "chord", "arpeggio", "hexad"],
51
+ characteristics: [
52
+ "unstable",
53
+ "bluesy",
54
+ "tense",
55
+ "jazzy",
56
+ "rich",
57
+ "complex",
58
+ "dissonant 3rd",
59
+ "can be voiced without the 3rd and 5th",
60
+ "can be dissonant",
61
+ ],
62
+ pattern: [
63
+ "major third",
64
+ "minor third",
65
+ "minor third",
66
+ "major third",
67
+ "minor third",
68
+ ],
69
+ patternShort: ["M3", "m3", "m3", "M3", "m3"],
70
+ } as const;
71
+
72
+ const dominant13: NoteCollection = {
73
+ primaryName: "13",
74
+ names: ["13", "dom13", "Dominant 13th", "Dominant Thirteenth"],
75
+ intervals: ["1", "3", "5", "♭7", "9", "11", "13"],
76
+ integers: [0, 2, 4, 5, 7, 9, 10],
77
+ type: ["dominant", "major", "chord", "arpeggio", "heptad"],
78
+ characteristics: [
79
+ "unstable",
80
+ "bluesy",
81
+ "tense",
82
+ "jazzy",
83
+ "rich",
84
+ "complex",
85
+ "lush",
86
+ "the richest dominant extension",
87
+ "common in big band and modern jazz",
88
+ ],
89
+ pattern: [
90
+ "major third",
91
+ "minor third",
92
+ "minor third",
93
+ "major third",
94
+ "minor third",
95
+ "minor third",
96
+ ],
97
+ patternShort: ["M3", "m3", "m3", "M3", "m3", "m3"],
98
+ } as const;
99
+
100
+ export const _dominantVariants = {
101
+ dominant7,
102
+ dominant9,
103
+ dominant11,
104
+ dominant13,
105
+ } as const;
106
+
107
+ export type DominantVariantKey = keyof typeof _dominantVariants;
108
+
109
+ export const dominantVariants: Record<DominantVariantKey, NoteCollection> =
110
+ _dominantVariants;
@@ -0,0 +1,224 @@
1
+ import type { NoteCollection } from "../../types/note-collections.d.ts";
2
+
3
+ const harmonicMinor: NoteCollection = {
4
+ primaryName: "Harmonic Minor",
5
+ names: [
6
+ "Harmonic Minor",
7
+ "Aeolian ♮7",
8
+ "Aeolian Natural Seventh",
9
+ "Aeolian Raised Seventh",
10
+ ],
11
+ intervals: ["1", "2", "♭3", "4", "5", "♭6", "7", "8"],
12
+ integers: [0, 2, 3, 5, 7, 8, 11],
13
+ rotation: 0,
14
+ type: ["harmonic minor mode", "minor", "scale", "mode", "heptatonic"],
15
+ characteristics: [
16
+ "dark",
17
+ "tense",
18
+ "exotic",
19
+ "classical",
20
+ "neo-classical",
21
+ "middle-eastern",
22
+ "first mode of harmonic minor",
23
+ ],
24
+ pattern: [
25
+ "whole",
26
+ "half",
27
+ "whole",
28
+ "whole",
29
+ "half",
30
+ "augmented second",
31
+ "half",
32
+ ],
33
+ patternShort: ["W", "H", "W", "W", "H", "A2", "H"],
34
+ } as const;
35
+
36
+ const locrianNatural6: NoteCollection = {
37
+ primaryName: "Locrian ♮6",
38
+ names: ["Locrian ♮6", "Locrian Natural Sixth", "Locrian Raised Sixth"],
39
+ intervals: ["1", "♭2", "♭3", "4", "♭5", "6", "♭7", "8"],
40
+ integers: [0, 1, 3, 5, 6, 9, 10],
41
+ rotation: 1,
42
+ type: ["harmonic minor mode", "diminished", "scale", "mode", "heptatonic"],
43
+ characteristics: [
44
+ "dark",
45
+ "unstable",
46
+ "jazzy",
47
+ "exotic",
48
+ "second mode of harmonic minor",
49
+ ],
50
+ pattern: [
51
+ "half",
52
+ "whole",
53
+ "whole",
54
+ "half",
55
+ "augmented second",
56
+ "half",
57
+ "whole",
58
+ ],
59
+ patternShort: ["H", "W", "W", "H", "A2", "H", "W"],
60
+ } as const;
61
+
62
+ const ionianSharp5: NoteCollection = {
63
+ primaryName: "Ionian ♯5",
64
+ names: [
65
+ "Ionian ♯5",
66
+ "Ionian Sharp Fifth",
67
+ "Augmented Major",
68
+ "Ionian Augmented",
69
+ ],
70
+ intervals: ["1", "2", "3", "4", "♯5", "6", "7", "8"],
71
+ integers: [0, 2, 4, 5, 8, 9, 11],
72
+ rotation: 2,
73
+ type: [
74
+ "harmonic minor mode",
75
+ "major",
76
+ "augmented",
77
+ "scale",
78
+ "mode",
79
+ "heptatonic",
80
+ ],
81
+ characteristics: [
82
+ "bright",
83
+ "dreamy",
84
+ "unsettling",
85
+ "magical",
86
+ "third mode of harmonic minor",
87
+ ],
88
+ pattern: [
89
+ "whole",
90
+ "whole",
91
+ "half",
92
+ "augmented second",
93
+ "half",
94
+ "whole",
95
+ "whole",
96
+ ],
97
+ patternShort: ["W", "W", "H", "A2", "H", "W", "W"],
98
+ } as const;
99
+
100
+ const dorianSharp4: NoteCollection = {
101
+ primaryName: "Dorian ♯4",
102
+ names: [
103
+ "Dorian ♯4",
104
+ "Dorian Sharp Fourth",
105
+ "Dorian ♯11",
106
+ "Dorian Sharp Eleventh",
107
+ "Ukrainian Dorian",
108
+ "Romanian Minor",
109
+ ],
110
+ intervals: ["1", "2", "♭3", "♯4", "5", "6", "♭7", "8"],
111
+ integers: [0, 2, 3, 6, 7, 9, 10],
112
+ rotation: 3,
113
+ type: ["harmonic minor mode", "minor", "scale", "heptatonic"],
114
+ characteristics: ["exotic minor", "eastern european folk", "gypsy"],
115
+ pattern: [
116
+ "whole",
117
+ "half",
118
+ "augmented second",
119
+ "half",
120
+ "whole",
121
+ "whole",
122
+ "half",
123
+ ],
124
+ patternShort: ["W", "H", "A2", "H", "W", "W", "H"],
125
+ } as const;
126
+
127
+ const phrygianDominant: NoteCollection = {
128
+ primaryName: "Phrygian Dominant",
129
+ names: [
130
+ "Phrygian Dominant",
131
+ "Phrygian ♮3",
132
+ "Phrygian Natural Third",
133
+ "Phrygian Raised Third",
134
+ "Spanish Gypsy Scale",
135
+ "Freygish Scale",
136
+ "Phrygian Major",
137
+ "Harmonic Dominant",
138
+ ],
139
+ intervals: ["1", "♭2", "3", "4", "5", "♭6", "♭7", "8"],
140
+ integers: [0, 1, 4, 5, 7, 8, 10],
141
+ rotation: 4,
142
+ type: ["harmonic minor mode", "dominant", "scale", "heptatonic"],
143
+ characteristics: [
144
+ "very exotic",
145
+ "spanish",
146
+ "flamenco",
147
+ "klezmer",
148
+ "arabic",
149
+ "middle-eastern",
150
+ "tense",
151
+ ],
152
+ pattern: [
153
+ "half",
154
+ "augmented second",
155
+ "half",
156
+ "whole",
157
+ "half",
158
+ "whole",
159
+ "whole",
160
+ ],
161
+ patternShort: ["H", "A2", "H", "W", "H", "W", "W"],
162
+ } as const;
163
+
164
+ const lydianSharp2: NoteCollection = {
165
+ primaryName: "Lydian ♯2",
166
+ names: [
167
+ "Lydian ♯2",
168
+ "Lydian Sharp Second",
169
+ "Lydian ♯9",
170
+ "Lydian Sharp Ninth",
171
+ ],
172
+ intervals: ["1", "♯2", "3", "♯4", "5", "6", "7", "8"],
173
+ integers: [0, 3, 4, 6, 7, 9, 11],
174
+ rotation: 5,
175
+ type: ["harmonic minor mode", "major", "scale", "heptatonic"],
176
+ characteristics: ["very bright", "unusual", "double augmented", "exotic"],
177
+ pattern: [
178
+ "augmented second",
179
+ "half",
180
+ "whole",
181
+ "half",
182
+ "whole",
183
+ "whole",
184
+ "whole",
185
+ ],
186
+ patternShort: ["A2", "H", "W", "H", "W", "W", "W"],
187
+ } as const;
188
+
189
+ const superLocrianDoubleFlat7: NoteCollection = {
190
+ primaryName: "Super Locrian 𝄫7",
191
+ names: [
192
+ "Super Locrian 𝄫7",
193
+ "Super Locrian Diminished 7",
194
+ "Altered Diminished",
195
+ "Altered 𝄫7",
196
+ ],
197
+ intervals: ["1", "♭2", "♭3", "♭4", "♭5", "♭6", "𝄫7", "8"],
198
+ integers: [0, 1, 3, 4, 6, 8, 9],
199
+ rotation: 6,
200
+ type: ["harmonic minor mode", "diminished", "scale", "heptatonic"],
201
+ characteristics: [
202
+ "extremely tense",
203
+ "highly dissonant",
204
+ "altered",
205
+ "theoretical",
206
+ ],
207
+ pattern: ["half", "whole", "half", "whole", "whole", "half", "whole"],
208
+ patternShort: ["H", "W", "H", "W", "W", "H", "W"],
209
+ } as const;
210
+
211
+ export const _harmonicMinorModes = {
212
+ harmonicMinor,
213
+ locrianNatural6,
214
+ ionianSharp5,
215
+ dorianSharp4,
216
+ phrygianDominant,
217
+ lydianSharp2,
218
+ superLocrianDoubleFlat7,
219
+ } as const;
220
+
221
+ export type HarmonicMinorModeKey = keyof typeof _harmonicMinorModes;
222
+
223
+ export const harmonicMinorModes: Record<HarmonicMinorModeKey, NoteCollection> =
224
+ _harmonicMinorModes;
@@ -0,0 +1,129 @@
1
+ import type { NoteCollection } from "../../types/note-collections.d.ts ";
2
+
3
+ const major: NoteCollection = {
4
+ primaryName: "M",
5
+ names: ["M", "maj", "Major", "Major Triad", "Δ"],
6
+ intervals: ["1", "3", "5"],
7
+ integers: [0, 4, 7],
8
+ type: ["major", "chord", "arpeggio", "triad"],
9
+ characteristics: [
10
+ "stable",
11
+ "happy",
12
+ "bright",
13
+ "the most basic major chord",
14
+ ],
15
+ pattern: ["major third", "minor third"],
16
+ patternShort: ["M3", "m3"],
17
+ } as const;
18
+
19
+ const major6: NoteCollection = {
20
+ primaryName: "6",
21
+ names: ["6", "M6", "maj6", "Major 6th", "Major Sixth"],
22
+ intervals: ["1", "3", "5", "6"],
23
+ integers: [0, 4, 7, 9],
24
+ type: ["major", "chord", "arpeggio", "tetrad"],
25
+ characteristics: [
26
+ "stable",
27
+ "happy",
28
+ "bright",
29
+ "sweet",
30
+ "melodic",
31
+ "less tension than a major 7th",
32
+ "common in early jazz and pop",
33
+ ],
34
+ pattern: ["major third", "minor third", "major second"],
35
+ patternShort: ["M3", "m3", "M2"],
36
+ } as const;
37
+
38
+ const major7: NoteCollection = {
39
+ primaryName: "M7",
40
+ names: ["M7", "maj7", "Major 7th", "Major Seventh", "Δ7"],
41
+ intervals: ["1", "3", "5", "7"],
42
+ integers: [0, 4, 7, 11],
43
+ type: ["major", "chord", "arpeggio", "tetrad"],
44
+ characteristics: [
45
+ "stable",
46
+ "happy",
47
+ "bright",
48
+ "sophisticated",
49
+ "lush",
50
+ "jazzy and sophisticated",
51
+ ],
52
+ pattern: ["major third", "minor third", "major third"],
53
+ patternShort: ["M3", "m3", "M3"],
54
+ } as const;
55
+
56
+ const major9: NoteCollection = {
57
+ primaryName: "M9",
58
+ names: ["M9", "maj9", "Major 9th", "Major Ninth", "Δ9"],
59
+ intervals: ["1", "3", "5", "7", "9"],
60
+ integers: [0, 2, 4, 7, 11],
61
+ type: ["major", "chord", "arpeggio", "pentad"],
62
+ characteristics: [
63
+ "stable",
64
+ "happy",
65
+ "bright",
66
+ "colorful",
67
+ "rich",
68
+ "airy",
69
+ "adds a layer of complexity and color",
70
+ ],
71
+ pattern: ["major third", "minor third", "major third", "minor third"],
72
+ patternShort: ["M3", "m3", "M3", "m3"],
73
+ } as const;
74
+
75
+ const majorAdd9: NoteCollection = {
76
+ primaryName: "add9",
77
+ names: ["add9", "maj(add9)", "M(add9)", "Major add 9"],
78
+ intervals: ["1", "3", "5", "9"],
79
+ integers: [0, 2, 4, 7],
80
+ type: ["major", "chord", "arpeggio", "tetrad"],
81
+ characteristics: [
82
+ "stable",
83
+ "happy",
84
+ "bright",
85
+ "colorful",
86
+ "open",
87
+ "airy",
88
+ "different from a major 9th as it lacks the 7th",
89
+ ],
90
+ pattern: ["major third", "minor third", "perfect fifth"],
91
+ patternShort: ["M3", "m3", "P5"],
92
+ } as const;
93
+
94
+ const major6Add9: NoteCollection = {
95
+ primaryName: "6/9",
96
+ names: ["6/9", "M6/9", "maj6/9", "Major 6/9", "6add9", "Major add6 add9"],
97
+ intervals: ["1", "3", "5", "6", "9"],
98
+ integers: [0, 2, 4, 7, 9],
99
+ type: ["major", "chord", "arpeggio", "pentad"],
100
+ characteristics: [
101
+ "stable",
102
+ "happy",
103
+ "bright",
104
+ "sweet",
105
+ "melodic",
106
+ "colorful",
107
+ "rich",
108
+ "open",
109
+ "very lush and rich",
110
+ "alternative to a major 7th chord",
111
+ "popular in jazz piano voicings",
112
+ ],
113
+ pattern: ["major third", "minor third", "major second", "perfect fourth"],
114
+ patternShort: ["M3", "m3", "M2", "P4"],
115
+ } as const;
116
+
117
+ export const _majorVariants = {
118
+ major,
119
+ major6,
120
+ major7,
121
+ major9,
122
+ majorAdd9,
123
+ major6Add9,
124
+ } as const;
125
+
126
+ export type MajorVariantKey = keyof typeof _majorVariants;
127
+
128
+ export const majorVariants: Record<MajorVariantKey, NoteCollection> =
129
+ _majorVariants;
@@ -0,0 +1,198 @@
1
+ import type { NoteCollection } from "../../types/note-collections.d.ts";
2
+
3
+ const melodicMinor: NoteCollection = {
4
+ primaryName: "Melodic Minor",
5
+ names: [
6
+ "Melodic Minor",
7
+ "Jazz Minor",
8
+ "Ascending Melodic Minor Scale",
9
+ "Jazz Minor Scale",
10
+ "Minor Ionian",
11
+ "Ionian ♭3",
12
+ "Ionian Flat Third",
13
+ "Major Scale with Minor Third",
14
+ "Dorian Major 7",
15
+ ],
16
+ intervals: ["1", "2", "♭3", "4", "5", "6", "7", "8"],
17
+ integers: [0, 2, 3, 5, 7, 9, 11],
18
+ type: ["melodic minor mode", "minor", "mode", "scale", "heptatonic"],
19
+ characteristics: [
20
+ "minor tonality",
21
+ "minor scale start, major scale finish",
22
+ "jazz and classical music",
23
+ "classical: raised 6th and 7th degrees when ascending",
24
+ "classical: natural minor / aeolian mode when descending",
25
+ "jazz: raised 6th and 7th degrees in both directions",
26
+ "classical and jazz harmony",
27
+ "a staple of jazz improvisation",
28
+ "first mode of melodic minor",
29
+ ],
30
+ pattern: ["whole", "half", "whole", "whole", "whole", "whole", "half"],
31
+ patternShort: ["W", "H", "W", "W", "W", "W", "H"],
32
+ } as const;
33
+
34
+ const dorianFlat2: NoteCollection = {
35
+ primaryName: "Dorian ♭2",
36
+ names: [
37
+ "Dorian ♭2",
38
+ "Dorian Flat Second",
39
+ "Phrygian ♮6",
40
+ "Phrygian Natural Sixth",
41
+ "Phrygian Raised Sixth",
42
+ ],
43
+ intervals: ["1", "♭2", "♭3", "4", "5", "6", "♭7", "8"],
44
+ integers: [0, 1, 3, 5, 7, 9, 10],
45
+ type: ["melodic minor mode", "minor", "mode", "scale", "heptatonic"],
46
+ characteristics: [
47
+ "exotic",
48
+ "mysterious",
49
+ "used in jazz improvisation",
50
+ "dark but hopeful",
51
+ "exotic and mysterious sound",
52
+ "second mode of melodic minor",
53
+ ],
54
+ pattern: ["half", "whole", "whole", "whole", "whole", "half", "whole"],
55
+ patternShort: ["H", "W", "W", "W", "W", "H", "W"],
56
+ } as const;
57
+
58
+ const lydianAugmented: NoteCollection = {
59
+ primaryName: "Lydian Augmented",
60
+ names: ["Lydian Augmented", "Lydian ♯5", "Lydian Sharp Fifth"],
61
+ intervals: ["1", "2", "3", "♯4", "♯5", "6", "7", "8"],
62
+ integers: [0, 2, 4, 6, 8, 9, 11],
63
+ type: [
64
+ "melodic minor mode",
65
+ "augmented",
66
+ "mode",
67
+ "scale",
68
+ "heptatonic",
69
+ ],
70
+ characteristics: [
71
+ "dreamy",
72
+ "unsettling",
73
+ "ethereal",
74
+ "sci-fi",
75
+ "can be used over major chords",
76
+ "used over major 7th sharp 5 chords",
77
+ "third mode of melodic minor",
78
+ ],
79
+ pattern: ["whole", "whole", "whole", "whole", "half", "whole", "half"],
80
+ patternShort: ["W", "W", "W", "W", "H", "W", "H"],
81
+ } as const;
82
+
83
+ const lydianDominant: NoteCollection = {
84
+ primaryName: "Lydian Dominant",
85
+ names: [
86
+ "Lydian Dominant",
87
+ "Acoustic Scale",
88
+ "Overtone Scale",
89
+ "Lydian ♭7",
90
+ "Lydian Flat Seventh",
91
+ "Mixolydian ♯4",
92
+ "Mixolydian Sharp Fourth",
93
+ "Mixolydian Augmented Fourth",
94
+ ],
95
+ intervals: ["1", "2", "3", "♯4", "5", "6", "♭7", "8"],
96
+ integers: [0, 2, 4, 6, 7, 9, 10],
97
+ type: ["melodic minor mode", "dominant", "mode", "scale", "heptatonic"],
98
+ characteristics: [
99
+ "bright",
100
+ "dominant tonality",
101
+ "quirky",
102
+ "bluesy",
103
+ "jazzy",
104
+ "a very common scale in jazz for non-resolving dominant chords",
105
+ "fourth mode of melodic minor",
106
+ ],
107
+ pattern: ["whole", "whole", "whole", "half", "whole", "half", "whole"],
108
+ patternShort: ["W", "W", "W", "H", "W", "H", "W"],
109
+ } as const;
110
+
111
+ const mixolydianFlat6: NoteCollection = {
112
+ primaryName: "Mixolydian ♭6",
113
+ names: [
114
+ "Mixolydian ♭6",
115
+ "Mixolydian Flat Sixth",
116
+ "Aeolian Dominant",
117
+ "Aeolian ♯3",
118
+ "Aeolian Sharp Third",
119
+ "Descending Melodic Major",
120
+ "Hindu Scale",
121
+ ],
122
+ intervals: ["1", "2", "3", "4", "5", "♭6", "♭7", "8"],
123
+ integers: [0, 2, 4, 5, 7, 8, 10],
124
+ type: ["melodic minor mode", "dominant", "mode", "scale", "heptatonic"],
125
+ characteristics: [
126
+ "bluesy",
127
+ "dark",
128
+ "tense",
129
+ "often used over dominant chords resolving to a minor chord",
130
+ "fifth mode of melodic minor",
131
+ ],
132
+ pattern: ["whole", "whole", "half", "whole", "half", "whole", "whole"],
133
+ patternShort: ["W", "W", "H", "W", "H", "W", "W"],
134
+ } as const;
135
+
136
+ const aeolianFlat5: NoteCollection = {
137
+ primaryName: "Aeolian ♭5",
138
+ names: [
139
+ "Aeolian ♭5",
140
+ "Aeolian Flat Fifth",
141
+ "Locrian ♮2",
142
+ "Locrian Natural Second",
143
+ "Locrian Raised Second",
144
+ "Half-Diminished Scale",
145
+ ],
146
+ intervals: ["1", "2", "♭3", "4", "♭5", "♭6", "♭7", "8"],
147
+ integers: [0, 2, 3, 5, 6, 8, 10],
148
+ type: ["melodic minor mode", "minor", "mode", "scale", "heptatonic"],
149
+ characteristics: [
150
+ "dark",
151
+ "tense",
152
+ "jazz and fusion genres",
153
+ "half-diminished",
154
+ "used over half-diminished chords",
155
+ "sixth mode of melodic minor",
156
+ ],
157
+ pattern: ["whole", "half", "whole", "half", "whole", "whole", "whole"],
158
+ patternShort: ["W", "H", "W", "H", "W", "W", "W"],
159
+ } as const;
160
+
161
+ const altered: NoteCollection = {
162
+ primaryName: "Altered Scale",
163
+ names: [
164
+ "Altered Scale",
165
+ "Super Locrian Scale",
166
+ "Altered Dominant Scale",
167
+ "Locrian ♭4",
168
+ "Locrian Flat Fourth",
169
+ ],
170
+ intervals: ["1", "♭2", "♭3", "♭4", "♭5", "♭7", "8"],
171
+ integers: [0, 1, 3, 4, 6, 8, 10],
172
+ type: ["melodic minor mode", "dominant", "mode", "scale", "heptatonic"],
173
+ characteristics: [
174
+ "tense",
175
+ "dissonant",
176
+ "jazzy",
177
+ "maximum tension over a dominant chord",
178
+ "contains many altered extensions (♭9, ♯9, ♭5, ♯5)",
179
+ "seventh mode of melodic minor",
180
+ ],
181
+ pattern: ["half", "whole", "half", "whole", "whole", "whole", "whole"],
182
+ patternShort: ["H", "W", "H", "W", "W", "W", "W"],
183
+ } as const;
184
+
185
+ export const _melodicMinorModes = {
186
+ melodicMinor,
187
+ dorianFlat2,
188
+ lydianAugmented,
189
+ lydianDominant,
190
+ mixolydianFlat6,
191
+ aeolianFlat5,
192
+ altered,
193
+ } as const;
194
+
195
+ export type MelodicMinorModeKey = keyof typeof _melodicMinorModes;
196
+
197
+ export const melodicMinorModes: Record<MelodicMinorModeKey, NoteCollection> =
198
+ _melodicMinorModes;