Browse Source

added midi abstractions (under construction)

m---w 12 years ago
parent
commit
1da26a1111
11 changed files with 974 additions and 0 deletions
  1. 36 0
      midi-help.pd
  2. 233 0
      midi_bi.pd
  3. 38 0
      midi_bi_gui.pd
  4. 129 0
      midi_gen.pd
  5. 152 0
      midi_gen_gui.pd
  6. 87 0
      midi_in.pd
  7. 50 0
      midi_in_gui.pd
  8. 57 0
      midi_out.pd
  9. 18 0
      midi_out_gui.pd
  10. 100 0
      midi_r.pd
  11. 74 0
      midi_s.pd

+ 36 - 0
midi-help.pd

@@ -0,0 +1,36 @@
+#N canvas 105 22 1160 745 10;
+#X obj 69 67 midi_in main;
+#X obj 481 90 midi_out main;
+#X obj 601 69 midi_out_gui main;
+#X obj 211 113 midi_in_gui main;
+#X obj 50 299 midi_r main /i/receive/midi ctl 11 0 1 0 50;
+#X obj 50 259 midi_s main /i/send/midi ctl 11 0 127 0;
+#X obj 600 183 midi_gen_gui main;
+#X obj 483 259 midi_gen main;
+#X obj 50 359 midi_bi main /i/send/and/receive/midi ctl 11 0 1 0 50
+;
+#X obj 315 414 midi_bi_gui main /i/send/and/receive/midi;
+#X text 630 444 [midi_manager];
+#X text 630 464 [midi_gui];
+#X text 630 484 [midi_learn];
+#X text 659 420 ???;
+#X text 788 439 eine gui abstraction für alle.;
+#X text 517 363 scaling für pitchbend \, etc???;
+#X text 650 582 midi learn:;
+#X text 730 582 - register erstellen;
+#X text 730 602 - learn button drücken;
+#X text 730 622 - osc und midi variable bewegen;
+#X text 730 642 - learn button abwählen;
+#X text 730 662 - offset + scaling einstellen;
+#X text 730 692 - speichern;
+#X text 188 601 nur noch eine [midi_reg] abstraction!!!;
+#X text 188 621 mit [midi_reg_gui];
+#X text 165 575 midi_bi:;
+#X text 232 661 midi_reg_gui main;
+#X text 278 685 - parameter list (wie bei storage);
+#X text 278 705 zum auswählen des parameters.;
+#X text 278 725 - alternativ numberbox.;
+#X text 985 541 parameter list ohne dynamic patching!!!;
+#X text 985 561 so wie playlist. nur in textfile gespeichert.;
+#X text 661 730 osc2midi abstraction:;
+#X text 671 750 bidirektional (einzeln schaltbar).;

+ 233 - 0
midi_bi.pd

