1+ /*
2+ MKtlDesc.loadDescs("*push"); m.free; m = MKtl(\push, "*push").trace; m.gui;
3+ */
14(
25deviceName: "Ableton Push" ,
36protocol: \midi ,
@@ -36,20 +39,41 @@ deviceInfo: (
3639elementsDesc: (
3740 shared: (midiChan: 0 ),
3841 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+ ),
3968 //------ pads -------------
4069 (
4170 key: \pad ,
42- shared: (elementType: \pad ),
71+ shared: (elementType: \pad , groupType: \noteOnOffTouch ),
4372 elements: (36 ..99 ).clump(8 ).reverse.collect { |rownums, i|
4473 (
4574 elements: rownums.collect { |num, j|
4675 (
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 ))
5377 )
5478 }
5579 )
@@ -59,90 +83,82 @@ elementsDesc: (
5983 (
6084 key: \ribbon ,
6185 elements: [
62- MKtlDesc .notePair(\touch , 12 ,
86+ (
87+ key: \touch , midiNum: 12 ,
88+ groupType: \noteOnOffBut ,
6389 shared: (
64- elementType: 'button' ,
90+ groupType: \noteOnOffBut ,
91+ elementType: 'pad' ,
6592 midiChan: 0 ,
66- spec: 'midiNote'
93+ spec: 'midiBut' ,
94+ style: (row: 4 , column: 1 )
6795 )
6896 ),
6997 (
7098 key: \bend ,
7199 midiMsgType: 'bend' ,
72100 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 )
95103 )
96104 ]
97105 ),
98106 //------ side encoders (not in a group because very different in experience)
99107 (
100108 key: \knLeft ,
101109 elements: [
102- MKtlDesc .notePair(\touch , 10 ,
110+ (
111+ key: \touch , midiNum: 10 ,
112+ groupType: \noteOnOffBut ,
103113 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 )
107117 ),
108118 ),
109119 (
110120 key: \turn ,
111121 midiMsgType: \cc ,
112122 elementType: \encoder ,
113123 midiNum: 14 ,
114- spec: \midiBut
124+ spec: \midiBut ,
125+ style: (row: 3.4 , column: 0 , height: 0.8 )
115126 )
116127 ]
117128 ),
118129 (
119130 key: \knRight ,
120131 elements: [
121- MKtlDesc .notePair(\touch , 9 ,
132+ (
133+ key: \touch , midiNum: 9 ,
134+ groupType: \noteOnOffBut ,
122135 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 )
126139 ),
127140 ),
128141 (
129142 key: \turn ,
130143 midiMsgType: \cc ,
131144 elementType: \encoder ,
132145 midiNum: 15 ,
133- spec: \midiBut
146+ spec: \midiBut ,
147+ style: (row: 3.4 , column: 1 , height: 0.8 )
134148 )
135149 ]
136150 ),
137151 //------ color button rows
138152 (
139153 key: \bt ,
140- shared: (midiMsgType: 'cc' , elementType: 'button ' ,
154+ shared: (midiMsgType: 'cc' , elementType: 'pad ' ,
141155 spec: 'midiCC' , ioType: \inout ),
142156 elements: [(20 ..27 ), (102 ..109 )].collect { |row, i|
143157 (
158+ shared: (groupType: \noteOnOffBut ),
144159 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 )))
146162 })
147163 }
148164 ),
@@ -153,65 +169,73 @@ elementsDesc: (
153169 shared: (midiMsgType: 'cc' , elementType: 'button' ,
154170 spec: 'midiCC' , ioType: \inout ),
155171 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 ) )
164180 ]
165181 ),
166- //------ ctl buttons
182+ // // ------ ctl buttons
167183 (
168184 key: \btCtl ,
169185 shared: (midiMsgType: 'cc' , elementType: 'button' ,
170186 spec: 'midiCC' , ioType: \inout ),
171187 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 ))
215239 ]
216240 ),
217241 (
@@ -220,8 +244,8 @@ elementsDesc: (
220244 spec: 'midiCC' , ioType: \in
221245 ),
222246 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 ) )
225249 ]
226250
227251 )
0 commit comments