Something went wrong on our end
Select Git revision
bf-activityscope.pd
-
BERTHAUT Florent authoredBERTHAUT Florent authored
bf-activityscope.pd 16.58 KiB
#N canvas 813 161 1037 655 10;
#X obj 392 244 inlet~;
#N canvas 271 510 1115 633 hann-window 1;
#N canvas 0 50 450 300 (subpatch) 0;
#X array \$0-hann 1024 float 0;
#X coords 0 1 1023 0 200 120 1;
#X restore 322 72 graph;
#X msg 200 86 0;
#X obj 94 135 osc~;
#X obj 94 87 samplerate~;
#X obj 94 158 *~ -0.5;
#X obj 94 181 +~ 0.5;
#X obj 86 206 tabwrite~ \$0-hann;
#X obj 86 64 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 365 44 Hann window;
#X text 142 133 period 512;
#X text 84 39 recalculate Hann;
#X text 119 54 window table;
#X obj 43 21 loadbang;
#X obj 94 111 / 1024;
#X connect 1 0 2 1;
#X connect 2 0 4 0;
#X connect 3 0 13 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 7 0 3 0;
#X connect 7 0 1 0;
#X connect 7 0 6 0;
#X connect 12 0 7 0;
#X connect 13 0 2 0;
#X restore 469 246 pd hann-window;
#N canvas 893 252 817 650 fft-analysis1 0;
#X obj 15 164 *~;
#X obj 14 99 inlet~;
#X obj 15 218 rfft~;
#X obj 36 140 tabreceive~ \$0-hann;
#X obj 14 306 *~;
#X obj 56 306 *~;
#X obj 256 372 loadbang;
#X msg 264 397 \; pd dsp 1;
#X obj 15 332 +~;
#X obj 281 563 outlet;
#X obj 16 384 rmstodb~;
#X text 76 99 re-block to the new block size.;
#X text 74 168 perform windowing;
#X text 66 219 real fft;
#X text 94 308 Calculate the magnitude;
#X text 343 410 periodically graph the output;
#X obj 13 568 tabwrite~ \$0-spec;
#X obj 15 360 *~ 5e-06;
#X obj 256 481 t b b;
#X obj 225 379 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 15 8 block~ 512;
#X obj 256 456 metro 50;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 2 0 4 0;
#X connect 2 0 4 1;
#X connect 2 1 5 0;
#X connect 2 1 5 1;
#X connect 3 0 0 1;
#X connect 4 0 8 0;
#X connect 5 0 8 1;
#X connect 6 0 7 0;
#X connect 6 0 21 0;
#X connect 8 0 17 0;
#X connect 10 0 16 0;
#X connect 17 0 10 0;
#X connect 18 0 9 0;
#X connect 18 1 16 0;
#X connect 19 0 21 0;
#X connect 21 0 18 0;
#X restore 391 288 pd fft-analysis1;
#N canvas 0 50 450 278 (subpatch) 0;
#X array \$0-spec 512 float 4;
#X coords 0 100 511 0 200 140 1 0 0;
#X restore 104 113 graph;
#N canvas 0 50 450 278 (subpatch) 0;
#X array \$0-activity 12 float 4;
#X coords 0 500 11 0 200 140 1 0 0;
#X restore 103 273 graph;
#X text 504 371 comment;
#N canvas 579 222 1280 699 accumulatebands 0;
#X obj 285 60 inlet;
#X msg 42 334 0;
#X obj 15 311 t f b;
#X msg 161 334 1;
#X obj 134 311 t f b;
#X text 329 64 bang to send outputs;
#X obj 517 538 outlet;
#X obj 882 533 outlet;
#X text 927 532 table index to write;
#X text 561 539 table value to write;
#X obj 255 312 t f b;
#X obj 376 312 t f b;
#X obj 496 313 t f b;
#X obj 614 313 t f b;
#X msg 282 335 2;
#X msg 403 335 3;
#X msg 523 336 4;
#X msg 641 336 5;
#X obj 731 313 t f b;
#X obj 851 314 t f b;
#X obj 969 314 t f b;
#X obj 1087 316 t f b;
#X msg 758 336 6;
#X msg 878 337 7;
#X msg 996 337 8;
#X msg 1114 339 9;
#X text 137 495 smoothing coeff;
#X obj 94 522 s \$0-smth;
#X obj 95 475 loadbang;
#N canvas 545 261 727 397 pksmth 0;
#X obj 75 19 inlet;
#X obj 278 21 inlet;
#X text 463 40 limit to [0.0 \, 1.0];
#X text 319 20 smoothing coefficient (higher == more smoothing);
#X obj 126 265 outlet;
#X text 113 21 input to be smoothed;
#X text 177 266 smoothed value, f 10;
#X obj 132 149 * 0.1;
#X obj 132 175 +;
#X obj 166 176 * 0.9;
#X obj 207 139 -;
#X obj 206 110 swap 1;
#X obj 126 208 f;
#X obj 132 74 moses 999999;
#X text 75 349 smoothing which jumps immediately to higher values;
#X connect 0 0 13 0;
#X connect 1 0 11 0;
#X connect 1 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 10 0 7 1;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 9 0;
#X connect 12 0 13 1;
#X connect 12 0 4 0;
#X connect 13 0 7 0;
#X connect 13 1 12 0;
#X restore 15 410 pd pksmth;
#X obj 78 334 r \$0-smth;
#N canvas 0 50 727 397 pksmth 0;
#X obj 75 19 inlet;
#X obj 278 21 inlet;
#X text 463 40 limit to [0.0 \, 1.0];
#X text 319 20 smoothing coefficient (higher == more smoothing);
#X obj 126 265 outlet;
#X text 113 21 input to be smoothed;
#X text 177 266 smoothed value, f 10;
#X obj 132 149 * 0.1;
#X obj 132 175 +;
#X obj 166 176 * 0.9;
#X obj 207 139 -;
#X obj 206 110 swap 1;
#X obj 126 208 f;
#X obj 132 74 moses 999999;
#X text 75 349 smoothing which jumps immediately to higher values;
#X connect 0 0 13 0;
#X connect 1 0 11 0;
#X connect 1 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 10 0 7 1;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 9 0;
#X connect 12 0 13 1;
#X connect 12 0 4 0;
#X connect 13 0 7 0;
#X connect 13 1 12 0;
#X restore 129 411 pd pksmth;
#X obj 192 335 r \$0-smth;
#N canvas 0 50 727 397 pksmth 0;
#X obj 75 19 inlet;
#X obj 278 21 inlet;
#X text 463 40 limit to [0.0 \, 1.0];
#X text 319 20 smoothing coefficient (higher == more smoothing);
#X obj 126 265 outlet;
#X text 113 21 input to be smoothed;
#X text 177 266 smoothed value, f 10;
#X obj 132 149 * 0.1;
#X obj 132 175 +;
#X obj 166 176 * 0.9;
#X obj 207 139 -;
#X obj 206 110 swap 1;
#X obj 126 208 f;
#X obj 132 74 moses 999999;
#X text 75 349 smoothing which jumps immediately to higher values;
#X connect 0 0 13 0;
#X connect 1 0 11 0;
#X connect 1 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 10 0 7 1;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 9 0;
#X connect 12 0 13 1;
#X connect 12 0 4 0;
#X connect 13 0 7 0;
#X connect 13 1 12 0;
#X restore 249 411 pd pksmth;
#X obj 312 335 r \$0-smth;
#N canvas 0 50 727 397 pksmth 0;
#X obj 75 19 inlet;
#X obj 278 21 inlet;
#X text 463 40 limit to [0.0 \, 1.0];
#X text 319 20 smoothing coefficient (higher == more smoothing);
#X obj 126 265 outlet;
#X text 113 21 input to be smoothed;
#X text 177 266 smoothed value, f 10;
#X obj 132 149 * 0.1;
#X obj 132 175 +;
#X obj 166 176 * 0.9;
#X obj 207 139 -;
#X obj 206 110 swap 1;
#X obj 126 208 f;
#X obj 132 74 moses 999999;
#X text 75 349 smoothing which jumps immediately to higher values;
#X connect 0 0 13 0;
#X connect 1 0 11 0;
#X connect 1 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 10 0 7 1;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 9 0;
#X connect 12 0 13 1;
#X connect 12 0 4 0;
#X connect 13 0 7 0;
#X connect 13 1 12 0;
#X restore 372 411 pd pksmth;
#X obj 435 335 r \$0-smth;
#N canvas 0 50 727 397 pksmth 0;
#X obj 75 19 inlet;
#X obj 278 21 inlet;
#X text 463 40 limit to [0.0 \, 1.0];
#X text 319 20 smoothing coefficient (higher == more smoothing);
#X obj 126 265 outlet;
#X text 113 21 input to be smoothed;
#X text 177 266 smoothed value, f 10;
#X obj 132 149 * 0.1;
#X obj 132 175 +;
#X obj 166 176 * 0.9;
#X obj 207 139 -;
#X obj 206 110 swap 1;
#X obj 126 208 f;
#X obj 132 74 moses 999999;
#X text 75 349 smoothing which jumps immediately to higher values;
#X connect 0 0 13 0;
#X connect 1 0 11 0;
#X connect 1 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 10 0 7 1;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 9 0;
#X connect 12 0 13 1;
#X connect 12 0 4 0;
#X connect 13 0 7 0;
#X connect 13 1 12 0;
#X restore 496 413 pd pksmth;
#X obj 559 337 r \$0-smth;
#N canvas 0 50 727 397 pksmth 0;
#X obj 75 19 inlet;
#X obj 278 21 inlet;
#X text 463 40 limit to [0.0 \, 1.0];
#X text 319 20 smoothing coefficient (higher == more smoothing);
#X obj 126 265 outlet;
#X text 113 21 input to be smoothed;
#X text 177 266 smoothed value, f 10;
#X obj 132 149 * 0.1;
#X obj 132 175 +;
#X obj 166 176 * 0.9;
#X obj 207 139 -;
#X obj 206 110 swap 1;
#X obj 126 208 f;
#X obj 132 74 moses 999999;
#X text 75 349 smoothing which jumps immediately to higher values;
#X connect 0 0 13 0;
#X connect 1 0 11 0;
#X connect 1 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 10 0 7 1;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 9 0;
#X connect 12 0 13 1;
#X connect 12 0 4 0;
#X connect 13 0 7 0;
#X connect 13 1 12 0;
#X restore 607 413 pd pksmth;
#X obj 670 337 r \$0-smth;
#N canvas 0 50 727 397 pksmth 0;
#X obj 75 19 inlet;
#X obj 278 21 inlet;
#X text 463 40 limit to [0.0 \, 1.0];
#X text 319 20 smoothing coefficient (higher == more smoothing);
#X obj 126 265 outlet;
#X text 113 21 input to be smoothed;
#X text 177 266 smoothed value, f 10;
#X obj 132 149 * 0.1;
#X obj 132 175 +;
#X obj 166 176 * 0.9;
#X obj 207 139 -;
#X obj 206 110 swap 1;
#X obj 126 208 f;
#X obj 132 74 moses 999999;
#X text 75 349 smoothing which jumps immediately to higher values;
#X connect 0 0 13 0;
#X connect 1 0 11 0;
#X connect 1 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 10 0 7 1;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 9 0;
#X connect 12 0 13 1;
#X connect 12 0 4 0;
#X connect 13 0 7 0;
#X connect 13 1 12 0;
#X restore 725 411 pd pksmth;
#X obj 788 335 r \$0-smth;
#N canvas 0 50 727 397 pksmth 0;
#X obj 75 19 inlet;
#X obj 278 21 inlet;
#X text 463 40 limit to [0.0 \, 1.0];
#X text 319 20 smoothing coefficient (higher == more smoothing);
#X obj 126 265 outlet;
#X text 113 21 input to be smoothed;
#X text 177 266 smoothed value, f 10;
#X obj 132 149 * 0.1;
#X obj 132 175 +;
#X obj 166 176 * 0.9;
#X obj 207 139 -;
#X obj 206 110 swap 1;
#X obj 126 208 f;
#X obj 132 74 moses 999999;
#X text 75 349 smoothing which jumps immediately to higher values;
#X connect 0 0 13 0;
#X connect 1 0 11 0;
#X connect 1 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 10 0 7 1;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 9 0;
#X connect 12 0 13 1;
#X connect 12 0 4 0;
#X connect 13 0 7 0;
#X connect 13 1 12 0;
#X restore 845 412 pd pksmth;
#X obj 908 336 r \$0-smth;
#N canvas 0 50 727 397 pksmth 0;
#X obj 75 19 inlet;
#X obj 278 21 inlet;
#X text 463 40 limit to [0.0 \, 1.0];
#X text 319 20 smoothing coefficient (higher == more smoothing);
#X obj 126 265 outlet;
#X text 113 21 input to be smoothed;
#X text 177 266 smoothed value, f 10;
#X obj 132 149 * 0.1;
#X obj 132 175 +;
#X obj 166 176 * 0.9;
#X obj 207 139 -;
#X obj 206 110 swap 1;
#X obj 126 208 f;
#X obj 132 74 moses 999999;
#X text 75 349 smoothing which jumps immediately to higher values;
#X connect 0 0 13 0;
#X connect 1 0 11 0;
#X connect 1 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 10 0 7 1;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 9 0;
#X connect 12 0 13 1;
#X connect 12 0 4 0;
#X connect 13 0 7 0;
#X connect 13 1 12 0;
#X restore 964 412 pd pksmth;
#X obj 1027 336 r \$0-smth;
#N canvas 0 50 727 397 pksmth 0;
#X obj 75 19 inlet;
#X obj 278 21 inlet;
#X text 463 40 limit to [0.0 \, 1.0];
#X text 319 20 smoothing coefficient (higher == more smoothing);
#X obj 126 265 outlet;
#X text 113 21 input to be smoothed;
#X text 177 266 smoothed value, f 10;
#X obj 132 149 * 0.1;
#X obj 132 175 +;
#X obj 166 176 * 0.9;
#X obj 207 139 -;
#X obj 206 110 swap 1;
#X obj 126 208 f;
#X obj 132 74 moses 999999;
#X text 75 349 smoothing which jumps immediately to higher values;
#X connect 0 0 13 0;
#X connect 1 0 11 0;
#X connect 1 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 10 0 7 1;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 9 0;
#X connect 12 0 13 1;
#X connect 12 0 4 0;
#X connect 13 0 7 0;
#X connect 13 1 12 0;
#X restore 1087 415 pd pksmth;
#X obj 1143 339 r \$0-smth;
#X obj 285 88 t b b b b b b b b b b b b, f 140;
#X obj 1216 321 t f b;
#X obj 1334 323 t f b;
#N canvas 0 50 727 397 pksmth 0;
#X obj 75 19 inlet;
#X obj 278 21 inlet;
#X text 463 40 limit to [0.0 \, 1.0];
#X text 319 20 smoothing coefficient (higher == more smoothing);
#X obj 126 265 outlet;
#X text 113 21 input to be smoothed;
#X text 177 266 smoothed value, f 10;
#X obj 132 149 * 0.1;
#X obj 132 175 +;
#X obj 166 176 * 0.9;
#X obj 207 139 -;
#X obj 206 110 swap 1;
#X obj 126 208 f;
#X obj 132 74 moses 999999;
#X text 75 349 smoothing which jumps immediately to higher values;
#X connect 0 0 13 0;
#X connect 1 0 11 0;
#X connect 1 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 10 0 7 1;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 9 0;
#X connect 12 0 13 1;
#X connect 12 0 4 0;
#X connect 13 0 7 0;
#X connect 13 1 12 0;
#X restore 1211 419 pd pksmth;
#X obj 1274 367 r \$0-smth;
#N canvas 0 50 727 397 pksmth 0;
#X obj 75 19 inlet;
#X obj 278 21 inlet;
#X text 463 40 limit to [0.0 \, 1.0];
#X text 319 20 smoothing coefficient (higher == more smoothing);
#X obj 126 265 outlet;
#X text 113 21 input to be smoothed;
#X text 177 266 smoothed value, f 10;
#X obj 132 149 * 0.1;
#X obj 132 175 +;
#X obj 166 176 * 0.9;
#X obj 207 139 -;
#X obj 206 110 swap 1;
#X obj 126 208 f;
#X obj 132 74 moses 999999;
#X text 75 349 smoothing which jumps immediately to higher values;
#X connect 0 0 13 0;
#X connect 1 0 11 0;
#X connect 1 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 9 0 8 1;
#X connect 10 0 7 1;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 9 0;
#X connect 12 0 13 1;
#X connect 12 0 4 0;
#X connect 13 0 7 0;
#X connect 13 1 12 0;
#X restore 1334 422 pd pksmth;
#X obj 1390 370 r \$0-smth;
#X msg 1242 368 10;
#X msg 1361 399 11;
#X text 50 626 collects bins from a table (\$0-spec-ar) containing
512 values of a magnitude spectrum \, and accumulates them into 12
approximately bark-spaced bands. These values are also passed through
smoothing with instant peak reaction.;
#X obj 15 149 array sum \$0-spec 0 4;
#X obj 134 177 array sum \$0-spec 4 5;
#X obj 255 205 array sum \$0-spec 9 6;
#X obj 376 235 array sum \$0-spec 15 6;
#X obj 496 163 array sum \$0-spec 21 9;
#X obj 614 191 array sum \$0-spec 30 10;
#X obj 731 219 array sum \$0-spec 40 14;
#X obj 851 249 array sum \$0-spec 54 19;
#X obj 969 150 array sum \$0-spec 73 29;
#X obj 1087 178 array sum \$0-spec 102 47;
#X obj 1216 222 array sum \$0-spec 149 72;
#X obj 1334 250 array sum \$0-spec 221 150;
#X obj 15 376 * 37.5;
#X obj 130 375 * 30;
#X obj 252 370 * 25;
#X obj 372 371 * 25;
#X obj 495 373 * 16.7;
#X obj 609 377 * 15;
#X obj 726 373 * 10.7;
#X obj 847 371 * 7.9;
#X obj 968 371 * 5.2;
#X obj 1086 376 * 3.2;
#X obj 1203 377 * 2.1;
#X msg 95 495 0.4;
#X connect 0 0 49 0;
#X connect 1 0 7 0;
#X connect 2 0 71 0;
#X connect 2 1 1 0;
#X connect 3 0 7 0;
#X connect 4 0 72 0;
#X connect 4 1 3 0;
#X connect 10 0 73 0;
#X connect 10 1 14 0;
#X connect 11 0 74 0;
#X connect 11 1 15 0;
#X connect 12 0 75 0;
#X connect 12 1 16 0;
#X connect 13 0 76 0;
#X connect 13 1 17 0;
#X connect 14 0 7 0;
#X connect 15 0 7 0;
#X connect 16 0 7 0;
#X connect 17 0 7 0;
#X connect 18 0 77 0;
#X connect 18 1 22 0;
#X connect 19 0 78 0;
#X connect 19 1 23 0;
#X connect 20 0 79 0;
#X connect 20 1 24 0;
#X connect 21 0 80 0;
#X connect 21 1 25 0;
#X connect 22 0 7 0;
#X connect 23 0 7 0;
#X connect 24 0 7 0;
#X connect 25 0 7 0;
#X connect 28 0 82 0;
#X connect 29 0 6 0;
#X connect 30 0 29 1;
#X connect 31 0 6 0;
#X connect 32 0 31 1;
#X connect 33 0 6 0;
#X connect 34 0 33 1;
#X connect 35 0 6 0;
#X connect 36 0 35 1;
#X connect 37 0 6 0;
#X connect 38 0 37 1;
#X connect 39 0 6 0;
#X connect 40 0 39 1;
#X connect 41 0 6 0;
#X connect 42 0 41 1;
#X connect 43 0 6 0;
#X connect 44 0 43 1;
#X connect 45 0 6 0;
#X connect 46 0 45 1;
#X connect 47 0 6 0;
#X connect 48 0 47 1;
#X connect 49 0 59 0;
#X connect 49 1 60 0;
#X connect 49 2 61 0;
#X connect 49 3 62 0;
#X connect 49 4 63 0;
#X connect 49 5 64 0;
#X connect 49 6 65 0;
#X connect 49 7 66 0;
#X connect 49 8 67 0;
#X connect 49 9 68 0;
#X connect 49 10 69 0;
#X connect 49 11 70 0;
#X connect 50 0 81 0;
#X connect 50 1 56 0;
#X connect 51 0 54 0;
#X connect 51 1 57 0;
#X connect 52 0 6 0;
#X connect 53 0 52 1;
#X connect 54 0 6 0;
#X connect 55 0 54 1;
#X connect 56 0 7 0;
#X connect 57 0 7 0;
#X connect 59 0 2 0;
#X connect 60 0 4 0;
#X connect 61 0 10 0;
#X connect 62 0 11 0;
#X connect 63 0 12 0;
#X connect 64 0 13 0;
#X connect 65 0 18 0;
#X connect 66 0 19 0;
#X connect 67 0 20 0;
#X connect 68 0 21 0;
#X connect 69 0 50 0;
#X connect 70 0 51 0;
#X connect 71 0 29 0;
#X connect 72 0 31 0;
#X connect 73 0 33 0;
#X connect 74 0 35 0;
#X connect 75 0 37 0;
#X connect 76 0 39 0;
#X connect 77 0 41 0;
#X connect 78 0 43 0;
#X connect 79 0 45 0;
#X connect 80 0 47 0;
#X connect 81 0 52 0;
#X connect 82 0 27 0;
#X restore 390 339 pd accumulatebands;
#X text 402 69 This patch displays the "activity" of an audio signal.
;
#X text 400 100 It uses a 1024 pt FFT to make a a 12 band approximately
bark-spaced filter bank. These bands are graphed such that they react
immediately to loud signals \, and then smoothly decay Luke Dahl \,
2016;
#X obj 404 471 outlet;
#X obj 400 442 pack f f;
#X obj 401 418 swap;
#X obj 389 360 / 500;
#X obj 392 389 clip 0 1;
#X connect 0 0 2 0;
#X connect 2 0 6 0;
#X connect 6 0 12 0;
#X connect 6 1 11 1;
#X connect 10 0 9 0;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 13 0;
#X connect 13 0 11 0;
#X coords 0 655 1 654 220 350 0;