@@ -0,0 +1,233 @@
+#N canvas 109 22 1140 756 10;
+#X text 138 884 (c)2011 \, Marian Weger;
+#X obj 327 166 spigot 1;
+#X obj 327 266 route ctl;
+#X msg 327 288 \$3 \$2 \$1;
+#X obj 327 119 r /\$1/midi/in;
+#X obj 327 335 route 0;
+#X obj 366 312 r /\$1\$2/midi/channel;
+#N canvas 668 110 585 428 init 0;
+#X obj 66 37 loadbang;
+#X obj 213 35 loadbang;
+#X obj 213 129 s /\$1\$2/midi/scaling;
+#X msg 213 101 1;
+#X obj 60 173 loadbang;
+#X obj 218 175 loadbang;
+#X obj 60 217 s /\$1\$2/midi/value2;
+#X obj 218 219 s /\$1\$2/midi/channel;
+#X obj 213 57 f \$6;
+#X obj 60 195 f \$4;
+#X obj 218 197 f \$5;
+#X obj 58 265 loadbang;
+#X obj 58 287 f \$7;
+#X obj 58 309 s /\$1\$2/midi/offset;
+#X obj 218 265 loadbang;
+#X obj 218 287 f \$8;
+#X obj 218 309 s /\$1\$2/midi/line/time;
+#X obj 368 265 loadbang;
+#X obj 368 287 f \$9;
+#X obj 368 355 s /\$1\$2/midi/line/grain;
+#X obj 368 309 sel 0;
+#X msg 368 331 20;
+#X obj 213 79 sel 0;
+#X obj 66 59 symbol \$3;
+#X obj 66 81 sel 0;
+#X obj 66 125 s /\$1\$2/midi/type/name;
+#X msg 66 103 ctl;
+#X connect 0 0 23 0;
+#X connect 1 0 8 0;
+#X connect 3 0 2 0;
+#X connect 4 0 9 0;
+#X connect 5 0 10 0;
+#X connect 8 0 22 0;
+#X connect 9 0 6 0;
+#X connect 10 0 7 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 17 0 18 0;
+#X connect 18 0 20 0;
+#X connect 20 0 21 0;
+#X connect 20 1 19 0;
+#X connect 21 0 19 0;
+#X connect 22 0 3 0;
+#X connect 22 1 2 0;
+#X connect 23 0 24 0;
+#X connect 24 0 26 0;
+#X connect 24 1 25 0;
+#X connect 26 0 25 0;
+#X restore 463 18 pd init;
+#X obj 366 754 line 0 20;
+#X obj 417 719 r /\$1\$2/midi/line/grain;
+#X obj 411 628 r /\$1\$2/midi/line/time;
+#X obj 327 669 kdemux2;
+#X obj 327 384 route 0;
+#X obj 366 362 r /\$1\$2/midi/value2;
+#X obj 342 430 r /\$1\$2/midi/scaling;
+#X obj 342 504 r /\$1\$2/midi/offset;
+#X obj 327 527 + 0;
+#X text 441 738 (only Pd version >= 0.43);
+#X obj 366 696 pack f 0;
+#X text 33 14 midi_bi: <domain> <name> <type> <cc#/note#/prg#/...>
+<ch#> <scalin> <offset> <interpol.time>;
+#X obj 37 162 spigot 1;
+#X obj 37 697 s \$1/midi/out;
+#X obj 37 531 list prepend ctl;
+#X obj 37 80 r \$2;
+#X obj 37 490 + 0.5;
+#X obj 37 510 int;
+#X obj 52 412 r /\$1\$2/midi/scaling;
+#X obj 112 561 r /\$1\$2/midi/value2;
+#X obj 37 583 list append 0;
+#X obj 112 612 r /\$1\$2/midi/channel;
+#X obj 37 635 list append 0;
+#X obj 52 361 r /\$1\$2/midi/offset;
+#X obj 327 815 t b a b;
+#X msg 366 841 0;
+#X obj 346 866 s \$2;
+#X msg 327 841 1;
+#X obj 37 218 spigot 1;
+#X obj 37 384 - 0;
+#X obj 327 455 * 1;
+#X obj 327 406 / 127;
+#X obj 37 436 / 1;
+#X obj 37 458 * 127;
+#X obj 372 142 r /\$1\$2/midi/in/state;
+#X obj 82 134 r /\$1\$2/midi/out/state;
+#X obj 346 571 spigot;
+#X obj 379 549 r /\$1\$2/midi/in/print;
+#X obj 346 593 print \$2 MIDI_IN;
+#X obj 55 291 spigot;
+#X obj 55 313 print \$2 MIDI_OUT;
+#X obj 641 107 inlet out-state;
+#X obj 792 107 inlet in-state;
+#X obj 641 129 s /\$1\$2/midi/out/state;
+#X obj 792 129 s /\$1\$2/midi/in/state;
+#X obj 88 269 r /\$1\$2/midi/out/print;
+#X msg 688 336 ctl;
+#X msg 718 336 note;
+#X msg 756 336 bend;
+#X msg 796 336 pgm;
+#X msg 826 336 touch;
+#X obj 688 251 change;
+#X msg 725 629 0;
+#X msg 763 629 1;
+#X msg 802 629 2;
+#X msg 840 629 3;
+#X msg 879 629 4;
+#X msg 917 629 5;
+#X obj 688 229 r /\$1\$2/midi/type/number;
+#X obj 725 583 r /\$1\$2/midi/type;
+#X obj 725 711 list trim;
+#X obj 725 689 list prepend set;
+#X obj 688 274 sel 0 1 2 3 4 5;
+#X obj 725 607 route ctl note bend pgm touch polytouch;
+#X obj 725 736 s /\$1\$2/midi/type/number/set;
+#X obj 688 458 s /\$1\$2/midi/type;
+#X obj 688 430 list trim;
+#X obj 688 408 list prepend symbol;
+#X msg 867 336 polytouch;
+#X obj 378 214 list prepend symbol;
+#X obj 378 236 list trim;
+#X obj 130 469 list prepend symbol;
+#X obj 130 491 list trim;
+#N canvas 821 254 450 300 register 0;
+#X obj 62 55 ds_reg_settings \$1 \$2/midi/offset;
+#X obj 62 75 ds_reg_settings \$1 \$2/midi/scaling;
+#X obj 62 95 ds_reg_settings \$1 \$2/midi/value2;
+#X obj 62 115 ds_reg_settings \$1 \$2/midi/channel;
+#X obj 62 135 ds_reg_settings \$1 \$2/midi/line/time;
+#X obj 62 155 ds_reg_settings \$1 \$2/midi/line/grain;
+#X restore 463 50 pd register;
+#X obj 130 447 r /\$1\$2/midi/type;
+#X obj 378 192 r /\$1\$2/midi/type;
+#X obj 37 102 route float;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 5 0;
+#X connect 4 0 1 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 1;
+#X connect 8 0 32 0;
+#X connect 9 0 8 2;
+#X connect 10 0 11 1;
+#X connect 10 0 18 1;
+#X connect 11 0 32 0;
+#X connect 11 1 18 0;
+#X connect 12 0 39 0;
+#X connect 13 0 12 1;
+#X connect 14 0 38 1;
+#X connect 15 0 16 1;
+#X connect 16 0 11 0;
+#X connect 16 0 44 0;
+#X connect 18 0 8 0;
+#X connect 20 0 36 0;
+#X connect 22 0 28 0;
+#X connect 23 0 84 0;
+#X connect 24 0 25 0;
+#X connect 25 0 22 0;
+#X connect 26 0 40 1;
+#X connect 27 0 28 1;
+#X connect 28 0 30 0;
+#X connect 29 0 30 1;
+#X connect 30 0 21 0;
+#X connect 31 0 37 1;
+#X connect 32 0 35 0;
+#X connect 32 1 34 0;
+#X connect 32 2 33 0;
+#X connect 33 0 36 1;
+#X connect 35 0 36 1;
+#X connect 36 0 47 0;
+#X connect 36 0 37 0;
+#X connect 37 0 40 0;
+#X connect 38 0 16 0;
+#X connect 39 0 38 0;
+#X connect 40 0 41 0;
+#X connect 41 0 24 0;
+#X connect 42 0 1 1;
+#X connect 43 0 20 1;
+#X connect 44 0 46 0;
+#X connect 45 0 44 1;
+#X connect 47 0 48 0;
+#X connect 49 0 51 0;
+#X connect 50 0 52 0;
+#X connect 53 0 47 1;
+#X connect 54 0 75 0;
+#X connect 55 0 75 0;
+#X connect 56 0 75 0;
+#X connect 57 0 75 0;
+#X connect 58 0 75 0;
+#X connect 59 0 70 0;
+#X connect 60 0 69 0;
+#X connect 61 0 69 0;
+#X connect 62 0 69 0;
+#X connect 63 0 69 0;
+#X connect 64 0 69 0;
+#X connect 65 0 69 0;
+#X connect 66 0 59 0;
+#X connect 67 0 71 0;
+#X connect 68 0 72 0;
+#X connect 69 0 68 0;
+#X connect 70 0 54 0;
+#X connect 70 1 55 0;
+#X connect 70 2 56 0;
+#X connect 70 3 57 0;
+#X connect 70 4 58 0;
+#X connect 70 5 76 0;
+#X connect 71 0 60 0;
+#X connect 71 1 61 0;
+#X connect 71 2 62 0;
+#X connect 71 3 63 0;
+#X connect 71 4 64 0;
+#X connect 71 5 65 0;
+#X connect 74 0 73 0;
+#X connect 75 0 74 0;
+#X connect 76 0 75 0;
+#X connect 77 0 78 0;
+#X connect 78 0 2 1;
+#X connect 79 0 80 0;
+#X connect 80 0 22 1;
+#X connect 82 0 79 0;
+#X connect 83 0 77 0;
+#X connect 84 0 20 0;

