1
+ /*
2
+ MKtlDesc.loadDescs("*push"); m.free; m = MKtl(\push, "*push").trace; m.gui;
3
+ */
1
4
(
2
5
deviceName: "Ableton Push" ,
3
6
protocol: \midi ,
@@ -36,20 +39,41 @@ deviceInfo: (
36
39
elementsDesc: (
37
40
shared: (midiChan: 0 ),
38
41
elements: [
42
+ //------ encoderTopRow
43
+ (
44
+ key: \kn ,
45
+ elements: [
46
+ (
47
+ key: \touch ,
48
+ shared: (
49
+ elementType: 'pad' , groupType: \noteOnOffBut ,
50
+ spec: \midiVel
51
+ ),
52
+ elements: ( 0 .. 8 ).collect { |num, i|
53
+ (
54
+ key: (num+1 ).asSymbol, midiNum: num,
55
+ shared: (style: (row: -0.5 , column: i + 2 , height: 0.7 ))
56
+ )
57
+ }
58
+ ),
59
+ (
60
+ key: \turn ,
61
+ shared: (midiMsgType: \cc , elementType: \encoder , spec: \midiCC ),
62
+ elements: (71 ..79 ).collect { |num, i|
63
+ (midiNum: num, style: (row: 0 , column: 2 + i))
64
+ }
65
+ )
66
+ ]
67
+ ),
39
68
//------ pads -------------
40
69
(
41
70
key: \pad ,
42
- shared: (elementType: \pad ),
71
+ shared: (elementType: \pad , groupType: \noteOnOffTouch ),
43
72
elements: (36 ..99 ).clump(8 ).reverse.collect { |rownums, i|
44
73
(
45
74
elements: rownums.collect { |num, j|
46
75
(
47
- shared: (midiNum: num),
48
- elements: [
49
- (key: \on , 'midiMsgType' : 'noteOn' , 'spec' : 'midiVel' , ioType: \inout ),
50
- (key: \off , 'midiMsgType' : 'noteOff' , 'spec' : 'midiVel' , ioType: \in ),
51
- (key: \touch , 'midiMsgType' : 'polyTouch' , 'spec' : 'midiCC' , ioType: \in ),
52
- ]
76
+ shared: (midiNum: num, style: (row: i + 4 , column: j + 2 ))
53
77
)
54
78
}
55
79
)
@@ -59,90 +83,82 @@ elementsDesc: (
59
83
(
60
84
key: \ribbon ,
61
85
elements: [
62
- MKtlDesc .notePair(\touch , 12 ,
86
+ (
87
+ key: \touch , midiNum: 12 ,
88
+ groupType: \noteOnOffBut ,
63
89
shared: (
64
- elementType: 'button' ,
90
+ groupType: \noteOnOffBut ,
91
+ elementType: 'pad' ,
65
92
midiChan: 0 ,
66
- spec: 'midiNote'
93
+ spec: 'midiBut' ,
94
+ style: (row: 4 , column: 1 )
67
95
)
68
96
),
69
97
(
70
98
key: \bend ,
71
99
midiMsgType: 'bend' ,
72
100
elementType: 'ribbon' ,
73
- spec: 'midiBend'
74
- )
75
- ]
76
- ),
77
- //------ encoderTopRow
78
- (
79
- key: \kn ,
80
- elements: [
81
- (
82
- key: \touch ,
83
- shared: (
84
- elementType: 'button' ,
85
- spec: \midiVel
86
- ),
87
- elements: ( 0 .. 8 ).collect { |num|
88
- MKtlDesc .notePair((num+1 ).asSymbol, num)
89
- }
90
- ),
91
- (
92
- key: \turn ,
93
- shared: (midiMsgType: \cc , elementType: \encoder ,spec: \midiCC ),
94
- elements: (71 ..79 ).collect { |num| (midiNum: num) }
101
+ spec: 'midiBend' ,
102
+ style: (row: 5 , column: 1 , height: 7 )
95
103
)
96
104
]
97
105
),
98
106
//------ side encoders (not in a group because very different in experience)
99
107
(
100
108
key: \knLeft ,
101
109
elements: [
102
- MKtlDesc .notePair(\touch , 10 ,
110
+ (
111
+ key: \touch , midiNum: 10 ,
112
+ groupType: \noteOnOffBut ,
103
113
shared: (
104
- elementType: \button ,
105
- spec: \midiVel
106
-
114
+ elementType: \pad , groupType: \noteOnOffBut ,
115
+ spec: \midiVel ,
116
+ style: ( row: 3 , column: 0 , height: 0.4 )
107
117
),
108
118
),
109
119
(
110
120
key: \turn ,
111
121
midiMsgType: \cc ,
112
122
elementType: \encoder ,
113
123
midiNum: 14 ,
114
- spec: \midiBut
124
+ spec: \midiBut ,
125
+ style: (row: 3.4 , column: 0 , height: 0.8 )
115
126
)
116
127
]
117
128
),
118
129
(
119
130
key: \knRight ,
120
131
elements: [
121
- MKtlDesc .notePair(\touch , 9 ,
132
+ (
133
+ key: \touch , midiNum: 9 ,
134
+ groupType: \noteOnOffBut ,
122
135
shared: (
123
- elementType: \button ,
124
- spec: \midiVel
125
-
136
+ elementType: \pad , groupType: \noteOnOffBut ,
137
+ spec: \midiVel ,
138
+ style: ( row: 3 , column: 1 , height: 0.4 )
126
139
),
127
140
),
128
141
(
129
142
key: \turn ,
130
143
midiMsgType: \cc ,
131
144
elementType: \encoder ,
132
145
midiNum: 15 ,
133
- spec: \midiBut
146
+ spec: \midiBut ,
147
+ style: (row: 3.4 , column: 1 , height: 0.8 )
134
148
)
135
149
]
136
150
),
137
151
//------ color button rows
138
152
(
139
153
key: \bt ,
140
- shared: (midiMsgType: 'cc' , elementType: 'button ' ,
154
+ shared: (midiMsgType: 'cc' , elementType: 'pad ' ,
141
155
spec: 'midiCC' , ioType: \inout ),
142
156
elements: [(20 ..27 ), (102 ..109 )].collect { |row, i|
143
157
(
158
+ shared: (groupType: \noteOnOffBut ),
144
159
elements: row.collect { |num, j|
145
- (midiNum: num)
160
+ (midiNum: num,
161
+ shared: (style: (row: i * 0.5 + 3 , column: j + 2 , height: 0.6 )))
146
162
})
147
163
}
148
164
),
@@ -153,65 +169,73 @@ elementsDesc: (
153
169
shared: (midiMsgType: 'cc' , elementType: 'button' ,
154
170
spec: 'midiCC' , ioType: \inout ),
155
171
elements: [
156
- (key: '132t' , midiNum: 43 ),
157
- (key: '132' , midiNum: 42 ),
158
- (key: '116t' , midiNum: 41 ),
159
- (key: '116' , midiNum: 40 ),
160
- (key: '18t' , midiNum: 39 ),
161
- (key: '18' , midiNum: 38 ),
162
- (key: '14t' , midiNum: 37 ),
163
- (key: '14' , midiNum: 36 )
172
+ (key: '132t' , midiNum: 43 , style: ( row: 4 , column: 10 ) ),
173
+ (key: '132' , midiNum: 42 , style: ( row: 5 , column: 10 ) ),
174
+ (key: '116t' , midiNum: 41 , style: ( row: 6 , column: 10 ) ),
175
+ (key: '116' , midiNum: 40 , style: ( row: 7 , column: 10 ) ),
176
+ (key: '18t' , midiNum: 39 , style: ( row: 8 , column: 10 ) ),
177
+ (key: '18' , midiNum: 38 , style: ( row: 9 , column: 10 ) ),
178
+ (key: '14t' , midiNum: 37 , style: ( row: 10 , column: 10 ) ),
179
+ (key: '14' , midiNum: 36 , style: ( row: 11 , column: 10 ) )
164
180
]
165
181
),
166
- //------ ctl buttons
182
+ // // ------ ctl buttons
167
183
(
168
184
key: \btCtl ,
169
185
shared: (midiMsgType: 'cc' , elementType: 'button' ,
170
186
spec: 'midiCC' , ioType: \inout ),
171
187
elements: [
172
- (key: \tapTempo , midiNum: 3 ),
173
- (key: \metronome , midiNum: 9 ),
174
- (key: \undo , midiNum: 119 ),
175
- (key: \delete , midiNum: 118 ),
176
- (key: \double , midiNum: 117 ),
177
- (key: \quantize , midiNum: 116 ),
178
- (key: \fixedLength , midiNum: 90 ),
179
- (key: \automation , midiNum: 89 ),
180
- (key: \duplicate , midiNum: 88 ),
181
- (key: \new , midiNum: 87 ),
182
- (key: \record , midiNum: 86 ),
183
- (key: \play , midiNum: 85 ),
184
- (key: \stop , midiNum: 29 ),
185
- (key: \master , midiNum: 28 ),
186
- (key: \volume , midiNum: 114 ),
187
- (key: \track , midiNum: 112 ),
188
-
189
- (key: \device , midiNum: 110 ),
190
- (key: \in , midiNum: 62 ),
191
- (key: \mute , midiNum: 60 ),
192
- (key: \scales , midiNum: 58 ),
193
- (key: \repeat , midiNum: 56 ),
194
- (key: \octaveDown , midiNum: 54 ),
195
- (key: \addEffect , midiNum: 52 ),
196
- (key: \note , midiNum: 50 ),
197
- (key: \select , midiNum: 48 ),
198
-
199
- (key: \panSend , midiNum: 115 ),
200
- (key: \clip , midiNum: 113 ),
201
- (key: \browse , midiNum: 111 ),
202
- (key: \out , midiNum: 63 ),
203
- (key: \solo , midiNum: 61 ),
204
- (key: \user , midiNum: 59 ),
205
- (key: \accent , midiNum: 57 ),
206
- (key: \octaveUp , midiNum: 55 ),
207
-
208
- (key: \addTrack , midiNum: 53 ),
209
- (key: \session , midiNum: 51 ),
210
- (key: \shift , midiNum: 49 ),
211
- (key: \left , midiNum: 44 ),
212
- (key: \right , midiNum: 45 ),
213
- (key: \up , midiNum: 46 ),
214
- (key: \down , midiNum: 47 )
188
+ (key: \tapTempo , midiNum: 3 , style: (row: 1 , column: 0 )),
189
+ (key: \metronome , midiNum: 9 , style: (row: 2 , column: 0 , height: 0.7 )),
190
+
191
+ (key: \undo , midiNum: 119 , style: (row: 4 , column: 0 , height: 0.8 )),
192
+ (key: \delete , midiNum: 118 , style: (row: 4.7 , column: 0 , height: 0.8 )),
193
+ (key: \double , midiNum: 117 , style: (row: 5.4 , column: 0 , height: 0.8 )),
194
+ (key: \quantize , midiNum: 116 , style: (row: 6.1 , column: 0 , height: 0.8 )),
195
+
196
+ (key: \fixedLength , midiNum: 90 , style: (row: 7 , column: 0 , height: 0.8 )),
197
+ (key: \automation , midiNum: 89 , style: (row: 7.7 , column: 0 , height: 0.8 )),
198
+ (key: \duplicate , midiNum: 88 , style: (row: 8.4 , column: 0 , height: 0.8 )),
199
+ (key: \new , midiNum: 87 , style: (row: 9 , column: 0 )),
200
+ (key: \record , midiNum: 86 , style: (row: 10 , column: 0 )),
201
+ (key: \play , midiNum: 85 , style: (row: 11 , column: 0 )),
202
+
203
+ (key: \master , midiNum: 28 , style: (row: 3.0 , column: 10 , height: 0.6 )),
204
+ (key: \stop , midiNum: 29 , style: (row: 3.5 , column: 10 , height: 0.6 )),
205
+
206
+
207
+ (key: \volume , midiNum: 114 , style: (row: 1.0 , column: 11 , height: 0.8 )),
208
+ (key: \track , midiNum: 112 , style: (row: 1.6 , column: 11 , height: 0.8 )),
209
+ (key: \device , midiNum: 110 , style: (row: 2.2 , column: 11 , height: 0.8 )),
210
+
211
+ (key: \in , midiNum: 62 , style: (row: 3.0 , column: 11 , height: 0.8 )),
212
+ (key: \mute , midiNum: 60 , style: (row: 3.6 , column: 11 , height: 0.8 )),
213
+ (key: \scales , midiNum: 58 , style: (row: 4.2 , column: 11 , height: 0.8 )),
214
+ (key: \repeat , midiNum: 56 , style: (row: 4.8 , column: 11 , height: 0.8 )),
215
+ (key: \octaveDown ,midiNum: 54 , style: (row: 5.4 , column: 11 , height: 0.8 )),
216
+
217
+ (key: \addEffect ,midiNum: 52 , style: (row: 7.0 , column: 11 , height: 0.8 )),
218
+ (key: \note , midiNum: 50 , style: (row: 7.6 , column: 11 , height: 0.8 )),
219
+ (key: \select , midiNum: 48 , style: (row: 8.2 , column: 11 , height: 0.8 )),
220
+
221
+ (key: \panSend , midiNum: 115 , style: (row: 1.0 , column: 12 , height: 0.8 )),
222
+ (key: \clip , midiNum: 113 , style: (row: 1.6 , column: 12 , height: 0.8 )),
223
+ (key: \browse , midiNum: 111 , style: (row: 2.2 , column: 12 , height: 0.8 )),
224
+
225
+ (key: \out , midiNum: 63 , style: (row: 3.0 , column: 12 , height: 0.8 )),
226
+ (key: \solo , midiNum: 61 , style: (row: 3.6 , column: 12 , height: 0.8 )),
227
+ (key: \user , midiNum: 59 , style: (row: 4.2 , column: 12 , height: 0.8 )),
228
+ (key: \accent , midiNum: 57 , style: (row: 4.8 , column: 12 , height: 0.8 )),
229
+ (key: \octaveUp ,midiNum: 55 , style: (row: 5.4 , column: 12 , height: 0.8 )),
230
+
231
+ (key: \addTrack ,midiNum: 53 , style: (row: 7.0 , column: 12 , height: 0.8 )),
232
+ (key: \session , midiNum: 51 , style: (row: 7.6 , column: 12 , height: 0.8 )),
233
+ (key: \shift , midiNum: 49 , style: (row: 8.2 , column: 12 , height: 0.8 )),
234
+
235
+ (key: \left , midiNum: 44 , style: (row: 9.8 , column: 11 , height: 0.8 )),
236
+ (key: \right , midiNum: 45 , style: (row: 9.8 , column: 12 , height: 0.8 )),
237
+ (key: \up , midiNum: 46 , style: (row: 9.2 , column: 11.5 , height: 0.8 )),
238
+ (key: \down , midiNum: 47 , style: (row: 10.4 , column: 11.5 , height: 0.8 ))
215
239
]
216
240
),
217
241
(
@@ -220,8 +244,8 @@ elementsDesc: (
220
244
spec: 'midiCC' , ioType: \in
221
245
),
222
246
elements: [
223
- (key: '1' , midiNum: 64 ),
224
- (key: '2' , midiNum: 69 )
247
+ (key: '1' , midiNum: 64 , style: ( row: 11 , column: 11 ) ),
248
+ (key: '2' , midiNum: 69 , style: ( row: 11 , column: 12 ) )
225
249
]
226
250
227
251
)
0 commit comments