Browse Source

reworked midi abstractions

m---w 12 years ago
parent
commit
b0df7d9e1b
19 changed files with 853 additions and 921 deletions
  1. 373 37
      midi-help.pd
  2. 6 0
      midi_bi-help.pd
  3. 97 231
      midi_bi.pd
  4. 0 38
      midi_bi_gui.pd
  5. 5 0
      midi_gen-help.pd
  6. 5 0
      midi_gen_gui-help.pd
  7. 55 55
      midi_gen_gui.pd
  8. 5 0
      midi_in-help.pd
  9. 68 35
      midi_in.pd
  10. 5 0
      midi_in_gui-help.pd
  11. 1 1
      midi_in_gui.pd
  12. 5 0
      midi_out-help.pd
  13. 5 0
      midi_out_gui-help.pd
  14. 6 0
      midi_r-help.pd
  15. 56 98
      midi_r.pd
  16. 6 0
      midi_s-help.pd
  17. 57 72
      midi_s.pd
  18. 5 95
      osc2midi-help.pd
  19. 93 259
      osc2midi.pd

+ 373 - 37
midi-help.pd

@@ -1,37 +1,373 @@
-#N canvas 42 22 1160 745 10;
-#X obj 69 67 midi_in main;
-#X obj 481 90 midi_out main;
-#X obj 344 121 midi_out_gui main;
-#X obj 65 92 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 606 59 midi_gen_gui main;
-#X obj 481 198 midi_gen main;
-#X obj 45 336 midi_bi main /i/send/and/receive/midi ctl 11 0 1 0 50
-;
-#X obj 37 366 midi_bi_gui main /i/send/and/receive/midi;
-#X text 387 470 [midi_manager];
-#X text 387 490 [midi_gui];
-#X text 387 510 [midi_learn];
-#X text 416 446 ???;
-#X text 338 425 eine gui abstraction für alle.;
-#X text 579 414 midi learn:;
-#X text 659 414 - register erstellen;
-#X text 659 434 - learn button drücken;
-#X text 659 454 - osc und midi variable bewegen;
-#X text 659 474 - learn button abwählen;
-#X text 659 494 - offset + scaling einstellen;
-#X text 659 524 - speichern;
-#X text 72 534 nur noch eine [midi_reg] abstraction!!!;
-#X text 72 554 mit [midi_reg_gui];
-#X text 49 508 midi_bi:;
-#X text 116 594 midi_reg_gui main;
-#X text 162 618 - parameter list (wie bei storage);
-#X text 162 638 zum auswählen des parameters.;
-#X text 162 658 - alternativ numberbox.;
-#X text 536 609 parameter list ohne dynamic patching!!!;
-#X text 536 629 so wie playlist. nur in textfile gespeichert.;
-#X text 56 687 trigger funktion: kein note-off;
-#X obj 196 51 osc2midi main /i/map/osc/to/midi ctl 11 0 1 0 50;
-#X obj 431 304 cnv 15 175 25 empty empty NOT_WORKING_YET!!! 20 12 0
-14 -258113 -66577 0;
+#N canvas 179 22 847 756 10;
+#X obj 5 78 cnv 15 820 200 empty empty MIDI_Input 20 12 0 14 -204786
+-66577 0;
+#X obj 5 284 cnv 15 820 180 empty empty MIDI_Output 20 12 0 14 -204786
+-66577 0;
+#X text 98 113 (logic);
+#X text 57 148 (Graphical User Interface);
+#X text 103 339 (logic);
+#X text 62 382 (Graphical User Interface);
+#X obj 5 472 cnv 15 820 230 empty empty MIDI_Message_Generator 20 12
+0 14 -204786 -66577 0;
+#X text 98 503 (logic);
+#X text 241 517 (Graphical User Interface);
+#X obj 5 1398 cnv 15 820 90 empty empty 1st:_register_variable_for_OSC
+20 12 0 14 -204800 -66577 0;
+#X obj 15 167 midi_in_gui \$0;
+#X obj 15 113 midi_in \$0;
+#X obj 15 339 midi_out \$0;
+#X obj 15 401 midi_out_gui \$0;
+#X obj 13 504 midi_gen \$0;
+#X obj 13 536 midi_gen_gui \$0;
+#X obj 5 1494 cnv 15 820 280 empty empty 2nd:_map_OSC_to_MIDI 20 12
+0 14 -204800 -66577 0;
+#X text 173 1675 |;
+#X text 173 1695 |;
+#X text 173 1705 |;
+#X text 203 1695 |;
+#X text 203 1705 |;
+#X text 173 1685 |;
+#X text 203 1685 osc-name;
+#X text 304 1605 |;
+#X text 304 1625 |;
+#X text 304 1635 |;
+#X text 327 1625 |;
+#X text 327 1635 |;
+#X text 304 1615 |;
+#X text 304 1645 |;
+#X text 304 1655 |;
+#X text 327 1645 |;
+#X text 327 1655 |;
+#X text 304 1665 |;
+#X text 304 1675 |;
+#X text 327 1665 |;
+#X text 327 1675 |;
+#X text 327 1615 midi cc#/prg#/note#/etc.;
+#X text 342 1645 |;
+#X text 342 1655 |;
+#X text 342 1665 |;
+#X text 342 1675 |;
+#X text 342 1635 midi channel;
+#X text 356 1665 |;
+#X text 356 1675 |;
+#X text 304 1685 |;
+#X text 304 1695 |;
+#X text 327 1685 |;
+#X text 327 1695 |;
+#X text 342 1685 |;
+#X text 342 1695 |;
+#X text 356 1685 |;
+#X text 356 1695 |;
+#X text 367 1685 |;
+#X text 367 1695 |;
+#X text 304 1705 |;
+#X text 327 1705 |;
+#X text 342 1705 |;
+#X text 356 1705 |;
+#X text 367 1705 |;
+#X text 382 1705 |;
+#X obj 5 48 cnv 15 820 25 empty empty General_MIDI_Modules 20 12 0
+14 -4034 -66577 0;
+#X text 173 1665 domain;
+#X text 273 82 [midi_in] provides MIDI input for the given domain (1st
+creation argument). It supports most midi message formats \, like control
+change \, note \, pitchbend \, etc. All the incoming midi messages
+are routed to "/<domain>/midi/in" and to the 1st outlet.;
+#X text 273 153 The graphical user interface provides debugging controls:
+;
+#X text 273 173 If "info" is switched on \, all incoming message information
+will be dsplayed.;
+#X text 273 203 "print" will print all incoming messages to the Pd
+window.;
+#X text 273 223 "raw" turns on raw midi input (deactivating all other
+input);
+#X text 273 380 The graphical user interface provides debugging controls:
+;
+#X text 273 300 [midi_out] provides MIDI output for the given domain
+(1st creation argument). It supports most midi message formats \, like
+control change \, note \, pitchbend \, etc. The first inlet takes midi
+messages and routes them to the right midi output.;
+#X text 273 410 "print" will print all outgoing midi messages.;
+#X text 273 430 "active" turns midi-out functionality on/off.;
+#X text 273 243 "active" turns midi-in functionality on/off.;
+#X obj 5 17 cnv 15 820 25 empty empty The_KOLLABS_MIDI_abstraction_family
+20 12 0 14 -191407 -1 0;
+#X text 646 23 (c)2012 Marian Weger;
+#X obj 5 708 cnv 15 820 25 empty empty Registering_variables_directly_to_MIDI
+20 12 0 14 -257985 -66577 0;
+#X text 173 1715 |;
+#X text 173 1725 |;
+#X text 203 1715 |;
+#X text 203 1725 |;
+#X text 304 1715 |;
+#X text 327 1715 |;
+#X text 342 1715 |;
+#X text 356 1715 |;
+#X text 367 1715 |;
+#X text 304 1725 |;
+#X text 327 1725 |;
+#X text 342 1725 |;
+#X text 356 1725 |;
+#X text 367 1725 |;
+#X text 382 1725 |;
+#X text 382 1715 |;
+#X text 399 1725 |;
+#X text 304 1595 midi-message-type (ctl \, note \, bend \, etc.);
+#X text 356 1655 value scaling (optional. default=1);
+#X text 367 1675 value offset (optional. default=0);
+#X text 382 1695 interpolation time /ms (optional. default=0);
+#X text 399 1715 interpolation grain rate /ms (optional. default=20)
+;
+#X obj 5 738 cnv 15 820 200 empty empty Send_MIDI 20 12 0 14 -262130
+-66577 0;
+#X obj 530 903 hsl 128 15 1 105 0 0 /i/send/midi /i/send/midi /i/send/midi
+-2 -8 0 10 -262144 -1 -1 0 1;
+#X obj 667 904 nbx 5 14 -1e+37 1e+37 0 0 /i/send/midi /i/send/midi
+/i/send/midi 0 -8 0 10 -262144 -1 -1 1 256;
+#X text 60 861 |;
+#X text 60 881 |;
+#X text 60 891 |;
+#X text 90 881 |;
+#X text 90 891 |;
+#X text 60 871 |;
+#X text 158 791 |;
+#X text 158 811 |;
+#X text 158 821 |;
+#X text 179 811 |;
+#X text 179 821 |;
+#X text 158 801 |;
+#X text 158 831 |;
+#X text 158 841 |;
+#X text 179 831 |;
+#X text 179 841 |;
+#X text 158 851 |;
+#X text 158 861 |;
+#X text 179 851 |;
+#X text 179 861 |;
+#X text 179 801 midi cc#/prg#/note#/etc.;
+#X text 194 831 |;
+#X text 194 841 |;
+#X text 194 851 |;
+#X text 194 861 |;
+#X text 208 851 |;
+#X text 208 861 |;
+#X text 158 871 |;
+#X text 158 881 |;
+#X text 179 871 |;
+#X text 179 881 |;
+#X text 194 871 |;
+#X text 194 881 |;
+#X text 208 871 |;
+#X text 208 881 |;
+#X text 229 871 |;
+#X text 229 881 |;
+#X text 158 891 |;
+#X text 179 891 |;
+#X text 194 891 |;
+#X text 208 891 |;
+#X text 229 891 |;
+#X text 60 851 domain;
+#X text 90 871 name;
+#X text 158 781 midi-message-type (ctl \, note \, bend \, etc.);
+#X text 208 841 value scaling (optional. default=1);
+#X text 229 861 value offset (optional. default=0);
+#X text 465 753 This registers the variable "/i/send/midi" for midi
+output via domain "\$0".;
+#X text 442 510 [midi_gen] is a versatile midi message generator for
+generating debugging signals. It can send its output to either the
+input channel ("/<domain>/midi/in") \, output channel ("/<domain>/midi/out")
+\, or an independent generator channel ("/<domain>/midi/gen"). Additionally
+\, all output is also sent to the first outlet.;
+#X obj 5 944 cnv 15 820 200 empty empty Receive_MIDI 20 12 0 14 -262130
+-66577 0;
+#X text 60 1051 |;
+#X text 60 1071 |;
+#X text 60 1081 |;
+#X text 90 1071 |;
+#X text 90 1081 |;
+#X text 60 1061 |;
+#X text 172 981 |;
+#X text 172 1001 |;
+#X text 172 1011 |;
+#X text 193 1001 |;
+#X text 193 1011 |;
+#X text 172 991 |;
+#X text 172 1021 |;
+#X text 172 1031 |;
+#X text 193 1021 |;
+#X text 193 1031 |;
+#X text 172 1041 |;
+#X text 172 1051 |;
+#X text 193 1041 |;
+#X text 193 1051 |;
+#X text 193 991 midi cc#/prg#/note#/etc.;
+#X text 208 1021 |;
+#X text 208 1031 |;
+#X text 208 1041 |;
+#X text 208 1051 |;
+#X text 227 1041 |;
+#X text 227 1051 |;
+#X text 172 1061 |;
+#X text 172 1071 |;
+#X text 193 1061 |;
+#X text 193 1071 |;
+#X text 208 1061 |;
+#X text 208 1071 |;
+#X text 227 1061 |;
+#X text 227 1071 |;
+#X text 245 1061 |;
+#X text 245 1071 |;
+#X text 172 1081 |;
+#X text 193 1081 |;
+#X text 208 1081 |;
+#X text 227 1081 |;
+#X text 245 1081 |;
+#X text 60 1041 domain;
+#X text 90 1061 name;
+#X text 172 971 midi-message-type (ctl \, note \, bend \, etc.);
+#X text 60 1091 |;
+#X text 60 1101 |;
+#X text 90 1091 |;
+#X text 90 1101 |;
+#X text 172 1091 |;
+#X text 193 1091 |;
+#X text 208 1091 |;
+#X text 227 1091 |;
+#X text 245 1091 |;
+#X text 172 1101 |;
+#X text 193 1101 |;
+#X text 208 1101 |;
+#X text 227 1101 |;
+#X text 245 1101 |;
+#X text 259 1081 |;
+#X text 259 1091 |;
+#X text 259 1101 |;
+#X text 279 1101 |;
+#X text 245 1051 value offset (optional. default=0);
+#X text 227 1031 value scaling (optional. default=1);
+#X text 279 1091 interpolation grain rate /ms (optional. default=20)
+;
+#X text 259 1071 interpolation time /ms (optional. default=0);
+#X obj 586 1038 hsl 128 15 5 130 0 0 /i/receive/midi /i/receive/midi
+/i/receive/midi -2 -8 0 10 -262144 -1 -1 0 1;
+#X obj 723 1039 nbx 5 14 -1e+37 1e+37 0 0 /i/receive/midi /i/receive/midi
+/i/receive/midi 0 -8 0 10 -262144 -1 -1 5 256;
+#X text 465 863 Turn on "print" in [midi_out_gui] above and play with
+this slider:;
+#X text 469 983 Turn on "print" in [midi_in_gui] and try to generate
+a suitable test signal wit [midi_gen] above \, to control this slider:
+;
+#X obj 13 907 midi_s \$0 /i/send/midi ctl 11 1 104 1;
+#X text 465 783 The value is sent as control-change message 11 on channel
+1 As the slider is scaled from 1 to 105 \, the scaling parameter needs
+to be set to 104 and the offset to 1 It will then output a MIDI-value
+between 0 and 127;
+#X text 208 1011 midi channel (default=1);
+#X text 194 821 midi channel (default=1);
+#X obj 5 1154 cnv 15 820 200 empty empty Bidirectional_MIDI 20 12 0
+14 -262130 -66577 0;
+#X text 64 1261 |;
+#X text 64 1281 |;
+#X text 64 1291 |;
+#X text 94 1281 |;
+#X text 94 1291 |;
+#X text 64 1271 |;
+#X text 146 1191 |;
+#X text 146 1211 |;
+#X text 146 1221 |;
+#X text 167 1211 |;
+#X text 167 1221 |;
+#X text 146 1201 |;
+#X text 146 1231 |;
+#X text 146 1241 |;
+#X text 167 1231 |;
+#X text 167 1241 |;
+#X text 146 1251 |;
+#X text 146 1261 |;
+#X text 167 1251 |;
+#X text 167 1261 |;
+#X text 167 1201 midi cc#/prg#/note#/etc.;
+#X text 184 1231 |;
+#X text 184 1241 |;
+#X text 184 1251 |;
+#X text 184 1261 |;
+#X text 202 1251 |;
+#X text 202 1261 |;
+#X text 146 1271 |;
+#X text 146 1281 |;
+#X text 167 1271 |;
+#X text 167 1281 |;
+#X text 184 1271 |;
+#X text 184 1281 |;
+#X text 202 1271 |;
+#X text 202 1281 |;
+#X text 227 1271 |;
+#X text 227 1281 |;
+#X text 146 1291 |;
+#X text 167 1291 |;
+#X text 184 1291 |;
+#X text 202 1291 |;
+#X text 227 1291 |;
+#X text 64 1251 domain;
+#X text 94 1271 name;
+#X text 146 1181 midi-message-type (ctl \, note \, bend \, etc.);
+#X text 64 1301 |;
+#X text 64 1311 |;
+#X text 94 1301 |;
+#X text 94 1311 |;
+#X text 146 1301 |;
+#X text 167 1301 |;
+#X text 184 1301 |;
+#X text 202 1301 |;
+#X text 227 1301 |;
+#X text 146 1311 |;
+#X text 167 1311 |;
+#X text 184 1311 |;
+#X text 202 1311 |;
+#X text 227 1311 |;
+#X text 247 1291 |;
+#X text 247 1301 |;
+#X text 247 1311 |;
+#X text 265 1311 |;
+#X text 202 1241 value scaling (optional. default=1);
+#X text 227 1261 value offset (optional. default=0));
+#X text 265 1301 interpolation grain rate /ms (optional. default=20)
+;
+#X text 247 1281 interpolation time /ms (optional. default=0);
+#X text 184 1221 midi channel (default=1);
+#X obj 600 1249 hsl 128 15 -50 50 0 0 /i/do/both /i/do/both /i/do/both
+-2 -8 0 10 -262144 -1 -1 0 1;
+#X obj 737 1250 nbx 5 14 -1e+37 1e+37 0 0 /i/do/both /i/do/both /i/do/both
+0 -8 0 10 -262144 -1 -1 -50 256;
+#X text 505 1176 Combination of [midi_s] and [midi_r] with feedback
+prevention.;
+#X text 468 956 Works just like [midi_s] \, but in opposite direction.
+;
+#X obj 11 1119 midi_r \$0 /i/receive/midi ctl 12 1 125 5 50 20;
+#X text 424 1454 For more information on how to register variables
+to OSC \, see [osc-help].;
+#X text 20 1528 [osc2midi] connects a variable \, that is already registered
+for OSC control to a given MIDI-message. The message is connected uni-
+or bidirectional \, according to the OSC settings.;
+#X obj 5 1366 cnv 15 820 25 empty empty Map_OSC-messages_to_MIDI-messages
+20 12 0 14 -4032 -66577 0;
+#X obj 430 1419 hsl 128 15 3 10 0 0 /i/map/osc/to/midi /i/map/osc/to/midi
+/i/map/osc/to/midi -2 -8 0 10 -262144 -1 -1 0 1;
+#X obj 567 1420 nbx 5 14 -1e+37 1e+37 0 0 /i/map/osc/to/midi /i/map/osc/to/midi
+/i/map/osc/to/midi 0 -8 0 10 -262144 -1 -1 3 256;
+#X text 297 1120 1st inlet: turn module on(1)/off(0);
+#X text 286 1349;
+#X text 286 1329 1st inlet: midi-out on(1)/off(0) \,;
+#X text 488 1329 2nd inlet: midi-in on(1)/off(0).;
+#X text 247 911 1st inlet: turn module on(1)/off(0);
+#X obj 10 1329 midi_bi \$0 /i/do/both ctl 13 1 100 -50 50 40;
+#X text 421 1743 1st inlet: midi-out on(1)/off(0) \,;
+#X text 623 1743 2nd inlet: midi-in on(1)/off(0).;
+#X obj 114 1742 osc2midi \$0 /i/map/osc/to/midi ctl 14 1 7 3 50 50
+;
+#X obj 39 1441 osc_bi \$0 /i/map/osc/to/midi;
+#X text 634 1420 (3...10);
+#X text 658 1269 (-50...50);
+#X text 621 1058 (5...130);
+#X text 561 919 (1...105);
+#X coords 0 756 1 755 85 60 0;

