[PD] [key], [keyup] and operating system key reapat

oliver oliver at klingt.org
Tue May 3 17:55:34 CEST 2022


Peter P. wrote:
> Dear Dan and everyone contributing to this issue,
> 
> I kinda felt this is a sensitive topic but was not aware of the amount
> of frustrating work that has already gone into it. Every bit of it is
> much appreciated, thank you and everyone a lot!
> 
> So if I would want to write a patch that uses the [key] and [keyup] objects to
> work consistently on all three platforms, I would have to tell the user to
> turn key repeat off in her operating system AND provide a means to
> filter out repeating key ons (Win and OS X), correct?
> 
> In this case I happily deal with the current status.

Often key repetitions are desired, for example if i want to make a 
beautiful dividing line like this:

=======================================================================

Maybe a safer approach would be to provide an abstraction that does the 
filtering depending on the OS.

Of course you will need at least [operating_system] from ZEXY for that, 
so this wouldn't be vanilla only. and of course it has other drawbacks, 
as it would need to be centralised (only one instance of [keyname] and 
then distribute the results with a [send])

that's at least the way i do it

attached is an abstraction i made a few years ago, haven't revised it 
lately, so please just take it as an example (also as it's only for 
windows ATM)

best

oliver

-------------- next part --------------
#N canvas 515 92 858 824 10;
#X declare -stdpath iemguts -path iemguts;
#X declare -stdlib zexy -lib zexy;
#X obj 415 717 cnv 14 63 15 empty empty empty 2 2 0 9 -248636 -66577
0;
#X obj 415 716 closebang, f 10;
#X obj 280 209 t b b;
#X obj 330 209 t b b;
#X msg 280 406 1;
#X msg 295 361 stop;
#X obj 280 384 del 500;
#X msg 376 433 1;
#X msg 390 385 stop;
#X obj 376 411 del 500;
#X obj 396 575 s ol_key;
#X msg 307 486 UP;
#X msg 359 486 DOWN;
#X obj 280 429 metro 50;
#X obj 376 456 metro 50;
#X msg 408 486 LEFT;
#X msg 457 486 RIGHT;
#X obj 280 182 route Up Down Left Right, f 34;
#X msg 465 430 1;
#X msg 478 383 stop;
#X obj 465 408 del 500;
#X msg 529 429 1;
#X msg 537 384 stop;
#X obj 529 407 del 500;
#X obj 465 453 metro 50;
#X obj 529 452 metro 50;
#X obj 537 268 route Up Down Left Right, f 34;
#X obj 380 209 t b b;
#X obj 430 209 t b b;
#X obj 50 72 keyname;
#X obj 50 216 pack 0 s;
#X obj 50 262 route 1 0, f 21;
#X obj 50 288 route Control_L Shift_L;
#X obj 111 369 route Control_L Shift_L;
#X obj 50 311 t b;
#X obj 120 311 t b;
#X obj 111 390 t b;
#X obj 178 390 t b;
#X obj 161 513 s shiftstate;
#X msg 50 335 1;
#X msg 111 413 0;
#X msg 178 412 0;
#X msg 120 333 1;
#X text 282 161 ARROW KEYS;
#X obj 396 524 symbol;
#X obj 589 541 outlet;
#X obj 517 541 outlet;
#X text 508 562 KEY DOWN;
#X text 587 561 KEY UP;
#X obj 607 511 s ol_keyup;
#X obj 589 451 symbol;
#X text 52 46 STRG + SHIFT, f 13;
#X obj 219 398 s \$0-up;
#X obj 537 246 r \$0-up;
#X obj 126 685 spigot;
#X msg 167 656 0;
#X msg 145 656 1;
#X obj 45 618 t b b b b;
#X msg 96 656 1;
#X msg 126 706 0;
#X obj 96 733 s \$0-ol_key_spigot;
#X obj 155 513 cnv 5 5 17 empty empty empty 20 12 0 14 -173398 -66577
0;
#X obj 390 575 cnv 5 5 17 empty empty empty 20 12 0 14 -173398 -66577
0;
#X obj 601 511 cnv 5 5 17 empty empty empty 20 12 0 14 -173398 -66577
0;
#X obj 56 760 cnv 5 5 17 empty empty empty 20 12 0 14 -173398 -66577
0;
#X obj 90 733 cnv 5 5 17 empty empty empty 20 12 0 14 -173398 -66577
0;
#X obj 120 619 cnv 5 5 17 empty empty empty 20 12 0 14 -260097 -66577
0;
#X obj 213 398 cnv 5 5 17 empty empty empty 20 12 0 14 -173398 -66577
0;
#X obj 531 246 cnv 5 5 17 empty empty empty 20 12 0 14 -260097 -66577
0;
#X text 413 680 this has to be created before everything else !, f
25;
#X obj 126 619 r ol_key_single_check;
#X obj 62 760 s ol_key_single_check;
#X obj 45 594 del 50;
#X obj 45 572 r check_ol_key_instances;
#X text 44 551 check for multiple instances;
#X obj 415 746 s check_ol_key_instances;
#X obj 570 746 print \$0-CB;
#X obj 511 542 cnv 5 5 17 empty empty empty 20 12 0 14 -102336 -66577
0;
#X obj 583 541 cnv 5 5 17 empty empty empty 20 12 0 14 -102336 -66577
0;
#X obj 573 41 cnv 10 170 20 empty empty needs_IEMGUTS_ZEXY 10 11 0
14 -4160 -262144 0;
#X obj 573 57 cnv 4 130 4 empty empty empty 10 11 0 14 -4160 -262144
0;
#X obj 512 71 cnv 14 230 15 empty empty empty 2 2 0 9 -253181 -66577
0;
#X msg 406 433 0;
#X msg 495 430 0;
#X msg 559 429 0;
#X msg 315 406 0;
#X obj 537 291 t b b;
#X obj 587 292 t b b;
#X obj 637 292 t b b;
#X obj 687 293 t b b;
#X msg 311 676 1;
#X obj 291 746 s \$0-mainspigot-r;
#X obj 50 240 spigot 1;
#X obj 112 240 cnv 5 5 17 empty empty empty 20 12 0 14 -260097 -66577
0;
#X obj 118 240 r \$0-mainspigot;
#X obj 1 1 cnv 3 68 13 \$0-bgnd \$0-bgnd-r Control_L 20 7 1 9 -241339
-66577 0;
#X obj 0 0 tgl 15 0 \$0-mainspigot \$0-mainspigot-r empty 17 7 0 10
-203904 -1 -1 1 1;
#X msg 225 702 pos 0 \$1;
#X msg 208 673 0;
#X msg 237 673 20;
#X msg 119 195 label \$1;
#X obj 119 216 s \$0-bgnd-r;
#X obj 650 746 s \$0-bgnd-r;
#X msg 650 725 label;
#X obj 683 615 cnv 5 5 17 empty empty empty 20 12 0 14 -173398 -66577
0;
#X obj 619 113 namecanvas \$0-ol_key;
#X obj 689 615 s \$0-ol_key;
#X obj 689 472 \$1;
#X obj 689 495 route float;
#X obj 689 517 != 0;
#X msg 689 563 donecanvasdialog 1 -1 \$1 0 -1 1 1 70 15 0 0 10 \, dirty
0, f 18;
#X obj 689 539 * 3;
#X obj 511 69 declare -stdpath iemguts -path iemguts;
#X obj 200 288 t a b;
#X obj 113 216 cnv 5 5 17 empty empty empty 20 12 0 14 -173398 -66577
0;
#X text 139 6 get rid of key repetitions when pressing down a key for
too long. also reports CTRL and STRG state. must be loaded once in
a PD instance to work "globally", f 101;
#X obj 640 406 r \$0-ol_key_spigot;
#X obj 634 406 cnv 5 5 17 empty empty empty 20 12 0 14 -260097 -66577
0;
#X obj 396 551 spigot;
#X obj 607 480 spigot;
#X obj 161 489 spigot;
#X obj 50 488 spigot;
#X obj 44 512 cnv 5 5 17 empty empty empty 20 12 0 14 -173398 -66577
0;
#X obj 50 512 s ctrlstate;
#X obj 117 449 r \$0-ol_key_spigot;
#X obj 111 449 cnv 5 5 17 empty empty empty 20 12 0 14 -260097 -66577
0;
#X obj 117 480 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 291 596 inlet;
#X obj 285 596 cnv 5 5 17 empty empty empty 20 12 0 14 -118750 -66577
0;
#X text 282 577 messages;
#X obj 291 618 route float;
#X obj 291 642 clip 0 1;
#X obj 377 618 cnv 5 5 17 empty empty empty 20 12 0 14 -260097 -66577
0;
#X obj 383 618 r ol_key_active;
#X obj 285 747 cnv 5 5 17 empty empty empty 20 12 0 14 -173398 -66577
0;
#X obj 512 88 cnv 14 230 15 empty empty empty 2 2 0 9 -253181 -66577
0;
#X obj 511 87 declare -stdlib zexy -lib zexy, f 38;
#X obj 145 68 operating_system;
#X obj 145 91 select linux windows macos;
#X obj 107 165 change;
#N canvas 42 92 450 300 UNIX 0;
#X obj 170 23 inlet;
#X obj 170 75 realtime;
#X obj 170 50 sel 0 1;
#X msg 103 115 stop;
#X obj 103 141 del 51;
#X obj 170 98 > 50;
#X obj 170 123 sel 1;
#X obj 145 219 outlet;
#X msg 170 191 1;
#X msg 103 164 0;
#X connect 0 0 2 0;
#X connect 1 0 5 0;
#X connect 2 0 1 0;
#X connect 2 0 4 0;
#X connect 2 1 1 1;
#X connect 2 1 3 0;
#X connect 3 0 4 0;
#X connect 4 0 9 0;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 8 0 7 0;
#X connect 9 0 7 0;
#X restore 50 165 pd UNIX;
#X msg 178 119 0;
#X msg 207 119 1;
#X obj 50 141 demux, f 10;
#X obj 118 119 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 313 44 windows and unix have different key repetition behaviours.
Windows only sends 1s on key-down \, whereas Unix sends alterations
of 1s and 0s, f 24;
#X obj 587 659 cnv 3 27 15 empty empty empty 20 12 0 14 -135105 -66577
0;
#X obj 586 685 del 1;
#X obj 586 658 init;
#X text 640 686 <--- IMPORTANT ! Else PD quits !;
#X text 638 649 [init] instead of [loadbang] allows dynamic creation
, f 28;
#X obj 580 709 cnv 5 5 17 empty empty empty 20 12 0 14 -173398 -66577
0;
#X obj 586 709 s \$0-lb;
#X obj 683 450 cnv 5 5 17 empty empty empty 20 12 0 14 -260097 -66577
0;
#X obj 689 450 r \$0-lb;
#X obj 139 43 cnv 5 5 17 empty empty empty 20 12 0 14 -260097 -66577
0;
#X obj 145 43 r \$0-lb;
#X obj 30 368 cnv 5 5 17 empty empty empty 20 12 0 14 -260097 -66577
0;
#X obj 36 368 r \$0-lb;
#X connect 1 0 75 0;
#X connect 2 0 6 0;
#X connect 2 1 11 0;
#X connect 3 0 9 0;
#X connect 3 1 12 0;
#X connect 4 0 13 0;
#X connect 5 0 6 0;
#X connect 6 0 4 0;
#X connect 7 0 14 0;
#X connect 8 0 9 0;
#X connect 9 0 7 0;
#X connect 11 0 44 0;
#X connect 12 0 44 0;
#X connect 13 0 11 0;
#X connect 14 0 12 0;
#X connect 15 0 44 0;
#X connect 16 0 44 0;
#X connect 17 0 2 0;
#X connect 17 1 3 0;
#X connect 17 2 27 0;
#X connect 17 3 28 0;
#X connect 17 4 44 0;
#X connect 18 0 24 0;
#X connect 19 0 20 0;
#X connect 20 0 18 0;
#X connect 21 0 25 0;
#X connect 22 0 23 0;
#X connect 23 0 21 0;
#X connect 24 0 15 0;
#X connect 25 0 16 0;
#X connect 26 0 86 0;
#X connect 26 1 87 0;
#X connect 26 2 88 0;
#X connect 26 3 89 0;
#X connect 26 4 50 0;
#X connect 27 0 20 0;
#X connect 27 1 15 0;
#X connect 28 0 23 0;
#X connect 28 1 16 0;
#X connect 29 0 143 0;
#X connect 29 1 100 0;
#X connect 29 1 30 1;
#X connect 30 0 92 0;
#X connect 31 0 32 0;
#X connect 31 1 33 0;
#X connect 32 0 34 0;
#X connect 32 1 35 0;
#X connect 32 2 113 0;
#X connect 33 0 36 0;
#X connect 33 1 37 0;
#X connect 33 2 52 0;
#X connect 34 0 39 0;
#X connect 35 0 42 0;
#X connect 36 0 40 0;
#X connect 37 0 41 0;
#X connect 39 0 121 0;
#X connect 40 0 121 0;
#X connect 41 0 120 0;
#X connect 42 0 120 0;
#X connect 44 0 46 0;
#X connect 44 0 118 0;
#X connect 50 0 45 0;
#X connect 50 0 119 0;
#X connect 53 0 26 0;
#X connect 54 0 59 0;
#X connect 55 0 54 1;
#X connect 56 0 54 1;
#X connect 57 0 56 0;
#X connect 57 1 71 0;
#X connect 57 2 55 0;
#X connect 57 3 58 0;
#X connect 58 0 60 0;
#X connect 59 0 60 0;
#X connect 70 0 54 0;
#X connect 72 0 57 0;
#X connect 73 0 72 0;
#X connect 82 0 14 0;
#X connect 83 0 24 0;
#X connect 84 0 25 0;
#X connect 85 0 13 0;
#X connect 86 0 85 0;
#X connect 86 1 5 0;
#X connect 87 0 82 0;
#X connect 87 1 8 0;
#X connect 88 0 83 0;
#X connect 88 1 19 0;
#X connect 89 0 84 0;
#X connect 89 1 22 0;
#X connect 90 0 91 0;
#X connect 92 0 31 0;
#X connect 94 0 92 1;
#X connect 97 0 91 0;
#X connect 98 0 97 0;
#X connect 99 0 97 0;
#X connect 100 0 101 0;
#X connect 103 0 102 0;
#X connect 107 0 108 0;
#X connect 108 0 109 0;
#X connect 109 0 111 0;
#X connect 110 0 106 0;
#X connect 111 0 110 0;
#X connect 113 0 17 0;
#X connect 113 1 41 0;
#X connect 113 1 40 0;
#X connect 116 0 118 1;
#X connect 116 0 119 1;
#X connect 118 0 10 0;
#X connect 119 0 49 0;
#X connect 120 0 38 0;
#X connect 121 0 123 0;
#X connect 124 0 121 1;
#X connect 124 0 120 1;
#X connect 124 0 126 0;
#X connect 127 0 130 0;
#X connect 130 0 131 0;
#X connect 131 0 91 0;
#X connect 133 0 130 0;
#X connect 137 0 138 0;
#X connect 138 0 141 0;
#X connect 138 1 142 0;
#X connect 138 2 141 0;
#X connect 139 0 30 0;
#X connect 140 0 30 0;
#X connect 141 0 144 0;
#X connect 142 0 144 0;
#X connect 143 0 140 0;
#X connect 143 1 139 0;
#X connect 144 0 143 1;
#X connect 147 0 152 0;
#X connect 148 0 147 0;
#X connect 148 0 90 0;
#X connect 148 0 75 0;
#X connect 148 0 103 0;
#X connect 154 0 107 0;
#X connect 156 0 137 0;
#X connect 158 0 40 0;
#X connect 158 0 41 0;
#X coords 0 0 1 1 70 15 0;
-------------- next part --------------
#N canvas 516 92 644 418 10;
#X obj 220 202 r ol_key;
#X obj 320 202 r ol_keyup;
#X obj 220 232 print DOWN;
#X obj 320 232 print UP;
#X obj 515 202 r shiftstate;
#X obj 463 371 cnv 10 130 20 empty empty needs_IEMGUTS 10 11 0 14 -4160
-262144 0;
#X obj 463 387 cnv 4 130 4 empty empty empty 10 11 0 14 -4160 -262144
0;
#X obj 464 45 namecanvas \$0-ol_help;
#N canvas 1140 50 626 800 init 0;
#X obj 470 388 cnv 8 120 25 empty empty empty 20 12 0 14 -204786 -66577
0;
#X obj 97 553 cnv 8 300 80 empty empty empty 20 12 0 14 -204786 -66577
0;
#X obj 461 76 cnv 8 120 26 empty empty empty 20 12 0 14 -204786 -66577
0;
#X obj 60 287 cnv 8 200 25 empty empty empty 20 12 0 14 -204786 -66577
0;
#X msg 245 33 vis 0 \, relocate \$3x\$4+0+0 0x0+\$1+\$2 \, vis 1 \,
editmode 0;
#X obj 245 55 s \$0-ol_help;
#X msg 118 64 520 50 600 400;
#X obj 118 219 s \$0-frame-r;
#X floatatom 118 176 5 0 0 0 - - -;
#X obj 28 450 s \$0-title-r;
#X msg 98 406 label \$1;
#X floatatom 263 143 5 0 0 0 - - -;
#X obj 263 183 s \$0-bgnd-r;
#X obj 56 119 del 10;
#X obj 56 99 t b b;
#X text 244 80 1.) set pos and size of main window;
#X msg 172 115 \$3;
#X obj 118 132 f;
#X text 151 143 minus frame sizes, f 11;
#X text 124 266 2.) set name of title;
#X obj 56 141 s \$0-lb;
#X obj 118 107 r \$0-lb;
#X obj 29 244 r \$0-lb;
#X obj 29 406 unpack 0 s;
#X text 175 530 3.) set description;
#X obj 263 262 s \$0-frame2-r;
#X obj 182 463 s \$0-text1-r;
#X obj 29 626 cnv 3 68 15 empty empty empty 2 7 0 10 -257985 -66577
0;
#N canvas 341 335 425 542 tosymbol 0;
#X obj 67 94 list length;
#X obj 67 42 list;
#X obj 101 226 list, f 7;
#X obj 67 175 f, f 10;
#X obj 154 175 + 1;
#X obj 67 150 until;
#X obj 101 251 list split;
#X msg 157 94 0;
#X obj 139 276 list split 1;
#X obj 139 361 list fromsymbol;
#X obj 139 302 route symbol float;
#X obj 191 329 makefilename %s;
#X obj 139 435 textfile;
#X msg 202 94 clear;
#X obj 139 387 list prepend add2;
#X obj 67 201 t b b b f;
#X obj 79 276 + 1;
#X obj 67 122 t f f;
#X obj 78 300 <;
#X obj 20 335 spigot;
#X msg 20 394 add2 32;
#X obj 139 411 list trim;
#X obj 67 335 f;
#X obj 67 361 sel 0;
#X obj 139 463 list tosymbol;
#X obj 67 68 t l l b b, f 23;
#X text 184 486 symbol out with correct spaces;
#X text 57 2 string in;
#X msg 136 25 #/zi 3 4 oo ä;
#X msg 229 25 1.23457e+19;
#X floatatom 315 28 5 0 0 0 - - -;
#X obj 67 22 cnv 13 34 15 empty empty empty 2 2 0 9 -163816 -66577
0;
#X obj 139 487 cnv 14 40 15 empty empty empty 2 2 0 9 -163840 -66577
0;
#X obj 67 21 inlet;
#X obj 139 486 outlet;
#X connect 0 0 17 0;
#X connect 1 0 25 0;
#X connect 2 0 6 0;
#X connect 3 0 4 0;
#X connect 3 0 15 0;
#X connect 4 0 3 1;
#X connect 5 0 3 0;
#X connect 6 1 8 0;
#X connect 7 0 3 1;
#X connect 8 0 10 0;
#X connect 9 0 14 0;
#X connect 10 0 9 0;
#X connect 10 1 11 0;
#X connect 11 0 9 0;
#X connect 12 0 24 0;
#X connect 13 0 12 0;
#X connect 14 0 21 0;
#X connect 15 0 22 0;
#X connect 15 1 19 0;
#X connect 15 2 2 0;
#X connect 15 3 6 1;
#X connect 15 3 16 0;
#X connect 16 0 18 0;
#X connect 17 0 5 0;
#X connect 17 1 18 1;
#X connect 18 0 19 1;
#X connect 18 0 22 1;
#X connect 19 0 20 0;
#X connect 20 0 12 0;
#X connect 21 0 12 0;
#X connect 22 0 23 0;
#X connect 23 0 12 0;
#X connect 24 0 34 0;
#X connect 25 0 0 0;
#X connect 25 1 2 1;
#X connect 25 2 7 0;
#X connect 25 3 13 0;
#X connect 28 0 1 0;
#X connect 29 0 1 0;
#X connect 30 0 1 0;
#X connect 33 0 1 0;
#X restore 28 625 pd tosymbol;
#X obj 199 390 r \$0-lb;
#X obj 199 413 t b b;
#X obj 268 463 s \$0-text2-r;
#X obj 354 463 s \$0-text3-r;
#X msg 28 488 bang;
#X msg 118 195 vis_size \$1 45;
#X msg 263 240 vis_size \$1 43;
#X text 349 389 init text labels;
#X obj 28 719 pack s 0 0;
#X msg 28 740 label \$1 \, label_pos \$2 \$3;
#X obj 531 524 unpack;
#X msg 531 500 29 -33;
#X floatatom 493 391 5 0 0 0 - - -;
#X floatatom 531 391 5 0 0 0 - - -;
#X obj 531 421 t b f;
#X msg 545 471 set \$1 \$2;
#X obj 493 471 t b b l;
#X text 503 370 x;
#X text 540 370 y;
#X text 466 352 4.) set label position;
#X obj 564 545 f;
#X msg 321 367 color \$1 \$1 \$1;
#X msg 263 161 vis_size \$1 55;
#X floatatom 79 174 5 0 0 0 - - -;
#X obj 118 153 - 13;
#X obj 263 122 + 10;
#X obj 263 219 - 254;
#X obj 56 56 t b f;
#X msg 260 390 -1.47533e+06;
#X msg 260 368 set \$1;
#X obj 56 11 loadbang;
#N canvas 36 456 791 300 better_colors 0;
#X obj 89 19 inlet;
#X obj 320 262 outlet;
#X obj 89 40 random 10;
#X obj 89 61 sel 0 1 2 3 4 5 6 7 8 9, f 83;
#X obj 320 239 expr ($f1*(-65536)+$f2*(-256)+$f3*(-1))-1;
#X msg 16 162 140 0 0;
#X msg 69 162 0 156 144;
#X msg 136 162 0 140 0;
#X msg 252 162 231 112 0;
#X msg 191 162 100 0 255;
#X msg 317 162 100 100 100;
#X msg 397 162 255 255 0;
#X msg 541 162 123 33 5;
#X msg 464 162 22 131 5;
#X msg 607 163 147 0 163;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 5 0;
#X connect 3 1 6 0;
#X connect 3 2 7 0;
#X connect 3 3 9 0;
#X connect 3 4 8 0;
#X connect 3 5 10 0;
#X connect 3 6 11 0;
#X connect 3 7 13 0;
#X connect 3 8 12 0;
#X connect 3 9 14 0;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 4 0;
#X connect 7 0 4 0;
#X connect 8 0 4 0;
#X connect 9 0 4 0;
#X connect 10 0 4 0;
#X connect 11 0 4 0;
#X connect 12 0 4 0;
#X connect 13 0 4 0;
#X connect 14 0 4 0;
#X restore 56 34 pd better_colors;
#X obj 56 78 del 50;
#X msg 170 17 bang;
#X text 200 114 width;
#X msg 29 428 label_pos \$1 21;
#X obj 479 124 list prepend set;
#X obj 479 146 list trim;
#X text 246 10 probably dangerous when initialized with loadbang!;
#X msg 29 383 86 ol_key;
#X obj 28 775 s \$0-text1-r;
#X obj 195 719 pack s 0 0;
#X obj 195 775 s \$0-text2-r;
#X obj 351 719 pack s 0 0;
#X msg 351 740 label \$1 \, label_pos \$2 \$3;
#X obj 351 775 s \$0-text3-r;
#X obj 28 648 list prepend 0;
#X msg 195 740 label \$1 \, label_pos \$2 \$3 \, label_font 1 11,
f 23;
#X obj 564 567 + 14;
#X obj 564 590 + 14;
#X obj 28 510 t b b b b b b b, f 20;
#X obj 28 672 route 1 2 3, f 66;
#X msg 86 532 2, f 1;
#X msg 125 531 1, f 1;
#X msg 47 532 3, f 1;
#X msg 153 608 empty;
#X obj 531 272 loadbang;
#X msg 531 293 set -26;
#X floatatom 73 292 5 0 0 0 - - -;
#X symbolatom 108 292 20 0 0 0 - - -;
#X obj 73 333 pack 0 s;
#X obj 108 310 t b s;
#X obj 73 354 t b l;
#X msg 113 354 set \$1 \$2;
#X msg 73 261 set 66;
#X msg 479 80 520 50 600 400;
#X obj 493 448 pack 0 -26;
#X msg 106 560 filter out key repetitions and send;
#X msg 135 584 keyvalues from one central source;
#X msg 260 413 size 1 \, pos 300 65 \, vis_size 1 1 \, color \$1 \$1
2 \, label_font 1 11 \, label, f 26;
#X connect 4 0 5 0;
#X connect 6 0 16 0;
#X connect 8 0 34 0;
#X connect 8 0 54 0;
#X connect 8 0 55 0;
#X connect 10 0 9 0;
#X connect 11 0 51 0;
#X connect 13 0 20 0;
#X connect 14 0 13 0;
#X connect 14 1 6 0;
#X connect 16 0 17 1;
#X connect 17 0 53 0;
#X connect 21 0 17 0;
#X connect 22 0 68 0;
#X connect 22 0 93 0;
#X connect 23 0 64 0;
#X connect 23 1 10 0;
#X connect 28 0 75 0;
#X connect 29 0 30 0;
#X connect 30 0 79 0;
#X connect 30 1 40 0;
#X connect 30 1 57 0;
#X connect 33 0 79 0;
#X connect 34 0 7 0;
#X connect 35 0 25 0;
#X connect 37 0 38 0;
#X connect 38 0 69 0;
#X connect 39 0 37 1;
#X connect 39 0 70 1;
#X connect 39 0 72 1;
#X connect 39 1 49 0;
#X connect 40 0 39 0;
#X connect 41 0 95 0;
#X connect 42 0 43 0;
#X connect 43 0 95 0;
#X connect 43 1 95 1;
#X connect 44 0 40 0;
#X connect 45 0 33 0;
#X connect 45 1 40 0;
#X connect 45 2 44 0;
#X connect 49 0 37 2;
#X connect 49 0 77 0;
#X connect 50 0 12 0;
#X connect 51 0 12 0;
#X connect 52 0 34 0;
#X connect 53 0 8 0;
#X connect 54 0 11 0;
#X connect 55 0 35 0;
#X connect 56 0 61 0;
#X connect 56 1 58 0;
#X connect 57 0 98 0;
#X connect 57 0 50 0;
#X connect 58 0 57 0;
#X connect 59 0 60 0;
#X connect 60 0 56 0;
#X connect 61 0 14 0;
#X connect 62 0 60 0;
#X connect 64 0 9 0;
#X connect 65 0 66 0;
#X connect 66 0 6 0;
#X connect 68 0 23 0;
#X connect 70 0 76 0;
#X connect 72 0 73 0;
#X connect 73 0 74 0;
#X connect 75 0 80 0;
#X connect 76 0 71 0;
#X connect 77 0 70 2;
#X connect 77 0 78 0;
#X connect 78 0 72 2;
#X connect 79 0 84 0;
#X connect 79 1 83 0;
#X connect 79 2 97 0;
#X connect 79 3 81 0;
#X connect 79 4 96 0;
#X connect 79 5 82 0;
#X connect 80 0 37 0;
#X connect 80 1 70 0;
#X connect 80 2 72 0;
#X connect 81 0 75 1;
#X connect 82 0 75 1;
#X connect 83 0 75 1;
#X connect 84 0 28 0;
#X connect 85 0 86 0;
#X connect 86 0 42 0;
#X connect 87 0 89 0;
#X connect 88 0 90 0;
#X connect 89 0 91 0;
#X connect 90 0 87 0;
#X connect 90 1 89 1;
#X connect 91 0 68 0;
#X connect 91 1 92 0;
#X connect 92 0 68 0;
#X connect 93 0 87 0;
#X connect 94 0 4 0;
#X connect 94 0 65 0;
#X connect 95 0 45 0;
#X connect 96 0 28 0;
#X connect 97 0 28 0;
#X connect 98 0 26 0;
#X connect 98 0 31 0;
#X connect 98 0 32 0;
#X restore 19 48 pd init;
#X obj 11 11 cnv 8 597 55 \$0-bgnd \$0-bgnd-r empty 0 20 0 4 -22530
-22530 0;
#X obj 15 16 cnv 8 587 45 \$0-frame \$0-frame-r empty 20 20 0 14 -1
-262144 0;
#X obj 16 17 cnv 15 250 43 \$0-title \$0-title-r ol_key 86 21 1 24
-236864 -64 0;
#X obj 268 17 cnv 15 333 43 \$0-frame2 \$0-frame2-r empty 25 18 1 24
-216384 -4160 0;
#X obj 300 65 cnv 1 1 1 \$0-text1 \$0-text1-r filter out key repetitions and send
29 -33 1 11 -22530 -66577 0;
#X obj 300 65 cnv 1 1 1 \$0-text2 \$0-text2-r keyvalues from one central source
29 -19 1 11 -22530 -66577 0;
#X obj 300 65 cnv 1 1 1 \$0-text3 \$0-text3-r empty 29 -5 1 11 -22530
-66577 0;
#X obj 257 126 ol_key 1;
#X text 259 144 [ol_key 1];
#X obj 19 119 cnv 1 62 1 empty empty ARGUMENT: 1 -7 0 12 -66577 -66577
0;
#X text 17 136 OBJECT / GOP mode (0 or 1);
#X obj 214 202 cnv 5 5 17 empty empty empty 20 12 0 14 -260626 -66577
0;
#X obj 314 202 cnv 5 5 17 empty empty empty 20 12 0 14 -260626 -66577
0;
#X obj 412 202 cnv 5 5 17 empty empty empty 20 12 0 14 -260626 -66577
0;
#X obj 509 202 cnv 5 5 17 empty empty empty 20 12 0 14 -260626 -66577
0;
#X obj 418 202 r ctrlstate;
#X obj 418 233 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 515 233 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 199 83 only one instance of ol_key should be present in any
PD instance, f 35;
#X symbolatom 294 317 10 0 0 0 - - -;
#X text 31 294 yet here's a second \, without GUI:;
#X text 305 292 [ol_key];
#X symbolatom 261 359 10 0 0 0 - - -;
#X text 328 358 key down;
#X text 360 314 key up;
#X text 31 325 but it's hard to tell which one will send to the global
receives. local outlets will always work though --->, f 29;
#X obj 261 377 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 294 336 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 367 124 click toggle to momentarily deactivate key capturing
, f 29;
#X text 337 124 <---;
#X obj 27 232 cnv 5 5 17 empty empty empty 20 12 0 14 -173398 -66577
0;
#X obj 33 201 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 33 232 s ol_key_active;
#X obj 261 293 ol_key;
#X text 52 194 de-/activate;
#X obj 261 271 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 281 270 de-/activate only this object;
#X text 52 205 globally;
#X text 17 174 --- GLOBAL SEND: ---;
#X text 213 174 ----------------------- GLOBAL RECEIVES: ----------------------
, f 63;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 4 0 26 0;
#X connect 24 0 25 0;
#X connect 28 0 36 0;
#X connect 31 0 35 0;
#X connect 40 0 41 0;
#X connect 42 0 31 0;
#X connect 42 1 28 0;
#X connect 44 0 42 0;


More information about the Pd-list mailing list