Commit d7bbb8b2 authored by Roman Haefeli's avatar Roman Haefeli
Browse files

[WIP] make protocol id based (instead of step|pitch based)

parent 3c99ff86
......@@ -1966,7 +1966,6 @@ num float nvis;
#X obj 20 364 inlet;
#X obj 199 461 outlet;
#X obj 199 367 inlet;
#X text 659 519 2018 \, Roman Haefeli;
#X obj 476 244 s \$1;
#X obj 461 49 r \$0.redraw;
#N canvas 294 116 748 530 redraw.notes 0;
......@@ -2306,7 +2305,7 @@ num float nvis;
#X connect 2 0 3 0;
#X connect 5 0 2 1;
#X restore 415 108 pd id->step|pitch;
#N canvas 73 91 434 455 id->pointer 0;
#N canvas 73 99 434 455 id->pointer 0;
#X msg 125 330 -1;
#X obj 38 169 pointer \$0.note;
#X obj 38 107 until;
......@@ -2502,55 +2501,6 @@ num float nvis;
#X restore 19 305 pd errors;
#X obj 20 387 t a a a;
#X obj 39 442 s \$0.seq.receive;
#N canvas 0 99 450 300 manaage.id 0;
#X obj 13 22 inlet;
#N canvas 0 99 391 254 prepend.id 0;
#X obj 32 66 array min \$0.active;
#X obj 32 89 sel 0;
#X obj 32 123 f;
#X obj 32 13 inlet;
#X obj 32 190 outlet;
#X obj 94 176 s error;
#X msg 94 152 note create: note buffer full!;
#X obj 59 123 t b b;
#X msg 59 146 -1;
#X obj 32 36 b;
#X connect 0 0 1 0;
#X connect 0 1 2 1;
#X connect 1 0 2 0;
#X connect 1 1 7 0;
#X connect 2 0 4 0;
#X connect 3 0 9 0;
#X connect 6 0 5 0;
#X connect 7 0 8 0;
#X connect 7 1 6 0;
#X connect 8 0 4 0;
#X connect 9 0 0 0;
#X restore 13 150 pd prepend.id;
#X obj 13 173 s \$0.create.id;
#X obj 13 45 route note;
#X obj 13 73 route create delete;
#N canvas 80 99 410 208 step|pitch->id 0;
#X obj 40 63 s \$0.convert.step|pitch->id.get;
#X obj 40 86 r \$0.convert.step|pitch->id;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
#X obj 13 114 list append;
#X obj 13 137 outlet;
#X connect 1 0 4 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 4 0 5 0;
#X restore 68 99 pd step|pitch->id;
#X obj 68 122 s \$0.delete.id;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 3 0 4 0;
#X connect 4 0 1 0;
#X connect 4 1 5 0;
#X connect 5 0 6 0;
#X restore 59 417 pd manaage.id;
#N canvas 0 99 495 291 parse.config.commands 0;
#X obj 10 221 s;
#X obj 10 18 r \$0.global.receive;
......@@ -2608,19 +2558,6 @@ num float nvis;
#X obj 14 455 s \$0.global.send;
#X obj 167 138 change -1;
#X obj 14 42 route change click;
#N canvas 83 99 398 214 id->step|pitch 0;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
#X obj 13 114 list append;
#X obj 13 137 outlet;
#X obj 40 63 s \$0.convert.id->step|pitch.get;
#X obj 40 86 r \$0.convert.id->step|pitch;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 5 0 2 1;
#X restore 167 272 pd id->step|pitch;
#N canvas 83 99 398 214 pointer->id 0;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
......@@ -2650,7 +2587,7 @@ num float nvis;
#X obj 14 85 get \$0.note w dur;
#X connect 0 0 10 0;
#X connect 1 0 5 0;
#X connect 2 0 11 0;
#X connect 2 0 5 1;
#X connect 2 1 3 0;
#X connect 3 0 4 0;
#X connect 4 0 1 0;
......@@ -2658,13 +2595,12 @@ num float nvis;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 9 0 2 0;
#X connect 10 0 14 0;
#X connect 10 1 12 0;
#X connect 11 0 5 1;
#X connect 12 0 9 0;
#X connect 13 0 1 0;
#X connect 14 0 13 0;
#X connect 14 1 1 0;
#X connect 10 0 13 0;
#X connect 10 1 11 0;
#X connect 11 0 9 0;
#X connect 12 0 1 0;
#X connect 13 0 12 0;
#X connect 13 1 1 0;
#X restore 16 67 pd note.change.duration;
#N canvas 104 99 719 620 note.create/delete 0;
#X obj 29 275 del 0;
......@@ -2718,7 +2654,7 @@ certain period.;
#X text 103 358 x y;
#X obj 281 351 f;
#X text 72 467 step pitch;
#N canvas 0 190 318 251 append.vel.dur.gid 0;
#N canvas 0 223 318 251 append.vel.dur.gid 0;
#X obj 12 18 inlet;
#X obj 12 199 outlet;
#X obj 95 55 r \$0.default.vel;
......@@ -2741,9 +2677,9 @@ certain period.;
#X obj 29 565 s \$0.global.send;
#X obj 281 328 b;
#X obj 281 282 t a a;
#X obj 326 508 list trim;
#X obj 326 531 s \$0.global.send;
#X obj 326 485 list prepend note delete;
#X obj 281 426 list trim;
#X obj 281 449 s \$0.global.send;
#X obj 281 403 list prepend note delete;
#N canvas 0 99 405 189 x->step 0;
#X obj 40 63 s \$0.convert.x->step.get;
#X obj 40 85 r \$0.convert.x->step;
......@@ -2785,22 +2721,6 @@ certain period.;
#X connect 2 0 3 0;
#X connect 5 0 2 1;
#X restore 281 203 pd pointer->id;
#N canvas 73 91 398 214 id->step|pitch 0;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
#X obj 13 114 list append;
#X obj 13 137 outlet;
#X obj 40 63 s \$0.convert.id->step|pitch.get;
#X obj 40 86 r \$0.convert.id->step|pitch;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 5 0 2 1;
#X restore 281 382 pd id->step|pitch;
#X obj 281 405 route -1;
#X msg 281 430 note delete: inconsistency in note cache detected;
#X obj 281 455 s error;
#X obj 29 47 spigot 1;
#X obj 107 61 == 0;
#X obj 281 229 list prepend 0;
......@@ -2859,7 +2779,7 @@ certain period.;
#X connect 8 0 3 0;
#X connect 8 1 9 0;
#X connect 9 0 38 0;
#X connect 10 0 43 0;
#X connect 10 0 39 0;
#X connect 11 0 12 0;
#X connect 12 0 15 0;
#X connect 13 0 16 0;
......@@ -2872,7 +2792,7 @@ certain period.;
#X connect 18 0 36 0;
#X connect 19 0 17 0;
#X connect 20 0 6 0;
#X connect 22 0 39 0;
#X connect 22 0 33 0;
#X connect 24 0 26 0;
#X connect 26 0 27 0;
#X connect 27 0 28 0;
......@@ -2886,19 +2806,14 @@ certain period.;
#X connect 36 0 34 0;
#X connect 36 1 35 0;
#X connect 37 0 24 0;
#X connect 38 0 45 0;
#X connect 39 0 40 0;
#X connect 40 0 41 0;
#X connect 40 1 33 0;
#X connect 38 0 41 0;
#X connect 39 0 11 0;
#X connect 40 0 39 1;
#X connect 41 0 42 0;
#X connect 43 0 11 0;
#X connect 44 0 43 1;
#X connect 45 0 46 0;
#X connect 46 0 30 0;
#X connect 46 1 39 0;
#X connect 48 0 44 0;
#X connect 49 0 51 0;
#X connect 51 0 45 1;
#X connect 42 0 30 0;
#X connect 44 0 40 0;
#X connect 45 0 47 0;
#X connect 47 0 41 1;
#X restore 16 42 pd note.create/delete;
#N canvas 0 99 406 517 note.change.velocity 0;
#X obj 14 19 r \$0.note.send;
......@@ -2913,23 +2828,10 @@ certain period.;
#X obj 14 65 get \$0.note vel id;
#X obj 147 170 tabread \$0.velocity;
#X obj 14 384 list prepend note change velocity;
#N canvas 83 99 398 214 id->step|pitch 0;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
#X obj 13 114 list append;
#X obj 13 137 outlet;
#X obj 40 63 s \$0.convert.id->step|pitch.get;
#X obj 40 86 r \$0.convert.id->step|pitch;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 5 0 2 1;
#X restore 120 242 pd id->step|pitch;
#X connect 0 0 1 0;
#X connect 1 0 9 0;
#X connect 2 0 5 0;
#X connect 3 0 12 0;
#X connect 3 0 5 1;
#X connect 3 1 10 0;
#X connect 4 0 2 0;
#X connect 5 0 11 0;
......@@ -2939,7 +2841,6 @@ certain period.;
#X connect 9 1 8 0;
#X connect 10 0 4 0;
#X connect 11 0 6 0;
#X connect 12 0 5 1;
#X restore 16 92 pd note.change.velocity;
#N canvas 0 99 406 517 note.change.gid 0;
#X obj 14 19 r \$0.note.send;
......@@ -2954,23 +2855,10 @@ certain period.;
#X obj 146 170 tabread \$0.gid;
#X obj 14 384 list prepend note change gid;
#X obj 14 65 get \$0.note gid id;
#N canvas 83 99 398 214 id->step|pitch 0;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
#X obj 13 114 list append;
#X obj 13 137 outlet;
#X obj 40 63 s \$0.convert.id->step|pitch.get;
#X obj 40 86 r \$0.convert.id->step|pitch;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 5 0 2 1;
#X restore 119 247 pd id->step|pitch;
#X connect 0 0 1 0;
#X connect 1 0 11 0;
#X connect 2 0 5 0;
#X connect 3 0 12 0;
#X connect 3 0 5 1;
#X connect 3 1 9 0;
#X connect 4 0 2 0;
#X connect 5 0 10 0;
......@@ -2980,7 +2868,6 @@ certain period.;
#X connect 10 0 6 0;
#X connect 11 0 2 0;
#X connect 11 1 8 0;
#X connect 12 0 5 1;
#X restore 16 116 pd note.change.gid;
#N canvas 0 99 570 525 note.edit.modes 0;
#X obj 14 19 r \$0.note.send;
......@@ -3034,7 +2921,7 @@ certain period.;
#X connect 7 0 0 1;
#X connect 8 0 1 1;
#X connect 10 0 9 0;
#X restore 64 179 pd dur;
#X restore 65 179 pd dur;
#N canvas 36 115 407 294 vel 0;
#X obj 14 143 f;
#X obj 14 203 sel;
......@@ -3058,36 +2945,29 @@ certain period.;
#X connect 7 0 1 1;
#X connect 9 0 8 0;
#X connect 10 0 0 1;
#X restore 114 179 pd vel;
#X obj 164 183 tabread \$0.step;
#X obj 215 160 tabread \$0.pitch;
#X obj 14 114 t a a a a a, f 34;
#X obj 164 206 pack f f;
#X restore 116 179 pd vel;
#X obj 14 228 list split 1;
#X obj 14 280 list prepend note change;
#X obj 14 303 list append;
#X obj 14 326 list append;
#X obj 14 349 list trim;
#X obj 14 114 t a a a a, f 26;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 9 0;
#X connect 4 0 11 0;
#X connect 5 0 11 0;
#X connect 6 0 11 0;
#X connect 7 0 10 0;
#X connect 8 0 10 1;
#X connect 9 0 4 0;
#X connect 9 1 5 0;
#X connect 9 2 6 0;
#X connect 9 3 7 0;
#X connect 9 4 8 0;
#X connect 10 0 13 1;
#X connect 11 0 12 0;
#X connect 11 1 14 1;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 1 0;
#X connect 3 0 12 0;
#X connect 4 0 7 0;
#X connect 5 0 7 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 1 10 1;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 1 0;
#X connect 12 0 4 0;
#X connect 12 1 5 0;
#X connect 12 2 6 0;
#X connect 12 3 9 1;
#X restore 16 141 pd note.edit.modes;
#N canvas 436 166 420 655 note.select 0;
#X obj 19 64 r \$0.horizgrid.send;
......@@ -3487,7 +3367,7 @@ by clicking on two coordinates on the grid with Ctrl-key pressed.;
#X connect 35 0 34 10;
#X connect 38 0 37 0;
#X restore 19 18 pd note.create;
#N canvas 166 454 345 548 note.delete 0;
#N canvas 166 487 345 548 note.delete 0;
#X obj 6 8 r \$0.global.receive;
#X obj 6 31 route note;
#X obj 6 54 route delete;
......@@ -3551,29 +3431,14 @@ by clicking on two coordinates on the grid with Ctrl-key pressed.;
#X connect 21 0 9 0;
#X connect 22 0 21 1;
#X restore 19 41 pd note.delete;
#N canvas 0 209 422 584 note.change.duration 0;
#N canvas 0 275 351 474 note.change.duration 0;
#X obj 6 8 r \$0.global.receive;
#X obj 6 31 route note;
#X obj 6 54 route change;
#X obj 6 77 route duration;
#X obj 6 100 t a a, f 49;
#X msg 297 155 \$3;
#X msg 6 123 \$1 \$2;
#X obj 51 392 pack f f;
#X obj 51 433 s \$0.duration;
#N canvas 83 99 410 208 step|pitch->id 0;
#X obj 40 63 s \$0.convert.step|pitch->id.get;
#X obj 40 86 r \$0.convert.step|pitch->id;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
#X obj 13 114 list append;
#X obj 13 137 outlet;
#X connect 1 0 4 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 4 0 5 0;
#X restore 6 168 pd step|pitch->id;
#X obj 6 100 t a a, f 26;
#X obj 6 258 pack f f;
#X obj 6 299 s \$0.duration;
#N canvas 83 99 410 208 id->pointer 0;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
......@@ -3586,7 +3451,7 @@ by clicking on two coordinates on the grid with Ctrl-key pressed.;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 5 0 2 1;
#X restore 165 384 pd id->pointer;
#X restore 105 251 pd id->pointer;
#N canvas 0 99 405 189 duration->w 0;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
......@@ -3599,56 +3464,59 @@ by clicking on two coordinates on the grid with Ctrl-key pressed.;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 5 0 2 1;
#X restore 210 510 pd duration->w;
#X obj 6 194 route -1;
#X obj 6 145 t a a;
#X obj 6 217 b;
#X obj 6 298 s error;
#X obj 6 240 list append;
#X msg 6 271 note change duration: no such note (\$1 \$2);
#X obj 165 407 route -1;
#X obj 210 456 f;
#X obj 210 433 t b p;
#X text 334 159 duration;
#X obj 51 329 t a a;
#X obj 210 543 set \$0.note w dur;
#X obj 210 479 t a a;
#X restore 150 377 pd duration->w;
#X obj 105 274 route -1;
#X obj 150 323 f;
#X obj 150 300 t b p;
#X text 194 141 duration;
#X obj 6 225 t a a, f 17;
#X obj 150 410 set \$0.note w dur;
#X obj 150 346 t a a;
#X msg 159 139 \$2;
#X msg 6 138 \$1;
#N canvas 731 272 337 209 only.active 0;
#X obj 20 71 tabread \$0.active;
#X obj 20 94 sel 1;
#X obj 20 117 f;
#X obj 20 47 t a a;
#X obj 20 18 inlet;
#X obj 20 146 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 5 0;
#X connect 3 0 0 0;
#X connect 3 1 2 1;
#X connect 4 0 3 0;
#X restore 6 179 pd only.active;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 4 1 5 0;
#X connect 5 0 19 1;
#X connect 5 0 7 1;
#X connect 6 0 13 0;
#X connect 7 0 8 0;
#X connect 9 0 12 0;
#X connect 10 0 18 0;
#X connect 11 0 23 0;
#X connect 12 0 14 0;
#X connect 12 1 22 0;
#X connect 13 0 9 0;
#X connect 13 1 16 1;
#X connect 14 0 16 0;
#X connect 16 0 17 0;
#X connect 17 0 15 0;
#X connect 18 1 20 0;
#X connect 19 0 24 0;
#X connect 20 0 19 0;
#X connect 20 1 23 2;
#X connect 22 0 7 0;
#X connect 22 1 10 0;
#X connect 24 0 11 0;
#X connect 24 1 23 1;
#X connect 4 0 17 0;
#X connect 4 1 16 0;
#X connect 5 0 6 0;
#X connect 7 0 9 0;
#X connect 8 0 14 0;
#X connect 9 1 11 0;
#X connect 10 0 15 0;
#X connect 11 0 10 0;
#X connect 11 1 14 2;
#X connect 13 0 5 0;
#X connect 13 1 7 0;
#X connect 15 0 8 0;
#X connect 15 1 14 1;
#X connect 16 0 10 1;
#X connect 16 0 5 1;
#X connect 17 0 18 0;
#X connect 18 0 13 0;
#X restore 19 64 pd note.change.duration;
#N canvas 103 249 385 658 note.change.velocity 0;
#N canvas 103 315 357 536 note.change.velocity 0;
#X obj 6 8 r \$0.global.receive;
#X obj 6 31 route note;
#X obj 6 54 route change;
#X obj 51 410 pack f f;
#X obj 6 250 pack f f;
#X obj 6 77 route velocity;
#X obj 51 450 s \$0.velocity;
#X obj 6 282 s \$0.velocity;
#N canvas 320 203 446 363 clr.* 0;
#X obj 28 62 t a a a;
#X obj 28 112 div 100;
......@@ -3697,11 +3565,11 @@ by clicking on two coordinates on the grid with Ctrl-key pressed.;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 21 0 0 0;
#X restore 271 569 pd clr.*;
#X obj 317 508 / 113;
#X obj 216 608 set \$0.note vel c, f 19;
#X obj 51 321 t a a;
#X obj 271 480 get \$0.note gid;
#X restore 223 444 pd clr.*;
#X obj 269 383 / 113;
#X obj 168 483 set \$0.note vel c, f 19;
#X obj 6 185 t a a, f 20;
#X obj 223 355 get \$0.note gid;
#N canvas 83 99 410 208 id->pointer 0;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
......@@ -3714,7 +3582,7 @@ by clicking on two coordinates on the grid with Ctrl-key pressed.;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 5 0 2 1;
#X restore 171 353 pd id->pointer;
#X restore 123 216 pd id->pointer;
#N canvas 83 99 410 208 gid->gclr 0;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
......@@ -3727,34 +3595,29 @@ by clicking on two coordinates on the grid with Ctrl-key pressed.;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 5 0 2 1;
#X restore 271 537 pd gid->gclr;
#X obj 6 100 t a a, f 38;
#X msg 6 123 \$1 \$2;
#N canvas 83 99 410 208 step|pitch->id 0;
#X obj 40 63 s \$0.convert.step|pitch->id.get;
#X obj 40 86 r \$0.convert.step|pitch->id;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
#X obj 13 114 list append;
#X obj 13 137 outlet;
#X connect 1 0 4 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 4 0 5 0;
#X restore 6 168 pd step|pitch->id;
#X obj 6 194 route -1;
#X obj 6 145 t a a;
#X obj 6 217 b;
#X obj 6 298 s error;
#X obj 6 240 list append;
#X msg 6 271 note change velocity: no such note (\$1 \$2);
#X msg 231 135 \$3;
#X text 258 135 velocity;
#X obj 171 376 route -1;
#X obj 216 478 f;
#X obj 231 400 t a a;
#X obj 216 435 t b p p, f 19;
#X restore 223 412 pd gid->gclr;
#X obj 6 100 t a a, f 21;
#X text 156 124 velocity;
#X obj 123 239 route -1;
#X obj 168 353 f;
#X obj 242 250 t a a;
#X obj 168 310 t b p p, f 19;
#X msg 129 124 \$2;
#X msg 6 125 \$1;
#N canvas 731 272 337 209 only.active 0;
#X obj 20 71 tabread \$0.active;
#X obj 20 94 sel 1;
#X obj 20 117 f;
#X obj 20 47 t a a;
#X obj 20 18 inlet;
#X obj 20 146 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 5 0;
#X connect 3 0 0 0;
#X connect 3 1 2 1;
#X connect 4 0 3 0;
#X restore 6 156 pd only.active;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 4 0;
......@@ -3765,56 +3628,28 @@ by clicking on two coordinates on the grid with Ctrl-key pressed.;
#X connect 9 0 3 0;
#X connect 9 1 11 0;
#X connect 10 0 12 0;
#X connect 11 0 24 0;
#X connect 11 0 15 0;
#X connect 12 0 6 0;
#X connect 13 0 14 0;
#X connect 13 1 22 0;
#X connect 14 0 17 0;
#X connect 15 0 16 0;
#X connect 16 0 18 0;
#X connect 16 1 9 0;
#X connect 17 0 15 0;
#X connect 17 1 20 1;
#X connect 18 0 20 0;
#X connect 13 0 20 0;
#X connect 13 1 19 0;
#X connect 15 1 18 0;
#X connect 16 0 8 0;
#X connect 17 0 16 1;
#X connect 17 1 7 0;
#X connect 18 0 16 0;
#X connect 18 1 10 0;
#X connect 18 2 8 2;
#X connect 19 0 3 1;
#X connect 19 0 17 0;
#X connect 20 0 21 0;
#X connect 21 0 19 0;
#X connect 22 0 3 1;
#X connect 22 0 26 0;
#X connect 24 1 27 0;
#X connect 25 0 8 0;
#X connect 26 0 25 1;
#X connect 26 1 7 0;
#X connect 27 0 25 0;
#X connect 27 1 10 0;
#X connect 27 2 8 2;
#X connect 21 0 9 0;
#X restore 19 87 pd note.change.velocity;
#N canvas 202 202 384 665 note.change.gid 0;
#N canvas 202 235 290 524 note.change.gid 0;
#X obj 6 8 r \$0.global.receive;
#X obj 6 31 route note;
#X obj 6 54 route change;
#X obj 6 77 route gid;
#N canvas 83 99 410 208 step|pitch->id 0;
#X obj 40 63 s \$0.convert.step|pitch->id.get;
#X obj 40 86 r \$0.convert.step|pitch->id;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
#X obj 13 114 list append;
#X obj 13 137 outlet;
#X connect 1 0 4 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 4 0 5 0;
#X restore 6 175 pd step|pitch->id;
#X obj 6 198 route -1;
#X obj 6 100 t a a, f 35;
#X msg 6 128 \$1 \$2;
#X obj 6 224 b;
#X obj 6 305 s error;
#X obj 6 247 list append;
#X msg 6 278 note change gid: no such note (\$1 \$2);
#X obj 6 151 t a a;
#X msg 213 129 \$3;
#X obj 6 100 t a a, f 21;
#N canvas 320 203 446 363 clr.* 0;
#X obj 28 62 t a a a;
#X obj 28 112 div 100;
......@@ -3863,8 +3698,8 @@ by clicking on two coordinates on the grid with Ctrl-key pressed.;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 21 0 0 0;
#X restore 199 577 pd clr.*;
#X obj 227 511 / 113;
#X restore 154 437 pd clr.*;
#X obj 182 371 / 113;
#N canvas 83 99 410 208 id->pointer 0;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
......@@ -3877,7 +3712,7 @@ by clicking on two coordinates on the grid with Ctrl-key pressed.;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 5 0 2 1;
#X restore 127 366 pd id->pointer;
#X restore 82 226 pd id->pointer;
#N canvas 83 99 410 208 gid->gclr 0;
#X obj 13 14 inlet;
#X obj 13 37 t b a;
......@@ -3890,50 +3725,59 @@ by clicking on two coordinates on the grid with Ctrl-key pressed.;
#X connect 1 1 4 0;
#X connect 2 0 3 0;
#X connect 5 0 2 1;
#X restore 199 545 pd gid->gclr;
#X obj 127 389 route -1;
#X obj 172 491 f;
#X obj 172 448 t b p p, f 19;
#X obj 51 363 pack f f;
#X obj 51 325 t a a;
#X obj 51 390 s \$0.gid;
#X obj 227 483 get \$0.note vel;
#X obj 172 621 set \$0.note gid c, f 19;
#X obj 172 514 t a a;
#X restore 154 405 pd gid->gclr;
#X obj 82 249 route -1;
#X obj 127 351 f;
#X obj 127 308 t b p p, f 19;
#X obj 6 223 pack f f;