1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
|
#N canvas 18 26 722 672 10;
#X obj 43 91 keyname;
#X symbolatom 90 117 10 0 0 0 - - -;
#X obj 249 88 loadbang;
#X obj 249 108 symbol \$1;
#X msg 264 201 list a w s e d f t g z h u j k o l p + #;
#X text 595 225 FR;
#X text 607 251 ES;
#X text 582 202 DE_de DE_at;
#X text 557 177 EN_us EN_gb;
#X msg 281 226 list q z s e d f t g y h u j k o l p m $;
#X obj 249 132 select en us de fr es;
#X obj 43 116 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 61 116 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 43 502 swap;
#X obj 43 528 pack;
#X obj 43 605 outlet;
#X text 41 624 note on/off;
#X obj 150 396 * 12;
#X obj 176 90 key;
#X obj 89 374 nbx 5 14 -1e+37 1e+37 0 0 empty empty note 0 -8 0 10
-262144 -1 -1 3 256;
#X obj 150 375 nbx 5 14 -1e+37 1e+37 0 0 empty empty octave 0 -8 0
10 -262144 -1 -1 5 256;
#X obj 425 85 inlet;
#X obj 425 106 list trim;
#X obj 426 124 list prepend symbol;
#X obj 426 142 list trim;
#X text 469 88 digest selector and symbol;
#N canvas 1054 261 233 228 octave 0;
#X obj 47 80 moses 49;
#X text 127 98 >=;
#X text 52 96 <;
#X obj 48 111 select 48;
#X obj 129 133 - 49;
#X obj 48 195 outlet;
#X obj 48 47 inlet;
#X obj 129 112 moses 58;
#X msg 48 132 9;
#X connect 0 0 3 0;
#X connect 0 1 7 0;
#X connect 3 0 8 0;
#X connect 4 0 5 0;
#X connect 6 0 0 0;
#X connect 7 0 4 0;
#X connect 8 0 5 0;
#X restore 150 333 pd octave;
#N canvas 624 223 411 391 findsymbol 0;
#X obj 61 37 inlet;
#X obj 222 35 inlet;
#X text 221 12 list of symbols;
#X text 58 15 symbols;
#X obj 60 125 list split 1;
#X obj 60 103 list;
#X obj 60 247 f;
#X msg 260 113 0;
#X obj 243 189 f;
#X obj 274 189 + 1;
#X obj 187 136 list;
#X obj 38 163 t b a b;
#X obj 61 192 select sym;
#X obj 61 63 t b a b a;
#X obj 60 328 outlet;
#X obj 238 304 symbol;
#X obj 239 327 outlet;
#X text 58 346 index of found symbol;
#X text 237 346 symbol not found;
#X obj 60 276 t a b;
#X obj 186 116 spigot;
#X msg 224 91 1;
#X msg 191 92 0;
#X connect 0 0 13 0;
#X connect 1 0 5 1;
#X connect 4 0 11 0;
#X connect 4 1 10 1;
#X connect 4 2 15 0;
#X connect 5 0 4 0;
#X connect 6 0 19 0;
#X connect 7 0 8 1;
#X connect 8 0 6 1;
#X connect 8 0 9 0;
#X connect 9 0 8 1;
#X connect 10 0 4 0;
#X connect 11 0 20 0;
#X connect 11 1 12 0;
#X connect 11 2 8 0;
#X connect 12 0 6 0;
#X connect 13 0 5 0;
#X connect 13 1 12 1;
#X connect 13 2 7 0;
#X connect 13 2 21 0;
#X connect 13 3 15 1;
#X connect 15 0 16 0;
#X connect 19 0 14 0;
#X connect 19 1 22 0;
#X connect 20 0 10 0;
#X connect 21 0 20 1;
#X connect 22 0 20 1;
#X restore 90 239 pd findsymbol;
#X obj 151 302 swap;
#X msg 151 282 0;
#X obj 27 11 cnv 15 650 40 empty empty kbd 10 10 0 14 -233017 -66577
0;
#X obj 151 263 t b b;
#X obj 43 480 spigot;
#X obj 88 418 t f b;
#X msg 120 442 1;
#X msg 183 443 0;
#N canvas 815 329 482 457 display 0;
#X msg 211 148 list c c# d d# e f f# g g# a a# b;
#X obj 165 28 loadbang;
#X obj 142 233 list split;
#X obj 209 208 % 12;
#X obj 142 257 list split 1;
#X obj 274 214 / 12;
#X obj 274 237 int;
#X obj 142 210 list;
#X obj 142 149 t b a a;
#X obj 63 31 inlet;
#X obj 63 56 unpack;
#X obj 63 85 upp.dilemma;
#X obj 63 397 outlet;
#X obj 142 296 list append;
#X msg 63 328 symbol;
#X msg 142 328 symbol \$1\$2;
#X obj 274 258 - 2;
#X connect 0 0 7 1;
#X connect 1 0 0 0;
#X connect 1 0 14 0;
#X connect 2 1 4 0;
#X connect 3 0 2 1;
#X connect 4 0 13 0;
#X connect 5 0 6 0;
#X connect 6 0 16 0;
#X connect 7 0 2 0;
#X connect 8 0 7 0;
#X connect 8 1 3 0;
#X connect 8 2 5 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 10 1 11 1;
#X connect 11 0 14 0;
#X connect 11 1 8 0;
#X connect 13 0 15 0;
#X connect 14 0 12 0;
#X connect 15 0 12 0;
#X connect 16 0 13 1;
#X restore 341 473 pd display;
#X obj 89 398 +;
#X obj 341 297 loadbang;
#X msg 341 319 5;
#X text 371 321 default octave;
#X obj 374 519 nbx 2 14 -3 9 0 0 empty empty empty 0 -8 0 9 -262144
-1 -1 3 256;
#X obj 337 500 hradio 15 1 0 4 empty empty EN_DE_FR_ES 3 10 0 8 -262144
-258113 -1 1;
#X obj 237 541 route 0 1 2 3;
#X msg 249 175 list a w s e d f t g y h u j k o l p;
#X msg 303 251 list a w s e d f g y h u j k o l p ;
#X text 34 53 Caution: there are key (chord) combinations \, that are
not possible \, e.g. a-d-k simultaneously on the US keyboard.;
#X obj 337 517 cnv 5 40 15 empty empty empty 20 12 0 14 -233017 -66577
0;
#X symbolatom 349 519 4 0 0 0 - - -;
#X obj 338 520 bng 10 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 372 447 - 2;
#N canvas 838 104 511 661 fltrep 0;
#X obj 227 153 inlet;
#X obj 79 607 outlet;
#X obj 250 339 timer;
#X obj 372 413 unpack;
#X obj 296 413 unpack;
#X obj 411 447 == 0;
#X obj 335 449 == 1;
#X obj 296 449 ==;
#X obj 335 470 *;
#X obj 296 470 *;
#X obj 250 359 < 10;
#X obj 372 275 list;
#X obj 64 282 spigot;
#X obj 250 550 == 0;
#X obj 250 602 select 0;
#X text 240 529 1...is repetition;
#X obj 250 495 *;
#X obj 250 310 t b b a;
#X text 43 20 Key repetitions are characterized by a sequence of key-up/key-down
combinations in <10ms time intervals.;
#X text 44 54 We filter these by delaying a key-stroke for 10ms \,
checking if there is any close follow-up key-down of the same key.
;
#X obj 78 586 pack;
#X obj 64 324 unpack;
#X text 294 396 check if old and new match;
#X text 254 293 new;
#X text 377 294 old;
#X obj 37 359 upp.dilemma;
#X text 45 92 It is sufficient to delay key-up messages only \, therefore
let pass unfiltered key-downs to avoid unnecessary latency.;
#X obj 37 500 list;
#X obj 37 525 t a b;
#X text 76 525 clear;
#X obj 37 549 route float;
#X obj 226 177 t a a b a;
#X obj 250 572 t a a;
#X obj 37 441 pipe 10;
#X msg 117 442 clear;
#X connect 0 0 31 0;
#X connect 2 0 10 0;
#X connect 3 0 7 1;
#X connect 3 1 5 0;
#X connect 4 0 7 0;
#X connect 4 1 6 0;
#X connect 5 0 8 1;
#X connect 6 0 8 0;
#X connect 7 0 9 0;
#X connect 8 0 9 1;
#X connect 9 0 16 1;
#X connect 10 0 16 0;
#X connect 11 0 3 0;
#X connect 12 0 21 0;
#X connect 13 0 32 0;
#X connect 14 0 34 0;
#X connect 16 0 13 0;
#X connect 17 0 2 0;
#X connect 17 1 2 1;
#X connect 17 2 4 0;
#X connect 20 0 1 0;
#X connect 21 0 25 0;
#X connect 21 1 20 1;
#X connect 21 1 25 1;
#X connect 25 0 33 0;
#X connect 25 1 27 0;
#X connect 27 0 28 0;
#X connect 28 0 30 0;
#X connect 28 1 27 1;
#X connect 30 0 20 0;
#X connect 31 0 12 0;
#X connect 31 1 17 0;
#X connect 31 1 11 1;
#X connect 31 2 11 0;
#X connect 32 0 14 0;
#X connect 32 0 12 1;
#X connect 33 0 27 0;
#X connect 34 0 33 0;
#X restore 42 573 pd fltrep;
#X text 564 15 grrrr.org \, 2012;
#X text 34 32 play MIDI notes with octave shift and inhibited repetition
;
#X connect 0 0 11 0;
#X connect 0 0 12 0;
#X connect 0 1 1 0;
#X connect 1 0 27 0;
#X connect 2 0 3 0;
#X connect 3 0 10 0;
#X connect 4 0 27 1;
#X connect 9 0 27 1;
#X connect 10 0 44 0;
#X connect 10 1 44 0;
#X connect 10 2 4 0;
#X connect 10 3 9 0;
#X connect 10 4 45 0;
#X connect 10 5 44 0;
#X connect 11 0 32 0;
#X connect 13 0 14 0;
#X connect 13 1 14 1;
#X connect 14 0 51 0;
#X connect 17 0 37 1;
#X connect 18 0 28 1;
#X connect 19 0 37 0;
#X connect 20 0 17 0;
#X connect 20 0 50 0;
#X connect 21 0 22 0;
#X connect 22 0 23 0;
#X connect 23 0 24 0;
#X connect 24 0 3 0;
#X connect 26 0 20 0;
#X connect 27 0 19 0;
#X connect 27 1 31 0;
#X connect 28 0 26 0;
#X connect 29 0 28 0;
#X connect 31 0 29 0;
#X connect 31 1 35 0;
#X connect 32 0 13 0;
#X connect 33 0 13 1;
#X connect 33 1 34 0;
#X connect 34 0 32 1;
#X connect 35 0 32 1;
#X connect 36 0 48 0;
#X connect 36 0 49 0;
#X connect 37 0 33 0;
#X connect 38 0 39 0;
#X connect 39 0 20 0;
#X connect 42 0 43 0;
#X connect 43 0 44 0;
#X connect 43 1 4 0;
#X connect 43 2 9 0;
#X connect 43 3 45 0;
#X connect 44 0 27 1;
#X connect 45 0 27 1;
#X connect 50 0 41 0;
#X connect 51 0 15 0;
#X connect 51 0 36 0;
#X coords 0 -1 1 1 90 35 1 310 500;
|