diff options
Diffstat (limited to 'externals/grill')
-rw-r--r-- | externals/grill/flext/source/flthr.cpp | 15 | ||||
-rw-r--r-- | externals/grill/vasp/pd-ex/loudness.pd | 207 | ||||
-rw-r--r-- | externals/grill/xsample/pd/xrecord~.pd | 291 |
3 files changed, 366 insertions, 147 deletions
diff --git a/externals/grill/flext/source/flthr.cpp b/externals/grill/flext/source/flthr.cpp index d2430041..d15e33d0 100644 --- a/externals/grill/flext/source/flthr.cpp +++ b/externals/grill/flext/source/flthr.cpp @@ -69,14 +69,14 @@ bool flext::StartHelper() // now we have to wait for thread helper to initialize while(!thrhelpid || !thrhelpcond) Sleep(0.001); - // we are reading for threading now! + // we are ready for threading now! } return ok; } #if 0 /*! \brief Stop helper thread - \note not called! + \note Never called! */ bool flext::StopHelper() { @@ -85,6 +85,7 @@ bool flext::StopHelper() } #endif + //! Static helper thread function void flext::ThrHelper(void *) { @@ -242,7 +243,7 @@ bool flext_base::StopThreads() { thr_entry *t; - // signal termination + // signal termination for all object's threads tlmutex.Lock(); for(t = thrhead; t; t = t->nxt) { if(t->This() == this) t->shouldexit = true; @@ -254,12 +255,16 @@ bool flext_base::StopThreads() // wait for thread termination (1 second max.) int cnt; for(int wi = 0; wi < 100; ++wi) { - cnt = 0; + // lock and count this object's threads tlmutex.Lock(); - for(t = thrhead; t; t = t->nxt) + for(cnt = 0,t = thrhead; t; t = t->nxt) if(t->This() == this) ++cnt; tlmutex.Unlock(); + + // if no threads are remaining, we are done if(!cnt) break; + + // Wait Sleep(0.01f); } diff --git a/externals/grill/vasp/pd-ex/loudness.pd b/externals/grill/vasp/pd-ex/loudness.pd new file mode 100644 index 00000000..0aa18a02 --- /dev/null +++ b/externals/grill/vasp/pd-ex/loudness.pd @@ -0,0 +1,207 @@ +#N canvas 258 35 637 398 12;
+#N canvas 0 0 450 300 graph1 0;
+#X array filter 1024 float 1;
+#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
+#A 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
+#X coords 0 10 1023 -10 200 140 1;
+#X restore 412 91 graph;
+#X obj 171 129 table buf 10;
+#X obj 37 128 wedit buf;
+#X obj 44 203 bng 25 250 50 0 empty empty start 0 -6 0 8 -24198 -1
+-1;
+#N canvas 289 57 385 501 do 0;
+#X obj 40 20 inlet;
+#X obj 38 452 outlet;
+#X obj 38 175 vasp.parts;
+#X msg 40 91 vasp buf;
+#N canvas 0 0 256 335 accum 0;
+#X obj 31 158 +;
+#X obj 65 159 f;
+#X obj 32 95 t f b;
+#X obj 64 229 /;
+#X obj 111 158 1;
+#X obj 112 183 +;
+#X obj 146 184 f;
+#X obj 32 53 inlet;
+#X obj 64 276 outlet;
+#X obj 169 53 inlet;
+#X text 171 28 reset;
+#X text 31 31 value;
+#X obj 169 79 t b;
+#X obj 167 106 0;
+#X connect 0 0 1 0;
+#X connect 1 0 0 1;
+#X connect 1 0 3 0;
+#X connect 2 0 0 0;
+#X connect 2 1 4 0;
+#X connect 3 0 8 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 5 1;
+#X connect 6 0 3 1;
+#X connect 7 0 2 0;
+#X connect 9 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 1 1;
+#X connect 13 0 6 1;
+#X restore 37 382 pd accum;
+#X text 129 174 loop over fragments;
+#X text 112 380 make average of fragments;
+#X msg 102 217 radio detach 1;
+#X obj 122 126 vasp.f?;
+#X obj 139 92 vasp.! @ref filter;
+#X obj 138 261 vasp.db2pow;
+#X obj 40 52 t b b;
+#N canvas 0 0 257 314 frag 0;
+#X obj 40 210 vasp.rms;
+#X obj 40 92 vasp.rfft;
+#X obj 40 176 vasp.r!fft;
+#X obj 40 136 vasp.*;
+#X obj 41 65 vasp.!;
+#X obj 44 25 inlet;
+#X obj 39 248 outlet;
+#X obj 152 22 inlet;
+#X connect 0 0 6 0;
+#X connect 1 0 3 0;
+#X connect 2 0 0 0;
+#X connect 3 0 2 0;
+#X connect 4 0 1 0;
+#X connect 5 0 4 0;
+#X connect 7 0 3 1;
+#X restore 37 319 pd frag;
+#X text 107 315 filter fragment and calc rms;
+#X connect 0 0 11 0;
+#X connect 2 0 12 0;
+#X connect 3 0 2 0;
+#X connect 4 0 1 0;
+#X connect 7 0 12 0;
+#X connect 8 0 2 1;
+#X connect 9 0 8 0;
+#X connect 9 0 10 0;
+#X connect 10 0 12 1;
+#X connect 11 0 3 0;
+#X connect 11 1 4 1;
+#X connect 11 1 7 0;
+#X connect 11 1 9 0;
+#X connect 12 0 4 0;
+#X restore 44 284 pd do;
+#X obj 44 348 nbx 5 18 -1e+037 1e+037 0 0 empty empty empty 0 -6 0
+14 -261689 -1 -1 0.699669 256;
+#N canvas 277 107 454 304 2db 0;
+#X obj 38 19 inlet;
+#X obj 40 58 powtodb;
+#X obj 40 88 - 100;
+#X obj 41 124 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X restore 44 311 pd 2db;
+#X text 36 101 load/play buffer;
+#X msg 44 246 vasp buf;
+#X text 129 347 weighted loudness (decibels);
+#N canvas 312 40 678 619 filter 0;
+#X obj 46 26 inlet;
+#X obj 46 544 vasp.= @ref filter;
+#X obj 46 508 t b a;
+#X obj 45 572 vasp.u;
+#X msg 44 104 0;
+#X obj 43 60 route flat dbA dbB dbC;
+#X msg 87 102 env -77.8 8 -56.7 16 -39.4 31.5 -26.2 63 -16.1 125 -8.6
+250 -3.2 500 0 1000 1.2 2000 1 4000 -1.1 8000 -6.6 16000 -15.8 31500
+;
+#X obj 392 11 loadbang;
+#X obj 392 36 samplerate~;
+#X obj 45 476 vasp.tilt;
+#X obj 107 448 /;
+#X text 156 336 large enough temporary buffer;
+#X obj 44 338 vasp.! 100000;
+#X obj 296 66 / 2;
+#X obj 462 14 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 295 38 r smpfrq;
+#X obj 43 365 vasp.=;
+#X obj 44 309 t b a;
+#X obj 67 422 vasp.f?;
+#X obj 44 394 t a a b;
+#X obj 134 421 vasp.s? @ref filter;
+#X msg 129 158 env -43.6 8 -28.5 16 -17.1 31.5 -9.3 63 -4.2 125 -1.3
+250 -0.3 500 0 1000 -0.1 2000 -0.7 4000 -2.9 8000 -8.4 16000 -17.6
+31500;
+#X msg 170 221 env -17.7 8 -8.5 16 -3 31.5 -0.8 63 -0.2 125 0 250 0
+500 0 1000 -0.2 2000 -0.8 4000 -3 8000 -8.5 16000 -17.7 31500;
+#X text 124 476 resample;
+#X connect 0 0 5 0;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 2 1 1 1;
+#X connect 4 0 17 0;
+#X connect 5 0 4 0;
+#X connect 5 1 6 0;
+#X connect 5 2 21 0;
+#X connect 5 3 22 0;
+#X connect 6 0 17 0;
+#X connect 7 0 8 0;
+#X connect 8 0 13 0;
+#X connect 9 0 2 0;
+#X connect 10 0 9 1;
+#X connect 12 0 16 0;
+#X connect 13 0 12 1;
+#X connect 14 0 8 0;
+#X connect 15 0 13 0;
+#X connect 16 0 19 0;
+#X connect 17 0 12 0;
+#X connect 17 1 16 1;
+#X connect 18 0 10 0;
+#X connect 19 0 9 0;
+#X connect 19 1 18 0;
+#X connect 19 2 20 0;
+#X connect 20 0 10 1;
+#X connect 21 0 17 0;
+#X connect 22 0 17 0;
+#X restore 471 344 pd filter;
+#X msg 416 300 flat;
+#X msg 464 299 dbA;
+#X obj 11 10 cnv 15 600 50 empty empty loudness 10 22 0 24 -260818
+-1 0;
+#X text 202 41 http://www.parasitaere-kapazitaeten.net;
+#X text 203 25 needs vasp and wedit;
+#X text 203 10 get weighted loudness \, (C)2003 Thomas Grill;
+#X msg 499 299 dbB;
+#X msg 536 300 dbC;
+#X connect 3 0 8 0;
+#X connect 4 0 6 0;
+#X connect 6 0 5 0;
+#X connect 8 0 4 0;
+#X connect 11 0 10 0;
+#X connect 12 0 10 0;
+#X connect 17 0 10 0;
+#X connect 18 0 10 0;
diff --git a/externals/grill/xsample/pd/xrecord~.pd b/externals/grill/xsample/pd/xrecord~.pd index 80c09f65..c9bfc7ce 100644 --- a/externals/grill/xsample/pd/xrecord~.pd +++ b/externals/grill/xsample/pd/xrecord~.pd @@ -1,142 +1,149 @@ -#N canvas 134 12 857 610 12; -#X obj 14 15 bng 15 250 50 0 empty empty empty 20 8 0 8 -258699 -1 --1; -#X msg 13 35 stop; -#X floatatom 165 248 5 0 0; -#X floatatom 219 248 5 0 0; -#X floatatom 190 170 5 0 0; -#X floatatom 239 171 5 0 0; -#N canvas 0 0 450 300 graph7 0; -#X array buf 10000 float 0; -#X coords 0 1 9999 -1 200 140 1; -#X restore 52 431 graph; -#X obj 91 212 xrecord~ buf; -#X msg 11 69 reset; -#X obj 70 287 snapshot~; -#X floatatom 72 312 7 0 0; -#X obj 18 220 loadbang; -#X msg 10 99 help; -#X obj 175 96 tgl 15 1 empty empty empty 20 8 0 8 -225271 -1 -1 1 1 -; -#X msg 193 93 loop \$1; -#X msg 173 36 0; -#X msg 209 36 200; -#X msg 172 64 draw \$1; -#X obj 411 275 bng 15 250 50 0 empty empty empty 20 8 0 8 -258699 -1 --1; -#X msg 410 295 stop; -#X floatatom 565 485 5 0 0; -#X floatatom 619 485 5 0 0; -#X floatatom 568 427 5 0 0; -#X floatatom 617 428 5 0 0; -#X obj 500 458 xrecord~ buf; -#X msg 409 334 reset; -#X obj 500 518 snapshot~; -#X floatatom 500 548 7 0 0; -#X obj 411 446 loadbang; -#X obj 537 242 tgl 15 1 empty empty empty 20 8 0 8 -225271 -1 -1 0 -1; -#X msg 556 239 loop \$1; -#X msg 452 206 0; -#X msg 451 234 draw \$1; -#X obj 538 265 tgl 15 1 empty empty empty 20 8 0 8 -225271 -1 -1 1 -1; -#X msg 556 263 sigmode \$1; -#X msg 409 360 print; -#X obj 581 353 hsl 128 15 -0.001 1 0 1 empty empty empty 20 8 0 8 -225271 --1 -1 12700 1; -#X obj 537 291 tgl 15 0 empty empty empty 20 8 0 8 -225271 -1 -1 0 -1; -#X msg 557 288 mixmode \$1; -#X floatatom 629 381 8 0 0; -#X obj 411 473 metro 30; -#X obj 18 247 metro 30; -#X obj 640 21 osc~ 10; -#X obj 86 78 r~ rec; -#X obj 482 339 r~ rec; -#X obj 678 95 s~ rec; -#X obj 623 48 *~ 1; -#X obj 622 25 tgl 15 1 empty empty empty 20 8 0 8 -225271 -1 -1 1 1 -; -#X obj 719 50 *~ 1; -#X obj 718 27 tgl 15 0 empty empty empty 20 8 0 8 -225271 -1 -1 0 1 -; -#X obj 736 23 adc~; -#X text 198 149 min/max position; -#X text 166 267 min/max position; -#X text 262 96 looping on/off; -#X text 237 65 display refresh; -#X text 52 13 start; -#X text 53 35 stop; -#X text 26 270 position signal; -#X text 619 238 looping on/off; -#X text 644 264 signal mode on/off; -#X text 700 381 trigger signal; -#X text 379 121 <----- message triggered; -#X text 173 368 signal triggered ------->; -#X text 493 185 click to activate auto update; -#X text 432 271 start; -#X text 450 295 stop; -#X text 538 307 mix-in by trigger signal on/off; -#X msg 153 170 all; -#X msg 488 206 100; -#X obj 521 426 line~; -#X msg 520 401 \$1 20; -#X msg 9 135 getattributes; -#X obj 208 211 print A; -#X msg 10 163 getbuffer; -#X connect 0 0 7 0; -#X connect 1 0 7 0; -#X connect 4 0 7 2; -#X connect 5 0 7 3; -#X connect 7 0 9 0; -#X connect 7 1 2 0; -#X connect 7 2 3 0; -#X connect 7 4 72 0; -#X connect 8 0 7 0; -#X connect 9 0 10 0; -#X connect 11 0 41 0; -#X connect 12 0 7 0; -#X connect 13 0 14 0; -#X connect 14 0 7 0; -#X connect 15 0 17 0; -#X connect 16 0 17 0; -#X connect 17 0 7 0; -#X connect 18 0 24 0; -#X connect 19 0 24 0; -#X connect 22 0 24 2; -#X connect 23 0 24 3; -#X connect 24 0 26 0; -#X connect 24 1 20 0; -#X connect 24 2 21 0; -#X connect 25 0 24 0; -#X connect 26 0 27 0; -#X connect 28 0 40 0; -#X connect 29 0 30 0; -#X connect 30 0 24 0; -#X connect 31 0 32 0; -#X connect 32 0 24 0; -#X connect 33 0 34 0; -#X connect 34 0 24 0; -#X connect 35 0 24 0; -#X connect 36 0 39 0; -#X connect 36 0 70 0; -#X connect 37 0 38 0; -#X connect 38 0 24 0; -#X connect 40 0 26 0; -#X connect 41 0 9 0; -#X connect 42 0 46 0; -#X connect 43 0 7 0; -#X connect 44 0 24 0; -#X connect 46 0 45 0; -#X connect 47 0 46 1; -#X connect 48 0 45 0; -#X connect 49 0 48 1; -#X connect 50 0 48 0; -#X connect 50 1 48 0; -#X connect 67 0 7 0; -#X connect 68 0 32 0; -#X connect 69 0 24 1; -#X connect 70 0 69 0; -#X connect 71 0 7 0; -#X connect 73 0 7 0; +#N canvas 134 12 859 612 12;
+#X obj 14 15 bng 15 250 50 0 empty empty empty 20 8 0 8 -258699 -1
+-1;
+#X msg 13 35 stop;
+#X floatatom 165 248 5 0 0 0 - - -;
+#X floatatom 219 248 5 0 0 0 - - -;
+#X floatatom 190 170 5 0 0 0 - - -;
+#X floatatom 239 171 5 0 0 0 - - -;
+#N canvas 0 0 450 300 graph7 0;
+#X array buf 10000 float 0;
+#X coords 0 1 9999 -1 200 140 1;
+#X restore 52 431 graph;
+#X obj 91 212 xrecord~ buf;
+#X msg 11 69 reset;
+#X obj 70 287 snapshot~;
+#X floatatom 72 312 7 0 0 0 - - -;
+#X obj 18 220 loadbang;
+#X msg 10 99 help;
+#X obj 175 96 tgl 15 1 empty empty empty 20 8 0 8 -225271 -1 -1 1 1
+;
+#X msg 193 93 loop \$1;
+#X msg 173 36 0;
+#X msg 209 36 200;
+#X msg 172 64 draw \$1;
+#X obj 411 275 bng 15 250 50 0 empty empty empty 20 8 0 8 -258699 -1
+-1;
+#X msg 410 295 stop;
+#X floatatom 565 485 5 0 0 0 - - -;
+#X floatatom 619 485 5 0 0 0 - - -;
+#X floatatom 568 427 5 0 0 0 - - -;
+#X floatatom 617 428 5 0 0 0 - - -;
+#X obj 500 458 xrecord~ buf;
+#X msg 409 334 reset;
+#X obj 500 518 snapshot~;
+#X floatatom 500 548 7 0 0 0 - - -;
+#X obj 411 446 loadbang;
+#X obj 537 242 tgl 15 1 empty empty empty 20 8 0 8 -225271 -1 -1 1
+1;
+#X msg 556 239 loop \$1;
+#X msg 452 206 0;
+#X msg 451 234 draw \$1;
+#X obj 538 265 tgl 15 1 empty empty empty 20 8 0 8 -225271 -1 -1 1
+1;
+#X msg 556 263 sigmode \$1;
+#X msg 409 360 print;
+#X obj 581 353 hsl 128 15 -0.001 1 0 1 empty empty empty 20 8 0 8 -225271
+-1 -1 3200 1;
+#X obj 537 291 tgl 15 0 empty empty empty 20 8 0 8 -225271 -1 -1 1
+1;
+#X msg 557 288 mixmode \$1;
+#X floatatom 629 381 8 0 0 0 - - -;
+#X obj 411 473 metro 30;
+#X obj 18 247 metro 30;
+#X obj 640 21 osc~ 10;
+#X obj 86 78 r~ rec;
+#X obj 482 339 r~ rec;
+#X obj 626 84 s~ rec;
+#X obj 623 48 *~ 1;
+#X obj 622 25 tgl 15 1 empty empty empty 20 8 0 8 -225271 -1 -1 1 1
+;
+#X obj 719 50 *~ 1;
+#X obj 718 27 tgl 15 0 empty empty empty 20 8 0 8 -225271 -1 -1 0 1
+;
+#X obj 736 23 adc~;
+#X text 198 149 min/max position;
+#X text 166 267 min/max position;
+#X text 262 96 looping on/off;
+#X text 237 65 display refresh;
+#X text 52 13 start;
+#X text 53 35 stop;
+#X text 26 270 position signal;
+#X text 619 238 looping on/off;
+#X text 644 264 signal mode on/off;
+#X text 700 381 trigger signal;
+#X text 379 121 <----- message triggered;
+#X text 173 368 signal triggered ------->;
+#X text 493 185 click to activate auto update;
+#X text 432 271 start;
+#X text 450 295 stop;
+#X text 538 307 mix-in by trigger signal on/off;
+#X msg 153 170 all;
+#X msg 488 206 100;
+#X obj 521 426 line~;
+#X msg 520 401 \$1 20;
+#X msg 9 135 getattributes;
+#X obj 208 211 print A;
+#X msg 10 163 getbuffer;
+#X obj 542 51 *~ 1;
+#X obj 541 28 tgl 15 1 empty empty empty 20 8 0 8 -225271 -1 -1 0 1
+;
+#X obj 561 24 noise~;
+#X connect 0 0 7 0;
+#X connect 1 0 7 0;
+#X connect 4 0 7 2;
+#X connect 5 0 7 3;
+#X connect 7 0 9 0;
+#X connect 7 1 2 0;
+#X connect 7 2 3 0;
+#X connect 7 4 72 0;
+#X connect 8 0 7 0;
+#X connect 9 0 10 0;
+#X connect 11 0 41 0;
+#X connect 12 0 7 0;
+#X connect 13 0 14 0;
+#X connect 14 0 7 0;
+#X connect 15 0 17 0;
+#X connect 16 0 17 0;
+#X connect 17 0 7 0;
+#X connect 18 0 24 0;
+#X connect 19 0 24 0;
+#X connect 22 0 24 2;
+#X connect 23 0 24 3;
+#X connect 24 0 26 0;
+#X connect 24 1 20 0;
+#X connect 24 2 21 0;
+#X connect 25 0 24 0;
+#X connect 26 0 27 0;
+#X connect 28 0 40 0;
+#X connect 29 0 30 0;
+#X connect 30 0 24 0;
+#X connect 31 0 32 0;
+#X connect 32 0 24 0;
+#X connect 33 0 34 0;
+#X connect 34 0 24 0;
+#X connect 35 0 24 0;
+#X connect 36 0 39 0;
+#X connect 36 0 70 0;
+#X connect 37 0 38 0;
+#X connect 38 0 24 0;
+#X connect 40 0 26 0;
+#X connect 41 0 9 0;
+#X connect 42 0 46 0;
+#X connect 43 0 7 0;
+#X connect 44 0 24 0;
+#X connect 46 0 45 0;
+#X connect 47 0 46 1;
+#X connect 48 0 45 0;
+#X connect 49 0 48 1;
+#X connect 50 0 48 0;
+#X connect 50 1 48 0;
+#X connect 67 0 7 0;
+#X connect 68 0 32 0;
+#X connect 69 0 24 1;
+#X connect 70 0 69 0;
+#X connect 71 0 7 0;
+#X connect 73 0 7 0;
+#X connect 74 0 45 0;
+#X connect 75 0 74 1;
+#X connect 76 0 74 0;
|