+ 38 - 0
midi_bi_gui.pd

@@ -0,0 +1,38 @@
+#N canvas 749 313 498 379 10;
+#X obj 101 115 cnv 15 223 109 empty empty empty 20 12 0 14 -191407
+-66577 0;
+#X obj 245 118 tgl 15 0 /\$1\$2/midi/in/print /\$1\$2/midi/in/print
+print 17 7 0 10 -262144 -1 -1 0 1;
+#X obj 216 118 tgl 15 0 /\$1\$2/midi/in/state /\$1\$2/midi/in/state
+r 17 7 0 10 -4034 -1 -1 1 1;
+#N canvas 830 22 371 260 init 0;
+#X obj 123 75 loadbang;
+#X obj 123 97 list prepend \$1\$2;
+#X msg 123 119 \; /\$1/midi/in/print 0 \; /\$1/midi/out/print 0 \;
+/\$1/midi/in/state 1: /\$1/midi/out/state 1 \;;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 400 84 pd init;
+#X text 196 283 (c)2012 Marian Weger;
+#X text 46 31 midi_bi_gui <domain> <name>;
+#X obj 216 138 tgl 15 0 /\$1\$2/midi/out/state /\$1\$2/midi/out/state
+s 17 7 0 10 -4034 -1 -1 1 1;
+#X obj 245 138 tgl 15 0 /\$1\$2/midi/out/print /\$1\$2/midi/out/print
+print 17 7 0 10 -262144 -1 -1 0 1;
+#X obj 265 174 nbx 5 14 -1e+37 1e+37 0 0 /\$1\$2/midi/channel /\$1\$2/midi/channel
+channel 0 -8 0 10 -262144 -1 -1 0 256;
+#X obj 205 174 nbx 5 14 -1e+37 1e+37 0 0 /\$1\$2/midi/value2 /\$1\$2/midi/value2
+value2 0 -8 0 10 -262144 -1 -1 11 256;
+#X obj 265 205 nbx 5 14 -1e+37 1e+37 0 0 /\$1\$2/midi/offset /\$1\$2/midi/offset
+offset 0 -8 0 10 -262130 -1 -1 0 256;
+#X obj 205 205 nbx 5 14 -1e+37 1e+37 0 0 /\$1\$2/midi/scaling /\$1\$2/midi/scaling
+scaling 0 -8 0 10 -262130 -1 -1 1 256;
+#X obj 105 121 vradio 15 1 0 6 /\$1\$2/midi/type/number /\$1\$2/midi/type/number/set
+empty 0 -8 0 10 -262144 -1 -1 0;
+#X text 123 120 ctl;
+#X text 123 136 note;
+#X text 123 168 pgm;
+#X text 123 152 bend;
+#X text 123 182 touch;
+#X text 123 196 polytouch;
+#X coords 0 -1 1 1 225 125 1 100 100;

+ 129 - 0
midi_gen.pd

