Skip to content

Commit eabf82d

Browse files
author
maurinElectroTextile
committed
Updated mode_z & cleanUp
1 parent 28cf3ab commit eabf82d

11 files changed

Lines changed: 471 additions & 236 deletions

File tree

docs/js/e256_config.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ const NEW_COLS = (RAW_COLS * SCALE_X);
2525
const NEW_ROWS = (RAW_ROWS * SCALE_Y);
2626
const NEW_FRAME = (NEW_COLS * NEW_ROWS);
2727

28-
const X_PADDING_LEFT = 1;
29-
const X_PADDING_REIGHT = 1;
30-
const Y_PADDING_TOP = 1;
31-
const Y_PADDING_BOTTOM = 1;
28+
//const X_PADDING_LEFT = 1;
29+
//const X_PADDING_REIGHT = 1;
30+
//const Y_PADDING_TOP = 1;
31+
//const Y_PADDING_BOTTOM = 1;
3232

3333
//const MATRIX_RESOLUTION_X = NEW_FRAME - X_PADDING_LEFT - X_PADDING_REIGHT;
3434
//const MATRIX_RESOLUTION_Y = NEW_FRAME - Y_PADDING_TOP - Y_PADDING_BOTTOM;

docs/js/e256_mappings/grid.js

Lines changed: 84 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
/////////// GRID Factory
8+
// Multitouch MIDI grid GUI
89
function grid_factory() {
910
const DEFAULT_GRID_WIDTH = 400;
1011
const DEFAULT_GRID_HEIGHT = 400;
@@ -13,7 +14,6 @@ function grid_factory() {
1314
const DEFAULT_GRID_MODE_Z = NOTE_ON;
1415
const GRID_MIN_SIZE = 30;
1516

16-
1717
let frame_width = null;
1818
let frame_height = null;
1919
let key_width = null;
@@ -54,11 +54,21 @@ function grid_factory() {
5454
this.data.rows = DEFAULT_GRID_ROWS;
5555

5656
this.data.msg = [];
57-
let key_msg;
5857
current_key_count = this.data.cols * this.data.rows;
5958
for (let _key = 0; _key < current_key_count; _key++) {
60-
key_msg = {};
61-
key_msg.press = midi_msg_builder(DEFAULT_GRID_MODE_Z);
59+
let key_msg = {};
60+
switch (this.data.mode_z) {
61+
case NOTE_ON:
62+
key_msg.note = midi_msg_builder(NOTE_ON);
63+
break;
64+
case C_CHANGE:
65+
key_msg.press = midi_msg_builder(C_CHANGE);
66+
break;
67+
case AFTERTOUCH_POLY:
68+
key_msg.note = midi_msg_builder(NOTE_ON);
69+
key_msg.press = midi_msg_builder(C_CHANGE);
70+
break;
71+
}
6272
this.data.msg.push(key_msg);
6373
}
6474
},
@@ -90,30 +100,43 @@ function grid_factory() {
90100
previous_key_count = current_key_count;
91101
current_key_count = this.data.cols * this.data.rows;
92102
this.data.msg = [];
93-
if (this.data.mode_z != previous_key_mode_z) {
94-
for (let _key = 0; _key < current_key_count; _key++) {
95-
let key_msg = {};
96-
key_msg.press = midi_msg_builder(this.data.mode_z);
97-
this.data.msg.push(key_msg);
103+
for (let _key = 0; _key < current_key_count; _key++) {
104+
let key_msg = {};
105+
if (this.data.mode_z != previous_key_mode_z) {
106+
switch (this.data.mode_z) {
107+
case NOTE_ON:
108+
key_msg.note = midi_msg_builder(NOTE_ON);
109+
break;
110+
case C_CHANGE:
111+
key_msg.press = midi_msg_builder(C_CHANGE);
112+
break;
113+
case AFTERTOUCH_POLY:
114+
key_msg.note = midi_msg_builder(NOTE_ON);
115+
key_msg.press = midi_msg_builder(C_CHANGE);
116+
break;
117+
}
98118
}
99-
}
100-
else {
101-
for (let _key = 0; _key < current_key_count; _key++) {
119+
else {
102120
if (_key < previous_key_count) {
103-
// ERROR -> QUIK_FIXME
104-
//let status = midi_msg_status_unpack(this.children["keys-group"].children[_key].msg.press.midi.status);
105-
//let new_status = midi_msg_status_pack(this.data.mode_z, status.channel);
106-
//this.children["keys-group"].children[_key].msg.press.midi.status = new_status;
107-
this.data.msg.push(this.children["keys-group"].children[_key].msg);
121+
key_msg = this.children["keys-group"].children[_key].msg;
108122
}
109123
else {
110-
let key_msg = {};
111-
key_msg.press = midi_msg_builder(this.data.mode_z);
112-
this.data.msg.push(key_msg);
124+
switch (this.data.mode_z) {
125+
case NOTE_ON:
126+
key_msg.note = midi_msg_builder(NOTE_ON);
127+
break;
128+
case C_CHANGE:
129+
key_msg.press = midi_msg_builder(C_CHANGE);
130+
break;
131+
case AFTERTOUCH_POLY:
132+
key_msg.note = midi_msg_builder(NOTE_ON);
133+
key_msg.press = midi_msg_builder(C_CHANGE);
134+
break;
135+
}
113136
}
114137
}
138+
this.data.msg.push(key_msg);
115139
}
116-
117140
},
118141

119142
new_key: function (index_x, index_y) {
@@ -162,10 +185,24 @@ function grid_factory() {
162185
// N/A
163186
break;
164187
case THROUGH_MODE:
165-
// Set midi_msg status to NOTE_ON
166-
_key_group.msg.press.midi.status = _key_group.msg.press.midi.status | NOTE_ON;
167-
_key_group.msg.press.midi.data2 = 127;
168-
send_midi_msg(_key_group.msg.press.midi);
188+
switch (this.data.mode_z) {
189+
case NOTE_ON:
190+
_key_group.msg.note.midi.status = (_key_group.msg.note.midi.status | NOTE_ON);
191+
_key_group.msg.note.midi.data2 = 127;
192+
send_midi_msg(_key_group.msg.note.midi);
193+
break;
194+
case C_CHANGE:
195+
_key_group.msg.press.midi.data2 = get_random_int(64, 127);
196+
send_midi_msg(_key_group.msg.press.midi);
197+
break;
198+
case AFTERTOUCH_POLY:
199+
_key_group.msg.note.midi.status = (_key_group.msg.note.midi.status | NOTE_ON);
200+
_key_group.msg.note.midi.data2 = 127;
201+
send_midi_msg(_key_group.msg.note.midi);
202+
_key_group.msg.press.midi.data2 = get_random_int(64, 127);
203+
send_midi_msg(_key_group.msg.press.midi);
204+
break;
205+
}
169206
break;
170207
case PLAY_MODE:
171208
// N/A
@@ -180,28 +217,44 @@ function grid_factory() {
180217
// N/A
181218
break;
182219
case THROUGH_MODE:
183-
// Set midi_msg status to NOTE_OFF
184-
_key_group.msg.press.midi.status = _key_group.msg.press.midi.status & NOTE_OFF;
185-
_key_group.msg.press.midi.data2 = 0;
186-
send_midi_msg(_key_group.msg.press.midi);
220+
switch (this.data.mode_z) {
221+
case NOTE_ON:
222+
_key_group.msg.note.midi.status = (_key_group.msg.note.midi.status & NOTE_OFF);
223+
_key_group.msg.note.midi.data2 = 0;
224+
send_midi_msg(_key_group.msg.note.midi);
225+
break;
226+
case C_CHANGE:
227+
_key_group.msg.press.midi.data2 = 0;
228+
send_midi_msg(_key_group.msg.press.midi);
229+
break;
230+
case AFTERTOUCH_POLY:
231+
_key_group.msg.note.midi.status = (_key_group.msg.note.midi.status & NOTE_OFF);
232+
_key_group.msg.note.midi.data2 = 0;
233+
send_midi_msg(_key_group.msg.note.midi);
234+
_key_group.msg.press.midi.data2 = 0;
235+
send_midi_msg(_key_group.msg.press.midi);
236+
break;
237+
}
187238
break;
188239
case PLAY_MODE:
189240
// N/A
190241
break;
191242
}
192243
};
193244

245+
/*
194246
_key_frame.onMidiMsg = function (midiMsg) {
195247
// TODO
196-
//midiMsg
197248
};
249+
*/
198250

199251
_key_group.addChild(_key_frame);
200252

201253
let _key_txt = new paper.PointText({
202254
"name": "key-text",
203255
"point": _key_frame.position,
204-
"content": _key_group.msg.press.midi.data1,
256+
//"content": JSON.stringify(_key_group.msg), // MAKE IT CLEAR
257+
"content": null,
205258
"locked": true
206259
});
207260

docs/js/e256_mappings/knob.js

Lines changed: 105 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
/////////// KNOB Factory
8+
// Multitouch MIDI knob GUI
89
function knob_factory() {
910
const DEFAULT_KNOB_TOUCHS = 1;
1011
const DEFAULT_KNOB_RADIUS = 250;
@@ -49,13 +50,24 @@ function knob_factory() {
4950
this.center = mouseEvent.point;
5051
this.theta = deg_to_rad(DEFAULT_KNOB_OFFSET);
5152
this.data.msg = [];
52-
let midi_touch;
53+
let touch_msg;
5354
for (let _touch = 0; _touch < DEFAULT_KNOB_TOUCHS; _touch++) {
54-
midi_touch = {};
55-
midi_touch.radius = midi_msg_builder(DEFAULT_KNOB_MODE_R);
56-
midi_touch.theta = midi_msg_builder(DEFAULT_KNOB_MODE_T);
57-
midi_touch.press = midi_msg_builder(DEFAULT_KNOB_MODE_Z);
58-
this.data.msg.push(midi_touch);
55+
touch_msg = {};
56+
touch_msg.radius = midi_msg_builder(DEFAULT_KNOB_MODE_R);
57+
touch_msg.theta = midi_msg_builder(DEFAULT_KNOB_MODE_T);
58+
switch (this.data.mode_z) {
59+
case NOTE_ON:
60+
touch_msg.note = midi_msg_builder(NOTE_ON);
61+
break;
62+
case C_CHANGE:
63+
touch_msg.press = midi_msg_builder(C_CHANGE);
64+
break;
65+
case AFTERTOUCH_POLY:
66+
touch_msg.note = midi_msg_builder(NOTE_ON);
67+
touch_msg.press = midi_msg_builder(C_CHANGE);
68+
break;
69+
}
70+
this.data.msg.push(touch_msg);
5971
}
6072
},
6173

@@ -89,33 +101,46 @@ function knob_factory() {
89101
this.data.mode_z = this.children["knob-group"].data.mode_z;
90102

91103
this.data.msg = [];
92-
let midi_touch;
93-
if (this.data.mode_z != previous_touch_mode_z) {
94-
for (let _touch = 0; _touch < this.data.touchs; _touch++) {
95-
midi_touch = {};
96-
midi_touch.radius = midi_msg_builder(DEFAULT_KNOB_MODE_R);
97-
midi_touch.theta = midi_msg_builder(DEFAULT_KNOB_MODE_T);
98-
midi_touch.press = midi_msg_builder(this.data.mode_z);
99-
this.data.msg.push(midi_touch);
104+
for (let _touch = 0; _touch < this.data.touchs; _touch++) {
105+
let touch_msg = {};
106+
if (this.data.mode_z != previous_touch_mode_z) {
107+
touch_msg.radius = midi_msg_builder(DEFAULT_KNOB_MODE_R);
108+
touch_msg.theta = midi_msg_builder(DEFAULT_KNOB_MODE_T);
109+
switch (this.data.mode_z) {
110+
case NOTE_ON:
111+
touch_msg.note = midi_msg_builder(NOTE_ON);
112+
break;
113+
case C_CHANGE:
114+
touch_msg.press = midi_msg_builder(C_CHANGE);
115+
break;
116+
case AFTERTOUCH_POLY:
117+
touch_msg.note = midi_msg_builder(NOTE_ON);
118+
touch_msg.press = midi_msg_builder(C_CHANGE);
119+
break;
120+
}
100121
}
101-
}
102-
else {
103-
for (let _touch = 0; _touch < this.data.touchs; _touch++) {
122+
else {
104123
if (_touch < previous_touch_count) {
105-
// ERROR -> QUIK_FIXME
106-
//let status = midi_msg_status_unpack(this.children["touchs-group"].children[_touch].msg.press.midi.status);
107-
//let new_status = midi_msg_status_pack(this.data.mode_z, status.channel);
108-
//this.children["touchs-group"].children[_touch].msg.press.midi.status = new_status;
109-
this.data.msg.push(this.children["touchs-group"].children[_touch].msg);
124+
touch_msg = this.children["touchs-group"].children[_touch].msg;
110125
}
111126
else {
112-
midi_touch = {};
113-
midi_touch.radius = midi_msg_builder(DEFAULT_KNOB_MODE_R);
114-
midi_touch.theta = midi_msg_builder(DEFAULT_KNOB_MODE_T);
115-
midi_touch.press = midi_msg_builder(this.data.mode_z);
116-
this.data.msg.push(midi_touch);
127+
touch_msg.radius = midi_msg_builder(DEFAULT_KNOB_MODE_R);
128+
touch_msg.theta = midi_msg_builder(DEFAULT_KNOB_MODE_T);
129+
switch (this.data.mode_z) {
130+
case NOTE_ON:
131+
touch_msg.note = midi_msg_builder(NOTE_ON);
132+
break;
133+
case C_CHANGE:
134+
touch_msg.press = midi_msg_builder(C_CHANGE);
135+
break;
136+
case AFTERTOUCH_POLY:
137+
touch_msg.note = midi_msg_builder(NOTE_ON);
138+
touch_msg.press = midi_msg_builder(C_CHANGE);
139+
break;
140+
}
117141
}
118142
}
143+
this.data.msg.push(touch_msg);
119144
}
120145
this.center = this.children["knob-group"].center;
121146
this.radius = this.children["knob-group"].radius;
@@ -173,28 +198,68 @@ function knob_factory() {
173198
previous_touch = current_touch;
174199
current_touch = _touch_group;
175200
break;
201+
case THROUGH_MODE:
202+
switch (_knob.data.mode_z) {
203+
case NOTE_ON:
204+
_touch_group.msg.note.midi.status = (_touch_group.msg.note.midi.status | NOTE_ON);
205+
_touch_group.msg.note.midi.data2 = 127;
206+
send_midi_msg(_touch_group.msg.note.midi);
207+
break;
208+
case C_CHANGE:
209+
_touch_group.msg.press.midi.data2 = get_random_int(64, 127);
210+
send_midi_msg(_touch_group.msg.press.midi);
211+
break;
212+
case AFTERTOUCH_POLY:
213+
_touch_group.msg.note.midi.status = (_touch_group.msg.note.midi.status | NOTE_ON);
214+
_touch_group.msg.note.midi.data2 = 127;
215+
send_midi_msg(_touch_group.msg.note.midi);
216+
_touch_group.msg.press.midi.data2 = get_random_int(64, 127);
217+
send_midi_msg(_touch_group.msg.press.midi);
218+
break;
219+
}
220+
break;
176221
case PLAY_MODE:
177-
// Set midi_msg status to NOTE_ON
178-
_touch_group.msg.press.midi.status = _touch_group.msg.press.midi.status | NOTE_ON;
179-
_touch_group.msg.press.midi.data2 = 127;
180-
send_midi_msg(_touch_group.msg.press.midi);
222+
// N/A
181223
break;
182224
}
183225
}
184226

185227
_knob_touch.onMouseUp = function () {
186-
// Set midi_msg status to NOTE_OFF
187-
_touch_group.msg.press.midi.status = _touch_group.msg.press.midi.status & NOTE_OFF;
188-
_touch_group.msg.press.midi.data2 = 0;
189-
send_midi_msg(_touch_group.msg.press.midi);
228+
switch (e256_current_mode) {
229+
case EDIT_MODE:
230+
break;
231+
case THROUGH_MODE:
232+
switch (_knob.data.mode_z) {
233+
case NOTE_ON:
234+
_touch_group.msg.note.midi.status = (_touch_group.msg.note.midi.status & NOTE_OFF);
235+
_touch_group.msg.note.midi.data2 = 0;
236+
send_midi_msg(_touch_group.msg.note.midi);
237+
break;
238+
case C_CHANGE:
239+
_touch_group.msg.press.midi.data2 = 0;
240+
send_midi_msg(_touch_group.msg.press.midi);
241+
break;
242+
case AFTERTOUCH_POLY:
243+
_touch_group.msg.note.midi.status = (_touch_group.msg.note.midi.status & NOTE_OFF);
244+
_touch_group.msg.note.midi.data2 = 0;
245+
send_midi_msg(_touch_group.msg.note.midi);
246+
_touch_group.msg.press.midi.data2 = 0;
247+
send_midi_msg(_touch_group.msg.press.midi);
248+
break;
249+
}
250+
break;
251+
case PLAY_MODE:
252+
// N/A
253+
break;
254+
}
190255
}
191256

192257
_knob_touch.onMouseDrag = function (mouseEvent) {
193258
switch (e256_current_mode) {
194259
case EDIT_MODE:
195260
// N/A
196261
break;
197-
case PLAY_MODE:
262+
case THROUGH_MODE:
198263
let x = mouseEvent.point.x - _knob.center.x; // Place the x origin to the circle center
199264
let y = mouseEvent.point.y - _knob.center.y; // Place the y origin to the circle center
200265
let polar = cart_to_pol(x, y);
@@ -223,13 +288,16 @@ function knob_factory() {
223288
send_midi_msg(_touch_group.msg.theta.midi);
224289
}
225290
break;
291+
case PLAY_MODE:
292+
break;
226293
}
227294
}
228295

229296
let _touch_txt = new paper.PointText({
230297
"name": "touch-txt",
231298
"point": new paper.Point(_touch_group.center.x + _knob_touch_pos.x, _touch_group.center.y + _knob_touch_pos.y),
232-
"content": _touch_group.msg.press.midi.data1,
299+
//"content": JSON.stringify(_touch_group.msg), // MAKE TI DESIGN ;-)
300+
"content": null,
233301
"locked": true
234302
});
235303

0 commit comments

Comments
 (0)