+ 6 - 0
midi_bi-help.pd

@@ -0,0 +1,6 @@
+#N canvas 94 39 420 190 10;
+#X text 33 14 midi_bi: <domain> <name> <type> <cc#/note#/prg#/...>
+<ch#> <scaling> <offset> <interpol.time> <grain rate>;
+#X text 101 133 (c)2012 \, Marian Weger;
+#X obj 59 79 cnv 15 250 30 empty empty see_[midi-help]_for_help 20
+12 0 14 -261234 -1 0;

+ 97 - 231
midi_bi.pd

@@ -1,233 +1,99 @@
-#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;
+#N canvas 94 39 629 576 10;
+#X text 430 514 (c)2011 \, Marian Weger;
+#X obj 287 127 spigot 1;
+#X msg 287 179 \$3 \$2 \$1;
+#X obj 287 80 r /\$1/midi/in;
+#X obj 37 142 spigot 1;
 #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 obj 37 360 + 0.5;
+#X obj 37 380 int;
+#X obj 287 484 t b a b;
+#X msg 326 510 0;
+#X obj 306 537 s \$2;
+#X msg 287 510 1;
+#X obj 37 188 spigot 1;
+#X obj 287 324 * 1;
+#X obj 287 275 / 127;
+#X obj 37 306 / 1;
+#X obj 37 328 * 127;
+#X obj 155 80 inlet out-state;
+#X obj 400 80 inlet in-state;
+#X obj 37 254 - \$7;
+#X obj 52 282 r \$0-scaling;
+#X obj 37 433 list append \$4;
+#X obj 287 368 kdemux2 \$8;
+#X obj 344 395 pack f \$8;
+#X obj 344 423 line 0 \$9;
+#X obj 287 253 route \$4;
+#X obj 302 299 r \$0-scaling;
+#X obj 287 157 route \$3;
+#X obj 37 401 list prepend \$3;
+#X obj 287 346 + \$7;
+#X text 33 14 midi_bi: <domain> <name> <type> <cc#/note#/prg#/...>
+<ch#> <scaling> <offset> <interpol.time> <grain rate>;
+#N canvas 499 22 270 248 init 0;
+#X obj 63 49 loadbang;
+#X msg 63 115 1;
+#X obj 63 71 f \$6;
+#X obj 63 93 sel 0;
+#X obj 63 143 s \$0-scaling;
+#X obj 153 49 loadbang;
+#X msg 153 115 1;
+#X obj 153 93 sel 0;
+#X obj 153 143 s \$0-channel;
+#X obj 153 71 f \$5;
+#X connect 0 0 2 0;
+#X connect 1 0 4 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;
+#X connect 3 0 1 0;
+#X connect 3 1 4 0;
+#X connect 5 0 9 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 7 1 8 0;
+#X connect 9 0 7 0;
+#X restore 489 193 pd init;
+#X obj 37 507 list trim;
+#X obj 37 485 list append 1;
+#X obj 112 462 r \$0-channel;
+#X obj 287 231 route 1;
+#X obj 326 209 r \$0-channel;
+#X obj 37 527 s /\$1/midi/out;
+#X obj 37 220 route float;
+#X connect 1 0 27 0;
+#X connect 2 0 35 0;
+#X connect 3 0 1 0;
+#X connect 4 0 12 0;
+#X connect 5 0 4 0;
+#X connect 6 0 7 0;
+#X connect 7 0 28 0;
+#X connect 8 0 11 0;
+#X connect 8 1 10 0;
+#X connect 8 2 9 0;
+#X connect 9 0 12 1;
+#X connect 11 0 12 1;
+#X connect 12 0 38 0;
+#X connect 13 0 29 0;
+#X connect 14 0 13 0;
+#X connect 15 0 16 0;
+#X connect 16 0 6 0;
+#X connect 17 0 4 1;
+#X connect 18 0 1 1;
+#X connect 19 0 15 0;
+#X connect 20 0 15 1;
+#X connect 21 0 33 0;
+#X connect 22 0 8 0;
+#X connect 22 1 23 0;
+#X connect 23 0 24 0;
+#X connect 24 0 8 0;
+#X connect 25 0 14 0;
+#X connect 26 0 13 1;
+#X connect 27 0 2 0;
+#X connect 28 0 21 0;
+#X connect 29 0 22 0;
+#X connect 32 0 37 0;
+#X connect 33 0 32 0;
+#X connect 34 0 33 1;
+#X connect 35 0 25 0;
+#X connect 36 0 35 1;
+#X connect 38 0 19 0;