@@ -0,0 +1,129 @@
+#N canvas 523 201 509 361 10;
+#N canvas 288 31 780 668 note 0;
+#X obj 222 427 makenote 127 100;
+#X obj 538 323 r /\$1/midi/gen/note/velocity;
+#X obj 432 71 r /\$1/midi/gen/note/duration;
+#X obj 319 519 r /\$1/midi/gen/ch;
+#X obj 262 591 list prepend note;
+#X obj 432 93 sel 0;
+#X obj 262 339 spigot 1;
+#X msg 294 313 0;
+#X msg 432 313 1;
+#X obj 415 339 spigot;
+#X obj 432 125 t b b;
+#X obj 481 125 t f b b;
+#X msg 324 313 1;
+#X msg 462 313 0;
+#X obj 262 645 outlet;
+#X obj 571 396 r /\$1/midi/gen/note/send/vel;
+#X obj 538 345 t b f;
+#X obj 250 45 t b f;
+#X obj 250 20 r /\$1/midi/gen/note/nr;
+#X obj 67 149 r /\$1/midi/gen/note/send/note;
+#X obj 306 50 r /\$1/midi/gen/note/send;
+#X obj 306 72 t b;
+#X obj 262 225 f;
+#X obj 538 419 spigot;
+#X obj 34 175 spigot;
+#X obj 262 544 pack f f 1;
+#X connect 0 0 25 0;
+#X connect 0 1 25 1;
+#X connect 1 0 16 0;
+#X connect 2 0 5 0;
+#X connect 3 0 25 2;
+#X connect 4 0 14 0;
+#X connect 5 0 10 0;
+#X connect 5 1 11 0;
+#X connect 6 0 0 0;
+#X connect 7 0 6 1;
+#X connect 8 0 9 1;
+#X connect 9 0 25 0;
+#X connect 10 0 8 0;
+#X connect 10 1 7 0;
+#X connect 11 0 0 2;
+#X connect 11 1 12 0;
+#X connect 11 2 13 0;
+#X connect 12 0 6 1;
+#X connect 13 0 9 1;
+#X connect 15 0 23 1;
+#X connect 16 0 23 0;
+#X connect 16 1 0 1;
+#X connect 16 1 25 1;
+#X connect 17 0 24 0;
+#X connect 17 1 22 1;
+#X connect 18 0 17 0;
+#X connect 19 0 24 1;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 22 0 6 0;
+#X connect 22 0 9 0;
+#X connect 23 0 22 0;
+#X connect 24 0 22 0;
+#X connect 25 0 4 0;
+#X restore 84 69 pd note;
+#N canvas 673 250 450 300 bend 0;
+#X obj 109 77 r /\$1/midi/gen/bend;
+#X obj 109 124 pack f 1;
+#X obj 154 98 r /\$1/midi/gen/ch;
+#X obj 109 146 list prepend bend;
+#X obj 109 190 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 2 0 1 1;
+#X connect 3 0 4 0;
+#X restore 205 69 pd bend;
+#X obj 228 133 r /\$1/midi/gen/dest;
+#X obj 168 255 s /\$1/midi/out;
+#X obj 147 179 list trim;
+#X text 251 289 (c)2011 \, Marian Weger;
+#N canvas 448 97 636 400 ctl 0;
+#X obj -1228 305 outlet;
+#X obj -1482 118 r /\$1/midi/gen/ctl/send;
+#X obj -1100 79 r /\$1/midi/gen/ctl/value;
+#X obj -1295 117 r /\$1/midi/gen/ctl/send/ctl;
+#X obj -1482 140 t b;
+#X obj -1328 80 t b f;
+#X obj -1228 224 f;
+#X obj -1328 146 spigot;
+#X obj -1171 228 r /\$1/midi/gen/ctl/ch;
+#X obj -1228 256 pack f f 1;
+#X obj -1328 55 r /\$1/midi/gen/ctl/nr;
+#X obj -1100 101 t b f;
+#X obj -1100 151 spigot;
+#X obj -1067 128 r /\$1/midi/gen/ctl/send/val;
+#X obj -1228 278 list prepend ctl;
+#X connect 1 0 4 0;
+#X connect 2 0 11 0;
+#X connect 3 0 7 1;
+#X connect 4 0 6 0;
+#X connect 5 0 7 0;
+#X connect 5 1 9 1;
+#X connect 6 0 9 0;
+#X connect 7 0 6 0;
+#X connect 8 0 9 2;
+#X connect 9 0 14 0;
+#X connect 10 0 5 0;
+#X connect 11 0 12 0;
+#X connect 11 1 6 1;
+#X connect 12 0 6 0;
+#X connect 13 0 12 1;
+#X connect 14 0 0 0;
+#X restore 147 69 pd ctl;
+#X text 67 24 midi_gen <domain>;
+#X obj 147 156 list prepend 0;
+#X obj 147 202 route 0 1 2;
+#X obj 189 232 s /\$1/midi/gen;
+#X obj 147 277 s /\$1/midi/in;
+#X obj 75 322 outlet;
+#X connect 0 0 8 0;
+#X connect 0 0 12 0;
+#X connect 1 0 8 0;
+#X connect 1 0 12 0;
+#X connect 2 0 8 1;
+#X connect 4 0 9 0;
+#X connect 6 0 8 0;
+#X connect 6 0 12 0;
+#X connect 8 0 4 0;
+#X connect 9 0 11 0;
+#X connect 9 1 3 0;
+#X connect 9 2 10 0;

+ 152 - 0
midi_gen_gui.pd

