-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathintervalsToggles.js
More file actions
137 lines (131 loc) · 2.97 KB
/
Copy pathintervalsToggles.js
File metadata and controls
137 lines (131 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
var scales = {
chromatic: [['chromatic'], 12],
nonatonic: [['composite blues', "messiaen's mode #3"], 9],
octatonic: [
[
"messiaen's mode #4",
'purvi raga',
'spanish heptatonic',
'bebop',
'bebop minor',
'bebop major',
'bebop locrian',
'minor bebop',
'diminished',
'ichikosucho',
'minor six diminished',
'half-whole diminished',
'kafi raga',
"messiaen's mode #6",
],
8,
],
diatonic: [
[
'major',
'minor',
'lydian',
'phrygian',
'aeolian',
'dorian',
'mixolydian',
'locrian',
'locrian major',
'double harmonic lydian',
'harmonic minor',
'altered',
'locrian #2',
'mixolydian b6',
'lydian dominant',
'lydian augmented',
'dorian b2',
'melodic minor',
'ultralocrian',
'locrian 6',
'augmented heptatonic',
'romanian minor',
'dorian #4',
'lydian diminished',
'leading whole tone',
'lydian minor',
'phrygian dominant',
'balinese',
'neopolitan major',
'harmonic major',
'double harmonic major',
'hungarian minor',
'hungarian major',
'oriental',
'flamenco',
'todi raga',
'persian',
'enigmatic',
'major augmented',
'lydian #9',
],
7,
],
hexatonic: [
[
'minor hexatonic',
'augmented',
'major blues',
'piongio',
'prometheus neopolitan',
'prometheus',
'mystery #1',
'six tone symmetric',
'whole tone',
"messiaen's mode #5",
'minor blues',
],
6,
],
pentatonic: [
[
'major pentatonic',
'ionian pentatonic',
'mixolydian pentatonic',
'ritusen',
'egyptian',
'neopolitan major pentatonic',
'vietnamese 1',
'pelog',
'kumoijoshi',
'hirajoshi',
'iwato',
'in-sen',
'lydian pentatonic',
'malkos raga',
'locrian pentatonic',
'minor pentatonic',
'minor six pentatonic',
'flat three pentatonic',
'flat six pentatonic',
'scriabin',
'whole tone pentatonic',
'lydian #5P pentatonic',
'lydian dominant pentatonic',
'minor #7M pentatonic',
'super locrian pentatonic',
],
5,
],
};
function intervalsToggles(intervals) {
var patch = this.patcher;
var upperBound = patch.getnamed('upperBound');
var lowerBound = patch.getnamed('lowerBound');
var scale = patch.getnamed('scale');
upperBound.clear();
lowerBound.clear();
scale.clear();
var selectedScale = scales[intervals][0];
var numOfIntervals = scales[intervals][1];
for (var i = 0; i < numOfIntervals + 1; i = i + 1) upperBound.append(i);
for (var j = 0; j > numOfIntervals * -1 - 1; j = j - 1) lowerBound.append(j);
for (var k = 0; k < selectedScale.length; k = k + 1) scale.append(selectedScale[k]);
upperBound.set(numOfIntervals);
lowerBound.set(numOfIntervals);
outlet(0, 'bang');
}