+ 0 - 38
midi_bi_gui.pd

@@ -1,38 +0,0 @@
-#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 0 1;
-#N canvas 638 22 487 255 init 1;
-#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 0 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;

+ 5 - 0
midi_gen-help.pd

@@ -0,0 +1,5 @@
+#N canvas 523 201 371 224 10;
+#X text 67 24 midi_gen <domain>;
+#X text 101 133 (c)2012 \, Marian Weger;
+#X obj 59 79 cnv 15 250 30 empty empty see_[midi-help]_for_help 20
+12 0 14 -261234 -1 0;

+ 5 - 0
midi_gen_gui-help.pd

@@ -0,0 +1,5 @@
+#N canvas 523 201 371 224 10;
+#X text 101 133 (c)2012 \, Marian Weger;
+#X obj 59 79 cnv 15 250 30 empty empty see_[midi-help]_for_help 20
+12 0 14 -261234 -1 0;
+#X text 67 24 midi_gen_gui <domain>;

+ 55 - 55
midi_gen_gui.pd

@@ -1,37 +1,37 @@
 #N canvas 373 22 882 691 10;
-#X obj 375 115 cnv 20 79 134 empty empty empty 20 12 0 14 -191407 -66577
+#X obj 375 115 cnv 20 79 139 empty empty Pitch_Bend 10 10 0 10 -191407
+-262144 0;
+#X obj 101 115 cnv 15 161 139 empty empty Note 10 10 0 10 -191407 -262144
 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