@@ -0,0 +1,152 @@
+#N canvas 373 22 882 691 10;
+#X obj 375 115 cnv 20 79 134 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X obj 101 115 cnv 15 161 134 empty empty empty 3 8 0 14 -191407 -66577
+0;
+#X obj 265 115 cnv 20 107 134 empty empty empty 3 8 0 14 -191407 -66577
+0;
+#X obj 123 231 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -262144;
+#X obj 140 231 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 157 231 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 174 231 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 191 231 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 208 231 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 225 231 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 132 214 bng 15 250 50 0 empty empty empty 17 7 0 10 -1 -262144
+-1;
+#X obj 149 214 bng 15 250 50 0 empty empty empty 17 7 0 10 -1 -262144
+-1;
+#X obj 183 214 bng 15 250 50 0 empty empty empty 17 7 0 10 -1 -262144
+-1;
+#X obj 200 214 bng 15 250 50 0 empty empty empty 17 7 0 10 -1 -262144
+-1;
+#X obj 217 214 bng 15 250 50 0 empty empty empty 17 7 0 10 -1 -262144
+-1;
+#X obj 104 223 bng 15 250 50 0 /\$1/midi/gen/note/octave/prev /\$1/midi/gen/note/octave/prev
+< 4 7 0 10 -260097 -1 -1;
+#X obj 244 223 bng 15 250 50 0 /\$1/midi/gen/note/octave/next /\$1/midi/gen/note/octave/next
+> 5 7 0 10 -260097 -1 -1;
+#X msg 35 292 0;
+#X msg 65 292 1;
+#X msg 95 292 2;
+#X msg 120 299 3;
+#X msg 150 299 4;
+#X msg 180 299 5;
+#X msg 210 299 6;
+#X msg 240 299 7;
+#X msg 270 299 8;
+#X msg 305 292 9;
+#X msg 335 292 10;
+#X msg 365 292 11;
+#X obj 223 196 nbx 3 14 -1e+37 1e+37 0 0 /\$1/midi/gen/note/octave
+/\$1/midi/gen/note/octave octave 0 -8 0 10 -260097 -1 -1 3 256;
+#X obj 184 138 nbx 4 14 0 9999 0 0 /\$1/midi/gen/note/duration /\$1/midi/gen/note/duration
+duration 0 -8 0 10 -262144 -1 -1 0 256;
+#X obj 144 138 nbx 3 14 0 127 0 0 /\$1/midi/gen/note/velocity /\$1/midi/gen/note/velocity
+vel 0 -8 0 10 -262144 -1 -1 0 256;
+#X obj 104 138 nbx 3 14 0 127 0 0 /\$1/midi/gen/note/nr /\$1/midi/gen/note/nr
+note 0 -8 0 10 -262144 -1 -1 17 256;
+#X obj 446 472 r /\$1/midi/gen/note/octave;
+#X obj 104 156 bng 15 250 50 0 /\$1/midi/gen/note/nr/prev /\$1/midi/gen/note/nr/prev
+< 4 7 0 10 -262144 -1 -1;
+#X obj 123 156 bng 15 250 50 0 /\$1/midi/gen/note/nr/next /\$1/midi/gen/note/nr/next
+> 5 7 0 10 -262144 -1 -1;
+#X obj 327 152 nbx 3 14 0 127 0 0 /\$1/midi/gen/ctl/value /\$1/midi/gen/ctl/value
+value 0 -8 0 10 -262144 -1 -1 0 256;
+#X obj 287 152 nbx 3 14 0 127 0 0 /\$1/midi/gen/ctl/nr /\$1/midi/gen/ctl/nr
+ctl 0 -8 0 10 -262144 -1 -1 0 256;
+#X obj 287 189 bng 15 250 50 0 /\$1/midi/gen/ctl/send /\$1/midi/gen/ctl/send
+send 17 7 0 10 -258113 -1 -1;
+#X obj 287 170 bng 15 250 50 0 /\$1/midi/gen/ctl/nr/prev /\$1/midi/gen/ctl/nr/prev
+< 4 7 0 10 -262144 -1 -1;
+#X obj 306 170 bng 15 250 50 0 /\$1/midi/gen/ctl/nr/next /\$1/midi/gen/ctl/nr/next
+> 5 7 0 10 -262144 -1 -1;
+#X obj 268 139 vsl 15 100 0 127 0 0 /\$1/midi/gen/ctl/value /\$1/midi/gen/ctl/value
+empty 0 -9 0 10 -1 -262144 -1 0 1;
+#X obj 327 170 bng 15 250 50 0 /\$1/midi/gen/ctl/value/prev /\$1/midi/gen/ctl/value/prev
+< 4 7 0 10 -262144 -1 -1;
+#X obj 346 170 bng 15 250 50 0 /\$1/midi/gen/ctl/value/next /\$1/midi/gen/ctl/value/next
+> 5 7 0 10 -262144 -1 -1;
+#X obj 144 156 bng 15 250 50 0 /\$1/midi/gen/note/velocity/prev /\$1/midi/gen/note/velocity/prev
+< 4 7 0 10 -262144 -1 -1;
+#X obj 163 156 bng 15 250 50 0 /\$1/midi/gen/note/velocity/next /\$1/midi/gen/note/velocity/next
+> 5 7 0 10 -262144 -1 -1;
+#X obj 195 358 s /\$1/midi/gen/note/kbd;
+#X obj 431 448 r /\$1/midi/gen/note/kbd;
+#X obj 378 139 vsl 15 100 0 16383 0 0 /\$1/midi/gen/bend /\$1/midi/gen/bend
+empty 0 -9 0 10 -1 -262144 -1 0 1;
+#X obj 397 209 nbx 5 14 0 16383 0 0 /\$1/midi/gen/bend /\$1/midi/gen/bend
+bend 0 -8 0 10 -262144 -1 -1 0 256;
+#X obj 397 227 bng 15 250 50 0 /\$1/midi/gen/bend/prev /\$1/midi/gen/bend/prev
+< 4 7 0 10 -262144 -1 -1;
+#X obj 416 227 bng 15 250 50 0 /\$1/midi/gen/bend/next /\$1/midi/gen/bend/next
+> 5 7 0 10 -262144 -1 -1;
+#X obj 287 208 tgl 15 0 /\$1/midi/gen/ctl/send/ctl /\$1/midi/gen/ctl/send/ctl
+send_on_ctl 17 7 0 10 -262144 -1 -1 0 1;
+#X obj 287 227 tgl 15 0 /\$1/midi/gen/ctl/send/val /\$1/midi/gen/ctl/send/val
+send_on_val 17 7 0 10 -262144 -1 -1 0 1;
+#X obj 104 175 tgl 15 0 /\$1/midi/gen/note/send/note /\$1/midi/gen/note/send/note
+send_on_note 17 7 0 10 -262144 -1 -1 0 1;
+#X obj 104 195 tgl 15 0 /\$1/midi/gen/note/send/vel /\$1/midi/gen/note/send/vel
+send_on_vel 17 7 0 10 -262144 -1 -1 0 1;
+#X obj 184 156 bng 15 250 50 0 /\$1/midi/gen/note/send /\$1/midi/gen/note/send
+send 17 7 0 10 -258113 -1 -1;
+#X obj 457 115 cnv 20 42 134 empty empty empty 20 12 0 14 -228856 -66577
+0;
+#X obj 460 138 nbx 3 14 1 128 0 0 /\$1/midi/gen/ch /\$1/midi/gen/ch
+ch 0 -8 0 10 -257985 -1 -1 1 256;
+#X obj 460 197 vradio 15 1 0 3 /\$1/midi/gen/dest /\$1/midi/gen/dest
+dest 0 -8 0 10 -4034 -1 -1 0;
+#X text 476 197 in;
+#X text 476 212 out;
+#X obj 460 156 bng 15 250 50 0 /\$1/midi/gen/ch/prev /\$1/midi/gen/ch/prev
+< 4 7 0 10 -257985 -1 -1;
+#X obj 479 156 bng 15 250 50 0 /\$1/midi/gen/ch/next /\$1/midi/gen/ch/next
+> 5 7 0 10 -257985 -1 -1;
+#X text 321 628 (c)2011 \, Marian Weger;
+#X text 112 51 midi_gen_gui <domain>;
+#X obj 431 521 s /\$1/midi/gen/note/nr;
+#X text 476 226 gen;
+#X obj 431 309 prev-next /\$1/midi/gen/note/nr 0 127 1;
+#X obj 431 349 prev-next /\$1/midi/gen/note/octave 0 127 12;
+#X obj 431 289 prev-next /\$1/midi/gen/ch 1 16 1;
+#X obj 431 329 prev-next /\$1/midi/gen/note/velocity 0 127 1;
+#X obj 431 369 prev-next /\$1/midi/gen/ctl/value 0 127 1;
+#X obj 431 389 prev-next /\$1/midi/gen/ctl/nr 0 127 1;
+#X obj 431 409 prev-next /\$1/midi/gen/bend 0 16383 1;
+#X obj 431 497 + 0;
+#X connect 3 0 17 0;
+#X connect 4 0 19 0;
+#X connect 5 0 21 0;
+#X connect 6 0 22 0;
+#X connect 7 0 24 0;
+#X connect 8 0 26 0;
+#X connect 9 0 28 0;
+#X connect 10 0 18 0;
+#X connect 11 0 20 0;
+#X connect 12 0 23 0;
+#X connect 13 0 25 0;
+#X connect 14 0 27 0;
+#X connect 17 0 46 0;
+#X connect 18 0 46 0;
+#X connect 19 0 46 0;
+#X connect 20 0 46 0;
+#X connect 21 0 46 0;
+#X connect 22 0 46 0;
+#X connect 23 0 46 0;
+#X connect 24 0 46 0;
+#X connect 25 0 46 0;
+#X connect 26 0 46 0;
+#X connect 27 0 46 0;
+#X connect 28 0 46 0;
+#X connect 33 0 75 1;
+#X connect 47 0 75 0;
+#X connect 75 0 66 0;
+#X coords 0 -1 1 1 400 150 1 100 100;