+#X obj 265 115 cnv 20 107 139 empty empty Control_Change 10 10 0 10
+-191407 -262144 0;
+#X obj 123 236 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
+#X obj 140 236 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
+#X obj 157 236 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
+#X obj 174 236 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
+#X obj 191 236 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
+#X obj 208 236 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
+#X obj 225 236 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
+#X obj 132 219 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
+#X obj 149 219 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
+#X obj 183 219 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
+#X obj 200 219 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
+#X obj 217 219 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
+#X obj 104 228 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
+#X obj 244 228 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;
@@ -45,75 +45,75 @@
 #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
+#X obj 223 201 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 0 256;
+#X obj 184 143 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
+#X obj 144 143 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 104 143 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 0 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
+#X obj 104 161 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
+#X obj 123 161 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
+#X obj 327 157 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
+#X obj 287 157 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
+#X obj 287 194 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
+#X obj 287 175 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
+#X obj 306 175 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
+#X obj 268 144 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
+#X obj 327 175 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
+#X obj 346 175 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
+#X obj 144 161 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
+#X obj 163 161 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
+#X obj 378 144 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
+#X obj 397 214 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
+#X obj 397 232 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
+#X obj 416 232 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
+#X obj 287 213 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
+#X obj 287 232 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
+#X obj 104 180 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
+#X obj 104 200 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
+#X obj 184 161 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
+#X obj 457 115 cnv 20 42 139 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
+#X obj 460 143 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
+#X obj 460 202 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
+#X text 476 202 in;
+#X text 476 217 out;
+#X obj 460 161 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
+#X obj 479 161 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 text 476 231 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;
@@ -149,4 +149,4 @@ dest 0 -8 0 10 -4034 -1 -1 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;
+#X coords 0 -1 1 1 400 155 1 100 100;

+ 5 - 0
midi_in-help.pd

@@ -0,0 +1,5 @@
+#N canvas 523 201 371 224 10;
+#X text 101 133 (c)2012 \, Marian Weger;
+#X obj 59 79 cnv 15 250 30 empty empty see_[midi-help]_for_help 20
+12 0 14 -261234 -1 0;
+#X text 67 24 midi_in <domain>;

+ 68 - 35
midi_in.pd

@@ -1,25 +1,25 @@
 #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 39 147 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 149 147 list prepend note;
 #X obj 269 47 bendin;
 #X obj 269 69 pack f f;
-#X obj 269 91 list prepend bend;
+#X obj 269 147 list prepend bend;
 #X obj 389 69 pack f f;
 #X obj 389 47 pgmin;
-#X obj 389 91 list prepend pgm;
+#X obj 389 147 list prepend pgm;
 #X obj 509 69 pack f f;
 #X obj 509 47 touchin;
-#X obj 509 91 list prepend touch;
+#X obj 509 147 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 639 147 list prepend polytouch;
 #X obj 789 47 sysexin;
 #X obj 789 69 pack f f;
-#X obj 789 91 list prepend sysex;
+#X obj 789 147 list prepend sysex;
 #X obj 247 410 spigot;
 #X obj 247 432 print MIDI_IN;
 #X obj 558 393 spigot;
@@ -28,7 +28,6 @@
 #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;
@@ -38,50 +37,84 @@
 #X obj 419 502 s /\$1/midi/in;
 #X obj 942 96 r /\$1/midi/in/raw;
 #X obj 525 504 outlet;
+#X obj 863 236 r /\$1/midi/in/raw;
+#X obj 863 258 == 0;
+#X obj 863 280 s \$0-noraw;
+#X obj 822 96 r \$0-noraw;
+#X obj 672 96 r \$0-noraw;
+#X obj 542 96 r \$0-noraw;
+#X obj 422 96 r \$0-noraw;
+#X obj 302 96 r \$0-noraw;
+#X obj 182 96 r \$0-noraw;
+#X obj 72 96 r \$0-noraw;
+#X obj 39 122 spigot 1;
+#X obj 149 122 spigot 1;
+#X obj 269 121 spigot 1;
+#X obj 389 121 spigot 1;
+#X obj 509 121 spigot 1;
+#X obj 639 121 spigot 1;
+#X obj 789 121 spigot 1;
+#X obj 909 121 spigot;
 #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 1 0 48 0;
+#X connect 2 0 29 0;
+#X connect 3 0 49 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 5 0 29 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 7 0 50 0;
+#X connect 8 0 29 0;
+#X connect 9 0 51 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 11 0 29 0;
+#X connect 12 0 52 0;
 #X connect 13 0 12 0;
 #X connect 13 1 12 1;
-#X connect 14 0 30 0;
+#X connect 14 0 29 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 16 0 53 0;
+#X connect 17 0 29 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 19 0 54 0;
+#X connect 20 0 29 0;
 #X connect 21 0 22 0;
-#X connect 23 0 34 0;
-#X connect 26 0 29 0;
+#X connect 23 0 33 0;
+#X connect 26 0 55 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;
+#X connect 28 0 29 0;
+#X connect 29 0 30 0;
+#X connect 30 0 23 0;
+#X connect 30 0 21 0;
+#X connect 30 0 35 0;
+#X connect 30 0 37 0;
+#X connect 31 0 21 1;
+#X connect 32 0 23 1;
+#X connect 34 0 29 1;
+#X connect 36 0 55 1;
+#X connect 38 0 39 0;
+#X connect 39 0 40 0;
+#X connect 41 0 54 1;
+#X connect 42 0 53 1;
+#X connect 43 0 52 1;
+#X connect 44 0 51 1;
+#X connect 45 0 50 1;
+#X connect 46 0 49 1;
+#X connect 47 0 48 1;
+#X connect 48 0 2 0;
+#X connect 49 0 5 0;
+#X connect 50 0 8 0;
+#X connect 51 0 11 0;
+#X connect 52 0 14 0;
+#X connect 53 0 17 0;
+#X connect 54 0 20 0;
+#X connect 55 0 28 0;

+ 5 - 0
midi_in_gui-help.pd

@@ -0,0 +1,5 @@
+#N canvas 523 201 371 224 10;
+#X text 101 133 (c)2012 \, Marian Weger;
+#X obj 59 79 cnv 15 250 30 empty empty see_[midi-help]_for_help 20
+12 0 14 -261234 -1 0;
+#X text 67 24 midi_in_gui <domain>;

+ 1 - 1
midi_in_gui.pd

@@ -17,7 +17,7 @@ info 17 7 0 10 -262144 -1 -1 0 1;
 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 symbolatom 104 146 9 0 0 1 type - -;
 #X obj 393 196 unpack s f f f;
 #X obj 373 37 loadbang;
 #X msg 373 59 symbol;

+ 5 - 0
midi_out-help.pd

@@ -0,0 +1,5 @@
+#N canvas 523 201 371 224 10;
+#X text 101 133 (c)2012 \, Marian Weger;
+#X obj 59 79 cnv 15 250 30 empty empty see_[midi-help]_for_help 20
+12 0 14 -261234 -1 0;
+#X text 67 24 midi_out <domain>;

+ 5 - 0
midi_out_gui-help.pd

@@ -0,0 +1,5 @@
+#N canvas 523 201 371 224 10;
+#X text 101 133 (c)2012 \, Marian Weger;
+#X obj 59 79 cnv 15 250 30 empty empty see_[midi-help]_for_help 20
+12 0 14 -261234 -1 0;
+#X text 67 24 midi_out_gui <domain>;

+ 6 - 0
midi_r-help.pd

@@ -0,0 +1,6 @@
+#N canvas 24 22 405 193 10;
+#X text 33 14 midi_r: <domain> <name> <type> <cc#/note#/prg#/...> <ch#>
+<scaling> <offset> <interpol.time> <grain rate>;
+#X text 101 133 (c)2012 \, Marian Weger;
+#X obj 59 79 cnv 15 250 30 empty empty see_[midi-help]_for_help 20
+12 0 14 -261234 -1 0;

+ 56 - 98
midi_r.pd

@@ -1,100 +1,58 @@
-#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;
+#N canvas 24 22 456 615 10;
+#X text 200 515 (c)2011 \, Marian Weger;
 #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;
+<scaling> <offset> <interpol.time> <grain rate>;
+#X obj 91 141 spigot 1;
+#X msg 91 193 \$3 \$2 \$1;
+#X obj 91 94 r /\$1/midi/in;
+#N canvas 499 22 270 248 init 0;
+#X obj 63 49 loadbang;
+#X msg 63 115 1;
+#X obj 63 71 f \$6;
+#X obj 63 93 sel 0;
+#X obj 63 143 s \$0-scaling;
+#X obj 153 49 loadbang;
+#X msg 153 115 1;
+#X obj 153 93 sel 0;
+#X obj 153 143 s \$0-channel;
+#X obj 153 71 f \$5;
+#X connect 0 0 2 0;
+#X connect 1 0 4 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;
+#X connect 3 0 1 0;
+#X connect 3 1 4 0;
+#X connect 5 0 9 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 7 1 8 0;
+#X connect 9 0 7 0;
+#X restore 279 193 pd init;
+#X obj 91 338 * 1;
+#X obj 91 289 / 127;
+#X obj 204 94 inlet in-state;
+#X obj 91 382 kdemux2 \$8;
+#X obj 148 409 pack f \$8;
+#X obj 148 437 line 0 \$9;
+#X obj 91 267 route \$4;
+#X obj 106 313 r \$0-scaling;
+#X obj 91 171 route \$3;
+#X obj 91 360 + \$7;
+#X obj 91 498 s \$2;
+#X obj 91 245 route 1;
+#X obj 130 224 r \$0-channel;
+#X connect 2 0 14 0;
+#X connect 3 0 17 0;
+#X connect 4 0 2 0;
+#X connect 6 0 15 0;
+#X connect 7 0 6 0;
+#X connect 8 0 2 1;
+#X connect 9 0 16 0;
+#X connect 9 1 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 16 0;
+#X connect 12 0 7 0;
+#X connect 13 0 6 1;
+#X connect 14 0 3 0;
+#X connect 15 0 9 0;
+#X connect 17 0 12 0;
+#X connect 18 0 17 1;