+ 87 - 0
midi_in.pd

@@ -0,0 +1,87 @@
+#N canvas 73 56 1134 540 10;
+#X obj 39 47 ctlin;
+#X obj 39 69 pack f f f;
+#X obj 39 91 list prepend ctl;
+#X obj 149 69 pack f f f;
+#X obj 149 47 notein;
+#X obj 149 91 list prepend note;
+#X obj 269 47 bendin;
+#X obj 269 69 pack f f;
+#X obj 269 91 list prepend bend;
+#X obj 389 69 pack f f;
+#X obj 389 47 pgmin;
+#X obj 389 91 list prepend pgm;
+#X obj 509 69 pack f f;
+#X obj 509 47 touchin;
+#X obj 509 91 list prepend touch;
+#X obj 639 47 polytouchin;
+#X obj 639 69 pack f f f;
+#X obj 639 91 list prepend polytouch;
+#X obj 789 47 sysexin;
+#X obj 789 69 pack f f;
+#X obj 789 91 list prepend sysex;
+#X obj 247 410 spigot;
+#X obj 247 432 print MIDI_IN;
+#X obj 558 393 spigot;
+#X text 312 15 midi_in <domain>;
+#X text 786 458 (c)2011 \, Marian Weger;
+#X obj 909 69 pack f f;
+#X obj 909 47 midiin;
+#X obj 909 147 list prepend raw;
+#X obj 909 121 spigot;
+#X obj 419 281 spigot 1;
+#X obj 419 306 list trim;
+#X obj 280 387 r /\$1/midi/in/print;
+#X obj 591 370 r /\$1/midi/in/showinfo;
+#X obj 558 415 s /\$1/midi/in/info;
+#X obj 494 281 r /\$1/midi/in/active;
+#X obj 419 502 s /\$1/midi/in;
+#X obj 942 96 r /\$1/midi/in/raw;
+#X obj 525 504 outlet;
+#X connect 0 0 1 0;
+#X connect 0 1 1 1;
+#X connect 0 2 1 2;
+#X connect 1 0 2 0;
+#X connect 2 0 30 0;
+#X connect 3 0 5 0;
+#X connect 4 0 3 0;
+#X connect 4 1 3 1;
+#X connect 4 2 3 2;
+#X connect 5 0 30 0;
+#X connect 6 0 7 0;
+#X connect 6 1 7 1;
+#X connect 7 0 8 0;
+#X connect 8 0 30 0;
+#X connect 9 0 11 0;
+#X connect 10 0 9 0;
+#X connect 10 1 9 1;
+#X connect 11 0 30 0;
+#X connect 12 0 14 0;
+#X connect 13 0 12 0;
+#X connect 13 1 12 1;
+#X connect 14 0 30 0;
+#X connect 15 0 16 0;
+#X connect 15 1 16 1;
+#X connect 15 2 16 2;
+#X connect 16 0 17 0;
+#X connect 17 0 30 0;
+#X connect 18 0 19 0;
+#X connect 18 1 19 1;
+#X connect 19 0 20 0;
+#X connect 20 0 30 0;
+#X connect 21 0 22 0;
+#X connect 23 0 34 0;
+#X connect 26 0 29 0;
+#X connect 27 0 26 0;
+#X connect 27 1 26 1;
+#X connect 28 0 30 0;
+#X connect 29 0 28 0;
+#X connect 30 0 31 0;
+#X connect 31 0 23 0;
+#X connect 31 0 21 0;
+#X connect 31 0 36 0;
+#X connect 31 0 38 0;
+#X connect 32 0 21 1;
+#X connect 33 0 23 1;
+#X connect 35 0 30 1;
+#X connect 37 0 29 1;

+ 50 - 0
midi_in_gui.pd

@@ -0,0 +1,50 @@
+#N canvas 215 198 657 487 10;
+#X obj 101 115 cnv 15 198 84 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X text 312 340 (c)2011 \, Marian Weger;
+#X obj 104 118 tgl 15 0 \$1/midi/in/print \$1/midi/in/print print 17
+7 0 10 -262144 -1 -1 0 1;
+#X text 173 25 midi_in_gui: <domain>;
+#X obj 172 118 tgl 15 0 /\$1/midi/in/showinfo /\$1/midi/in/showinfo
+info 17 7 0 10 -262144 -1 -1 0 1;
+#X obj 242 118 tgl 15 0 /\$1/midi/in/active /\$1/midi/in/active active
+17 7 0 10 -4034 -1 -1 1 1;
+#X obj 122 182 nbx 5 14 -1e+37 1e+37 0 0 empty empty value_1 0 -8 0
+10 -191407 -1 -1 0 256;
+#X obj 182 182 nbx 5 14 -1e+37 1e+37 0 0 empty empty value_2 0 -8 0
+10 -191407 -1 -1 0 256;
+#X obj 242 182 nbx 5 14 -1e+37 1e+37 0 0 empty empty channel 0 -8 0
+10 -191407 -1 -1 0 256;
+#X obj 104 146 cnv 14 55 13 empty empty empty 20 12 0 14 -262144 -66577
+0;
+#X symbolatom 104 146 9 0 0 0 - - -;
+#X obj 393 196 unpack s f f f;
+#X obj 373 37 loadbang;
+#X msg 373 59 symbol;
+#X msg 420 167 0;
+#X obj 393 146 t a b;
+#X obj 104 181 bng 15 250 50 0 empty empty empty 17 7 0 10 -191407
+-1 -1;
+#X obj 242 145 tgl 15 0 /\$1/midi/in/raw /\$1/midi/in/raw raw 17 7
+0 10 -262144 -1 -1 0 1;
+#N canvas 755 69 371 260 init 0;
+#X obj 123 75 loadbang;
+#X obj 123 97 list prepend \$1;
+#X msg 123 119 \; /\$1/midi/in/active 1 \; /\$1/midi/in/showinfo 0
+\; /\$1/midi/in/print 0 \;;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 229 265 pd init;
+#X obj 393 124 r /\$1/midi/in/info;
+#X connect 11 0 10 0;
+#X connect 11 1 6 0;
+#X connect 11 2 7 0;
+#X connect 11 3 8 0;
+#X connect 12 0 13 0;
+#X connect 13 0 10 0;
+#X connect 14 0 8 0;
+#X connect 15 0 11 0;
+#X connect 15 1 14 0;
+#X connect 15 1 16 0;
+#X connect 19 0 15 0;
+#X coords 0 -1 1 1 200 100 1 100 100;