+ 6 - 0
midi_s-help.pd

@@ -0,0 +1,6 @@
+#N canvas 252 163 395 202 10;
+#X text 33 14 midi_s <domain> <name> <type> <cc#/note#/prg#/...> <ch#>
+<scaling> <offset>;
+#X text 101 133 (c)2012 \, Marian Weger;
+#X obj 59 79 cnv 15 250 30 empty empty see_[midi-help]_for_help 20
+12 0 14 -261234 -1 0;

+ 57 - 72
midi_s.pd

@@ -1,74 +1,59 @@
-#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;
+#N canvas 17 97 488 568 10;
 #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;
+#X obj 37 162 spigot 1;
+#X obj 37 80 r \$2;
+#X obj 37 360 + 0.5;
+#X obj 37 380 int;
+#X obj 37 218 spigot 1;
+#X obj 37 306 / 1;
+#X obj 37 328 * 127;
+#X obj 155 80 inlet out-state;
+#X obj 37 102 route float;
+#X obj 37 254 - \$7;
+#X obj 52 282 r \$0-scaling;
+#X obj 37 433 list append \$4;
+#X obj 37 401 list prepend \$3;
+#X text 249 472 (c)2011 \, Marian Weger;
+#X obj 37 537 s /\$1/midi/out;
+#X obj 37 507 list trim;
+#N canvas 499 22 270 248 init 0;
+#X obj 63 49 loadbang;
+#X msg 63 115 1;
+#X obj 63 71 f \$6;
+#X obj 63 93 sel 0;
+#X obj 63 143 s \$0-scaling;
+#X obj 153 49 loadbang;
+#X msg 153 115 1;
+#X obj 153 93 sel 0;
+#X obj 153 143 s \$0-channel;
+#X obj 153 71 f \$5;
+#X connect 0 0 2 0;
+#X connect 1 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 3 1 4 0;
+#X connect 5 0 9 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 7 1 8 0;
+#X connect 9 0 7 0;
+#X restore 279 193 pd init;
+#X obj 37 485 list append 1;
+#X obj 112 463 r \$0-channel;
+#X connect 1 0 5 0;
+#X connect 2 0 9 0;
+#X connect 3 0 4 0;
+#X connect 4 0 13 0;
+#X connect 5 0 10 0;
+#X connect 6 0 7 0;
+#X connect 7 0 3 0;
+#X connect 8 0 1 1;
+#X connect 9 0 1 0;
+#X connect 10 0 6 0;
+#X connect 11 0 6 1;
+#X connect 12 0 18 0;
+#X connect 13 0 12 0;
+#X connect 16 0 15 0;
+#X connect 18 0 16 0;
+#X connect 19 0 18 1;

+ 5 - 95
osc2midi-help.pd

@@ -1,96 +1,6 @@
-#N canvas 259 22 931 684 10;
+#N canvas 259 22 388 184 10;
 #X text 23 14 osc2midi <domain> <osc-name> <midi-type> <cc#/note#/prg#/...>
-<ch#> <scaling> <offset> <interpol.time>;
-#X obj 20 102 cnv 15 225 230 empty empty MIDI_Input 20 12 0 14 -204786
--66577 0;
-#X obj 250 102 cnv 15 225 230 empty empty MIDI_Output 20 12 0 14 -204786
--66577 0;
-#X text 113 137 (logic);
-#X text 72 180 (Graphical User Interface);
-#X text 348 157 (logic);
-#X text 307 200 (Graphical User Interface);
-#X obj 480 102 cnv 15 415 230 empty empty MIDI_Message_Generator 20
-12 0 14 -204786 -66577 0;
-#X text 573 133 (logic);
-#X text 726 157 (Graphical User Interface);
-#X text 403 32 (c)2012 Marian Weger;
-#X text 540 583 All parameters are registered for state-saving with
-the corresponding storage-domain. See [ds-help] for more information
-on this topic.;
-#X text 540 533 For more information on how to register variables to
-OSC \, see [osc-help].;
-#X text 540 443 [osc2midi] connects a variable \, that is already registered
-for OSC control to a given MIDI-message. The message is connected uni-
-or bidirectional \, according to the OSC settings.;
-#X obj 20 342 cnv 15 435 60 empty empty 1st:_register_variable_for_OSC
-20 12 0 14 -262130 -66577 0;
-#X obj 42 374 osc_bi \$0 /i/map/osc/to/midi;
-#X obj 30 199 midi_in_gui \$0;
-#X obj 30 137 midi_in \$0;
-#X obj 260 157 midi_out \$0;
-#X obj 260 219 midi_out_gui \$0;
-#X obj 488 134 midi_gen \$0;
-#X obj 488 176 midi_gen_gui \$0;
-#X obj 20 410 cnv 15 500 250 empty empty 2nd:_connect_OSC_to_MIDI 20
-12 0 14 -261234 -66577 0;
-#X text 99 525 |;
-#X text 99 545 |;
-#X text 99 555 |;
-#X text 129 545 |;
-#X text 129 555 |;
-#X text 99 535 |;
-#X text 129 535 osc-name;
-#X text 230 455 |;
-#X text 230 475 |;
-#X text 230 485 |;
-#X text 253 475 |;
-#X text 253 485 |;
-#X text 230 465 |;
-#X text 230 495 |;
-#X text 230 505 |;
-#X text 253 495 |;
-#X text 253 505 |;
-#X text 230 515 |;
-#X text 230 525 |;
-#X text 253 515 |;
-#X text 253 525 |;
-#X text 230 445 midi-control-type (ctl \, note \, bend \, etc.);
-#X text 253 465 midi cc#/prg#/note#/etc.;
-#X text 268 495 |;
-#X text 268 505 |;
-#X text 268 515 |;
-#X text 268 525 |;
-#X text 268 485 midi channel;
-#X text 282 515 |;
-#X text 282 525 |;
-#X text 230 535 |;
-#X text 230 545 |;
-#X text 253 535 |;
-#X text 253 545 |;
-#X text 268 535 |;
-#X text 268 545 |;
-#X text 282 535 |;
-#X text 282 545 |;
-#X text 293 535 |;
-#X text 293 545 |;
-#X text 282 505 value scaling;
-#X text 293 525 value offset;
-#X text 230 555 |;
-#X text 253 555 |;
-#X text 268 555 |;
-#X text 282 555 |;
-#X text 293 555 |;
-#X text 308 555 |;
-#X text 308 545 interpolation time;
-#X text 38 612 inlet 1: midi-out on(1)/off(0);
-#X text 38 632 inlet 2: midi-in on(1)/off(0);
-#X obj 40 575 osc2midi \$0 /i/map/osc/to/midi ctl 11 0 1 0 50;
-#X obj 460 342 cnv 15 435 60 empty empty Variable 20 12 0 14 -228856
--66577 0;
-#X obj 605 373 hsl 128 15 0 127 0 0 /i/map/osc/to/midi /i/map/osc/to/midi
-/i/map/osc/to/midi -2 -8 0 10 -262144 -1 -1 0 1;
-#X obj 742 374 nbx 5 14 -1e+37 1e+37 0 0 /i/map/osc/to/midi /i/map/osc/to/midi
-/i/map/osc/to/midi 0 -8 0 10 -262144 -1 -1 0 256;
-#X obj 20 72 cnv 15 875 25 empty empty General_MIDI_Modules 20 12 0
-14 -204786 -66577 0;
-#X text 99 515 domain;
+<ch#> <scaling> <offset> <interpol.time> <grain rate>;
+#X text 101 133 (c)2012 \, Marian Weger;
+#X obj 59 79 cnv 15 250 30 empty empty see_[midi-help]_for_help 20
+12 0 14 -261234 -1 0;