+ 57 - 0
midi_out.pd

@@ -0,0 +1,57 @@
+#N canvas 57 61 657 664 10;
+#X obj 137 109 spigot 1;
+#X obj 137 551 ctlout;
+#X obj 137 521 unpack f f f;
+#X obj 173 466 unpack f f f;
+#X obj 173 496 noteout;
+#X obj 209 408 unpack f f;
+#X obj 209 438 bendout;
+#X obj 246 354 unpack f f;
+#X obj 246 384 pgmout;
+#X obj 282 294 unpack f f;
+#X obj 355 184 unpack f f;
+#X obj 319 234 unpack f f f;
+#X obj 319 264 polytouchout;
+#X obj 137 139 route ctl note bend pgm touch polytouch raw;
+#X obj 282 324 touchout;
+#X obj 355 206 midiout;
+#X text 363 527 (c)2011 \, Marian Weger;
+#X text 322 24 midi_out <domain>;
+#X obj 391 80 spigot 1;
+#X obj 391 102 print MIDI_OUT;
+#X obj 137 37 r /\$1/midi/out;
+#X obj 182 84 r /\$1/midi/out/active;
+#X obj 436 55 r /\$1/midi/out/print;
+#X obj 254 37 inlet;
+#X connect 0 0 13 0;
+#X connect 2 0 1 0;
+#X connect 2 1 1 1;
+#X connect 2 2 1 2;
+#X connect 3 0 4 0;
+#X connect 3 1 4 1;
+#X connect 3 2 4 2;
+#X connect 5 0 6 0;
+#X connect 5 1 6 1;
+#X connect 7 0 8 0;
+#X connect 7 1 8 1;
+#X connect 9 0 14 0;
+#X connect 9 1 14 1;
+#X connect 10 0 15 0;
+#X connect 10 1 15 1;
+#X connect 11 0 12 0;
+#X connect 11 1 12 1;
+#X connect 11 2 12 2;
+#X connect 13 0 2 0;
+#X connect 13 1 3 0;
+#X connect 13 2 5 0;
+#X connect 13 3 7 0;
+#X connect 13 4 9 0;
+#X connect 13 5 11 0;
+#X connect 13 6 10 0;
+#X connect 18 0 19 0;
+#X connect 20 0 0 0;
+#X connect 20 0 18 0;
+#X connect 21 0 0 1;
+#X connect 22 0 18 1;
+#X connect 23 0 0 0;
+#X connect 23 0 18 0;

+ 18 - 0
midi_out_gui.pd

@@ -0,0 +1,18 @@
+#N canvas 270 207 657 487 10;
+#X obj 101 115 cnv 15 198 34 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X text 312 340 (c)2011 \, Marian Weger;
+#X obj 106 125 tgl 15 0 /\$1/midi/out/print /\$1/midi/out/print print
+17 7 0 10 -262144 -1 -1 0 1;
+#X obj 243 125 tgl 15 0 /\$1/midi/out/active /\$1/midi/out/active active
+17 7 0 10 -4034 -1 -1 1 1;
+#X text 173 25 midi_out_gui: <domain>;
+#N canvas 755 69 371 260 init 0;
+#X obj 123 75 loadbang;
+#X obj 123 97 list prepend \$1;
+#X msg 123 119 \; /\$1/midi/out/active 1 \; /\$1/midi/out/print 0 \;
+;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 193 218 pd init;
+#X coords 0 -1 1 1 200 50 1 100 100;

+ 100 - 0
midi_r.pd