+ 93 - 259
osc2midi.pd

@@ -1,261 +1,95 @@
-#N canvas 19 22 699 473 10;
-#X obj 277 207 spigot 1;
-#X obj 277 307 route ctl;
-#X msg 277 329 \$3 \$2 \$1;
-#X obj 277 160 r /\$1/midi/in;
-#X obj 277 376 route 0;
-#X obj 316 353 r /\$1\$2/midi/channel;
-#N canvas 7 291 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;
-#X msg 66 103 symbol ctl;
-#X obj 392 77 loadbang;
-#X obj 392 99 list prepend \$1\$2;
-#X msg 392 121 \; /\$1/midi/in/print 0 \; /\$1/midi/out/print 0 \;
-/\$1/midi/in/state 1 \; /\$1/midi/out/state 1 \;;
-#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 connect 27 0 28 0;
-#X connect 28 0 29 0;
-#X restore 535 28 pd init;
-#X obj 316 715 line 0 20;
-#X obj 367 680 r /\$1\$2/midi/line/grain;
-#X obj 361 599 r /\$1\$2/midi/line/time;
-#X obj 277 630 kdemux2;
-#X obj 277 425 route 0;
-#X obj 316 403 r /\$1\$2/midi/value2;
-#X obj 292 501 r /\$1\$2/midi/scaling;
-#X obj 292 555 r /\$1\$2/midi/offset;
-#X obj 277 578 + 0;
-#X text 391 699 (only Pd version >= 0.43);
-#X obj 316 657 pack f 0;
-#X obj 37 272 spigot 1;
-#X obj 37 878 s \$1/midi/out;
-#X obj 37 685 list prepend ctl;
-#X obj 37 644 + 0.5;
-#X obj 37 664 int;
-#X obj 52 496 r /\$1\$2/midi/scaling;
-#X obj 112 715 r /\$1\$2/midi/value2;
-#X obj 37 737 list append 0;
-#X obj 112 766 r /\$1\$2/midi/channel;
-#X obj 37 789 list append 0;
-#X obj 52 445 r /\$1\$2/midi/offset;
-#X obj 37 468 - 0;
-#X obj 277 526 * 1;
-#X obj 277 477 / 127;
-#X obj 37 520 / 1;
-#X obj 37 572 * 127;
-#X obj 322 183 r /\$1\$2/midi/in/state;
-#X obj 82 244 r /\$1\$2/midi/out/state;
-#X obj 316 806 spigot;
-#X obj 349 784 r /\$1\$2/midi/in/print;
-#X obj 52 387 spigot;
-#X obj 37 88 inlet out-state;
-#X obj 277 88 inlet in-state;
-#X obj 37 110 s /\$1\$2/midi/out/state;
-#X obj 277 110 s /\$1\$2/midi/in/state;
-#X obj 85 365 r /\$1\$2/midi/out/print;
-#X obj 328 255 list prepend symbol;
-#X obj 328 277 list trim;
-#X obj 130 623 list prepend symbol;
-#X obj 130 645 list trim;
-#N canvas 821 254 450 300 register 1;
-#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 obj 62 245 ds_reg \$1 \$2/midi/type;
-#X text 75 264 (ds_reg_settings does currently not allow symbols);
-#X obj 62 175 ds_reg_settings \$1 \$2/midi/in/state;
-#X obj 62 195 ds_reg_settings \$1 \$2/midi/out/state;
-#X restore 535 48 pd register;
-#X obj 130 601 r /\$1\$2/midi/type;
-#X obj 328 233 r /\$1\$2/midi/type;
-#X obj 37 332 route float;
-#X obj 37 160 r \$1/osc/out;
-#X obj 37 294 route \$2;
-#X text 536 825 (c)2012 \, Marian Weger;
-#X obj 277 856 list prepend \$2;
-#X obj 277 878 s /\$1/osc/in;
-#X obj 52 409 print \$2 MIDI OUT;
-#X obj 316 828 print \$2 MIDI IN;
-#X obj 277 752 t a;
+#N canvas 473 160 616 571 10;
+#X obj 277 127 spigot 1;
+#X obj 277 80 r /\$1/midi/in;
+#X obj 37 122 spigot 1;
+#X obj 126 80 inlet out-state;
+#X obj 365 80 inlet in-state;
+#X obj 37 202 route float;
+#X text 434 294 (c)2012 \, Marian Weger;
+#X obj 277 528 s /\$1/osc/in;
+#X obj 37 169 route \$2;
 #X text 23 14 osc2midi <domain> <osc-name> <midi-type> <cc#/note#/prg#/...>