@@ -0,0 +1,100 @@
+#N canvas 474 22 572 669 10;
+#X text 283 615 (c)2011 \, Marian Weger;
+#X obj 63 97 spigot 1;
+#X obj 63 152 route ctl;
+#X msg 63 174 \$3 \$2 \$1;
+#X obj 63 300 / 127;
+#X text 33 14 midi_r: <domain> <name> <type> <cc#/note#/prg#/...> <ch#>
+<scalin> <offset> <interpol.time>;
+#X obj 159 55 inlet state;
+#X obj 63 55 r /\$1/midi/in;
+#X obj 63 221 route 0;
+#X obj 102 198 r /\$1\$2/midi/channel;
+#N canvas 106 98 585 428 init 1;
+#X obj 66 37 loadbang;
+#X obj 66 81 sel 0;
+#X obj 66 125 s /\$1\$2/midi/type;
+#X obj 203 35 loadbang;
+#X obj 203 129 s /\$1\$2/midi/scaling;
+#X obj 203 79 sel 0;
+#X msg 203 101 1;
+#X obj 60 173 loadbang;
+#X obj 208 175 loadbang;
+#X obj 60 217 s /\$1\$2/midi/value2;
+#X obj 208 219 s /\$1\$2/midi/channel;
+#X obj 203 57 f \$6;
+#X obj 60 195 f \$4;
+#X obj 208 197 f \$5;
+#X obj 58 265 loadbang;
+#X obj 58 287 f \$7;
+#X obj 58 309 s /\$1\$2/midi/offset;
+#X obj 208 265 loadbang;
+#X obj 208 287 f \$8;
+#X obj 208 309 s /\$1\$2/midi/line/time;
+#X obj 358 265 loadbang;
+#X obj 358 287 f \$9;
+#X obj 358 355 s /\$1\$2/midi/line/grain;
+#X obj 358 309 sel 0;
+#X msg 358 331 20;
+#X obj 66 59 symbol \$3;
+#X msg 66 103 symbol ctl;
+#X connect 0 0 25 0;
+#X connect 1 0 26 0;
+#X connect 1 1 2 0;
+#X connect 3 0 11 0;
+#X connect 5 0 6 0;
+#X connect 5 1 4 0;
+#X connect 6 0 4 0;
+#X connect 7 0 12 0;
+#X connect 8 0 13 0;
+#X connect 11 0 5 0;
+#X connect 12 0 9 0;
+#X connect 13 0 10 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 17 0 18 0;
+#X connect 18 0 19 0;
+#X connect 20 0 21 0;
+#X connect 21 0 23 0;
+#X connect 23 0 24 0;
+#X connect 23 1 22 0;
+#X connect 24 0 22 0;
+#X connect 25 0 1 0;
+#X connect 26 0 2 0;
+#X restore 328 81 pd init;
+#X obj 102 531 line 0 20;
+#X obj 153 496 r /\$1\$2/midi/line/grain;
+#X obj 147 405 r /\$1\$2/midi/line/time;
+#X obj 63 446 kdemux2;
+#X obj 114 128 r /\$1\$2/midi/type;
+#X obj 63 270 route 0;
+#X obj 102 248 r /\$1\$2/midi/value2;
+#X obj 63 349 * 1;
+#X obj 78 325 r /\$1\$2/midi/scaling;
+#X obj 78 371 r /\$1\$2/midi/offset;
+#X obj 63 394 + 0;
+#X text 177 515 (only Pd version >= 0.43);
+#X obj 102 473 pack f 0;
+#X obj 63 562 s \$2;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 18 0;
+#X connect 6 0 1 1;
+#X connect 7 0 1 0;
+#X connect 8 0 16 0;
+#X connect 9 0 8 1;
+#X connect 11 0 24 0;
+#X connect 12 0 11 2;
+#X connect 13 0 14 1;
+#X connect 13 0 23 1;
+#X connect 14 0 24 0;
+#X connect 14 1 23 0;
+#X connect 15 0 2 1;
+#X connect 16 0 4 0;
+#X connect 17 0 16 1;
+#X connect 18 0 21 0;
+#X connect 19 0 18 1;
+#X connect 20 0 21 1;
+#X connect 21 0 14 0;
+#X connect 23 0 11 0;

+ 74 - 0
midi_s.pd

@@ -0,0 +1,74 @@
+#N canvas 733 111 589 477 10;
+#X text 66 457 (c)2011 \, Marian Weger;
+#X obj 63 97 spigot 1;
+#X obj 63 422 s \$1/midi/out;
+#X obj 63 286 list prepend ctl;
+#X obj 63 221 * 127;
+#X obj 108 55 inlet state;
+#X obj 63 55 r \$2;
+#X obj 63 243 + 0.5;
+#X obj 63 265 int;
+#X obj 156 262 r /\$1\$2/midi/type;
+#X obj 63 199 / 1;
+#X obj 78 177 r /\$1\$2/midi/scaling;
+#X obj 138 316 r /\$1\$2/midi/value2;
+#X obj 63 338 list append 0;
+#X obj 138 367 r /\$1\$2/midi/channel;
+#X obj 63 390 list append 0;
+#N canvas 734 90 454 375 init 0;
+#X obj 66 37 loadbang;
+#X obj 66 81 sel 0;
+#X obj 66 125 s /\$1\$2/midi/type;
+#X obj 203 35 loadbang;
+#X obj 203 129 s /\$1\$2/midi/scaling;
+#X obj 203 79 sel 0;
+#X msg 203 101 1;
+#X obj 60 173 loadbang;
+#X obj 208 175 loadbang;
+#X obj 60 217 s /\$1\$2/midi/value2;
+#X obj 208 219 s /\$1\$2/midi/channel;
+#X obj 203 57 f \$6;
+#X obj 60 195 f \$4;
+#X obj 208 197 f \$5;
+#X obj 58 265 loadbang;
+#X obj 58 287 f \$7;
+#X obj 58 309 s /\$1\$2/midi/offset;
+#X obj 66 59 symbol \$3;
+#X msg 66 103 symbol ctl;
+#X connect 0 0 17 0;
+#X connect 1 0 18 0;
+#X connect 1 1 2 0;
+#X connect 3 0 11 0;
+#X connect 5 0 6 0;
+#X connect 5 1 4 0;
+#X connect 6 0 4 0;
+#X connect 7 0 12 0;
+#X connect 8 0 13 0;
+#X connect 11 0 5 0;
+#X connect 12 0 9 0;
+#X connect 13 0 10 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 17 0 1 0;
+#X connect 18 0 2 0;
+#X restore 328 81 pd init;
+#X text 33 14 midi_s <domain> <name> <type> <cc#/note#/prg#/...> <ch#>
+<scaling> <offset>;
+#X obj 78 126 r /\$1\$2/midi/offset;
+#X obj 63 149 - 0;
+#X connect 1 0 19 0;
+#X connect 3 0 13 0;
+#X connect 4 0 7 0;
+#X connect 5 0 1 1;
+#X connect 6 0 1 0;
+#X connect 7 0 8 0;
+#X connect 8 0 3 0;
+#X connect 9 0 3 1;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 1;
+#X connect 13 0 15 0;
+#X connect 14 0 15 1;
+#X connect 15 0 2 0;
+#X connect 18 0 19 1;
+#X connect 19 0 10 0;