-<ch#> <scaling> <offset> <interpol.time>;
-#N canvas 0 22 450 300 type2number 0;
-#X msg 80 117 0;
-#X msg 118 117 1;
-#X msg 157 117 2;
-#X msg 195 117 3;
-#X msg 234 117 4;
-#X msg 272 117 5;
-#X obj 80 71 r /\$1\$2/midi/type;
-#X obj 80 199 list trim;
-#X obj 80 177 list prepend set;
-#X obj 80 95 route ctl note bend pgm touch polytouch;
-#X obj 80 224 s /\$1\$2/midi/type/number/set;
-#X connect 0 0 8 0;
-#X connect 1 0 8 0;
+<ch#> <scaling> <offset> <interpol.time> <grain rate>;
+#X obj 37 80 r /\$1/osc/out;
+#X obj 37 340 + 0.5;
+#X obj 37 360 int;
+#X obj 37 286 / 1;
+#X obj 37 308 * 127;
+#X obj 37 234 - \$7;
+#X obj 52 262 r \$0-scaling;
+#X obj 37 413 list append \$4;
+#X obj 37 381 list prepend \$3;
+#X obj 37 487 list trim;
+#X obj 37 465 list append 1;
+#X obj 112 442 r \$0-channel;
+#X obj 37 507 s /\$1/midi/out;
+#X msg 277 172 \$3 \$2 \$1;
+#X obj 277 317 * 1;
+#X obj 277 268 / 127;
+#X obj 277 361 kdemux2 \$8;
+#X obj 334 388 pack f \$8;
+#X obj 334 416 line 0 \$9;
+#X obj 277 246 route \$4;
+#X obj 292 292 r \$0-scaling;
+#X obj 277 150 route \$3;
+#X obj 277 339 + \$7;
+#N canvas 499 22 270 248 init 0;
+#X obj 63 49 loadbang;
+#X msg 63 115 1;
+#X obj 63 71 f \$6;
+#X obj 63 93 sel 0;
+#X obj 63 143 s \$0-scaling;
+#X obj 153 49 loadbang;
+#X msg 153 115 1;
+#X obj 153 93 sel 0;
+#X obj 153 143 s \$0-channel;
+#X obj 153 71 f \$5;
+#X connect 0 0 2 0;
+#X connect 1 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 3 1 4 0;
+#X connect 5 0 9 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 7 1 8 0;
+#X connect 9 0 7 0;
+#X restore 479 186 pd init;
+#X obj 277 224 route 1;
+#X obj 316 202 r \$0-channel;
+#X obj 277 477 list prepend \$2;
+#X obj 277 499 list trim;
+#X connect 0 0 31 0;
+#X connect 1 0 0 0;
 #X connect 2 0 8 0;
-#X connect 3 0 8 0;
-#X connect 4 0 8 0;
-#X connect 5 0 8 0;
-#X connect 6 0 9 0;
-#X connect 7 0 10 0;
-#X connect 8 0 7 0;
-#X connect 9 0 0 0;
-#X connect 9 1 1 0;
-#X connect 9 2 2 0;
-#X connect 9 3 3 0;
-#X connect 9 4 4 0;
-#X connect 9 5 5 0;
-#X restore 535 68 pd type2number;
-#N canvas 0 22 450 300 number2type 0;
-#X msg 57 147 ctl;
-#X msg 87 147 note;
-#X msg 125 147 bend;
-#X msg 165 147 pgm;
-#X msg 195 147 touch;
-#X obj 57 62 change;
-#X obj 57 40 r /\$1\$2/midi/type/number;
-#X obj 57 85 sel 0 1 2 3 4 5;
-#X obj 57 269 s /\$1\$2/midi/type;
-#X obj 57 241 list trim;
-#X obj 57 219 list prepend symbol;
-#X msg 236 147 polytouch;
-#X connect 0 0 10 0;
-#X connect 1 0 10 0;
-#X connect 2 0 10 0;
-#X connect 3 0 10 0;
-#X connect 4 0 10 0;
-#X connect 5 0 7 0;
-#X connect 6 0 5 0;
-#X connect 7 0 0 0;
-#X connect 7 1 1 0;
-#X connect 7 2 2 0;
-#X connect 7 3 3 0;
-#X connect 7 4 4 0;
-#X connect 7 5 11 0;
-#X connect 9 0 8 0;
-#X connect 10 0 9 0;
-#X connect 11 0 10 0;
-#X restore 535 88 pd number2type;
-#X obj 535 124 r /\$1\$2/midi/type;
-#X obj 535 146 sel bend;
-#X obj 535 168 t b;
-#X msg 535 190 16383;
-#X obj 580 168 t b;
-#X msg 580 190 127;
-#X obj 535 222 s \$0-midi-scaling;
-#X obj 304 453 r \$0-midi-scaling;
-#X obj 64 547 r \$0-midi-scaling;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 4 0;
-#X connect 3 0 0 0;
-#X connect 4 0 11 0;
-#X connect 5 0 4 1;
-#X connect 7 0 59 0;
-#X connect 8 0 7 2;
-#X connect 9 0 10 1;
-#X connect 9 0 17 1;
-#X connect 10 0 59 0;
-#X connect 10 1 17 0;
-#X connect 11 0 31 0;
-#X connect 12 0 11 1;
-#X connect 13 0 30 1;
-#X connect 14 0 15 1;
-#X connect 15 0 10 0;
-#X connect 17 0 7 0;
-#X connect 18 0 53 0;
-#X connect 20 0 25 0;
-#X connect 21 0 22 0;
-#X connect 22 0 20 0;
-#X connect 23 0 32 1;
-#X connect 24 0 25 1;
-#X connect 25 0 27 0;
-#X connect 26 0 27 1;
-#X connect 27 0 19 0;
-#X connect 28 0 29 1;
-#X connect 29 0 32 0;
-#X connect 30 0 15 0;
-#X connect 31 0 30 0;
-#X connect 32 0 33 0;
-#X connect 33 0 21 0;
-#X connect 34 0 0 1;
-#X connect 35 0 18 1;
-#X connect 36 0 58 0;
-#X connect 37 0 36 1;
-#X connect 38 0 57 0;
-#X connect 39 0 41 0;
-#X connect 40 0 42 0;
-#X connect 43 0 38 1;
-#X connect 44 0 45 0;
-#X connect 45 0 1 1;
-#X connect 46 0 47 0;
-#X connect 47 0 20 1;
-#X connect 49 0 46 0;
-#X connect 50 0 44 0;
-#X connect 51 0 38 0;
-#X connect 51 0 29 0;
-#X connect 52 0 18 0;
-#X connect 53 0 51 0;
-#X connect 55 0 56 0;
-#X connect 59 0 55 0;
-#X connect 59 0 36 0;
-#X connect 63 0 64 0;
-#X connect 64 0 65 0;
-#X connect 64 1 67 0;
-#X connect 65 0 66 0;
-#X connect 66 0 69 0;
-#X connect 67 0 68 0;
-#X connect 68 0 69 0;
-#X connect 70 0 31 1;
-#X connect 71 0 33 1;
+#X connect 3 0 2 1;
+#X connect 4 0 0 1;
+#X connect 5 0 15 0;
+#X connect 8 0 5 0;
+#X connect 10 0 2 0;
+#X connect 11 0 12 0;
+#X connect 12 0 18 0;
+#X connect 13 0 14 0;
+#X connect 14 0 11 0;
+#X connect 15 0 13 0;
+#X connect 16 0 13 1;
+#X connect 17 0 20 0;
+#X connect 18 0 17 0;
+#X connect 19 0 22 0;
+#X connect 20 0 19 0;
+#X connect 21 0 20 1;
+#X connect 23 0 34 0;
+#X connect 24 0 32 0;
+#X connect 25 0 24 0;
+#X connect 26 0 36 0;
+#X connect 26 1 27 0;
+#X connect 27 0 28 0;
+#X connect 28 0 36 0;
+#X connect 29 0 25 0;
+#X connect 30 0 24 1;
+#X connect 31 0 23 0;
+#X connect 32 0 26 0;
+#X connect 34 0 29 0;
+#X connect 35 0 34 1;
+#X connect 36 0 37 0;
+#X connect 37 0 7 0;