From 7648660873eb26cdaa16f100d5a0f13fd587d40f Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 16 Nov 2005 05:57:17 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r3936, which included commits to RCS files with non-trunk default branches. svn path=/trunk/abstractions/nqpoly/; revision=3937 --- nqpoly4/minimal-test.pd | 4 ++ nqpoly4/minimal.pd | 51 ++++++++++++++++++++++ nqpoly4/nqpoly4.pd | 95 +++++++++++++++++++++++++++++++++++++++++ nqpoly4/nqpwrap4.pd | 32 ++++++++++++++ nqpoly4/petal-test.pd | 41 ++++++++++++++++++ nqpoly4/petal.pd | 61 ++++++++++++++++++++++++++ nqpoly4/phasor.pd | 54 +++++++++++++++++++++++ nqpoly4/tabar~.pd | 63 +++++++++++++++++++++++++++ nqpoly4/tabgrain-test.pd | 109 +++++++++++++++++++++++++++++++++++++++++++++++ nqpoly4/tabgrain.pd | 86 +++++++++++++++++++++++++++++++++++++ 10 files changed, 596 insertions(+) create mode 100644 nqpoly4/minimal-test.pd create mode 100644 nqpoly4/minimal.pd create mode 100644 nqpoly4/nqpoly4.pd create mode 100644 nqpoly4/nqpwrap4.pd create mode 100644 nqpoly4/petal-test.pd create mode 100644 nqpoly4/petal.pd create mode 100644 nqpoly4/phasor.pd create mode 100644 nqpoly4/tabar~.pd create mode 100644 nqpoly4/tabgrain-test.pd create mode 100644 nqpoly4/tabgrain.pd diff --git a/nqpoly4/minimal-test.pd b/nqpoly4/minimal-test.pd new file mode 100644 index 0000000..0a0292b --- /dev/null +++ b/nqpoly4/minimal-test.pd @@ -0,0 +1,4 @@ +#N canvas 350 285 450 300 10; +#X msg 34 38 foo bar; +#X obj 49 78 nqpoly4 5 minimal param_1 param_2; +#X connect 0 0 1 0; diff --git a/nqpoly4/minimal.pd b/nqpoly4/minimal.pd new file mode 100644 index 0000000..d02bcb4 --- /dev/null +++ b/nqpoly4/minimal.pd @@ -0,0 +1,51 @@ +#N canvas 142 151 450 300 10; +#X obj 13 27 inlet; +#X obj 123 27 inlet; +#X obj 13 317 outlet; +#X obj 48 122 print voice; +#X obj 30 148 print called_with; +#X obj 48 98 f \$1; +#X obj 123 51 t b b; +#X text 12 297 "available" outlet; +#X text 13 5 "trigger" inlet; +#X text 123 5 "loadbang" inlet; +#X obj 222 144 print created_with; +#X obj 202 83 f \$1; +#X obj 236 78 f \$2; +#X obj 289 61 symbol \$3; +#X obj 221 116 pack f f s s s s; +#X obj 351 60 symbol \$4; +#X obj 288 82 symbol \$5; +#X obj 348 83 symbol \$6; +#X obj 14 171 print waiting_1000ms; +#X obj 14 195 delay 1000; +#X obj 32 293 print finished; +#X obj 14 220 t b b b; +#X obj 50 269 print voice; +#X obj 50 245 f \$1; +#X obj 12 53 t b a b; +#X connect 0 0 24 0; +#X connect 1 0 6 0; +#X connect 5 0 3 0; +#X connect 6 0 11 0; +#X connect 6 1 12 0; +#X connect 6 1 13 0; +#X connect 6 1 15 0; +#X connect 6 1 16 0; +#X connect 6 1 17 0; +#X connect 11 0 14 0; +#X connect 12 0 14 1; +#X connect 13 0 14 2; +#X connect 14 0 10 0; +#X connect 15 0 14 3; +#X connect 16 0 14 4; +#X connect 17 0 14 5; +#X connect 19 0 21 0; +#X connect 21 0 2 0; +#X connect 21 1 20 0; +#X connect 21 2 23 0; +#X connect 23 0 22 0; +#X connect 24 0 18 0; +#X connect 24 0 19 0; +#X connect 24 1 4 0; +#X connect 24 2 5 0; diff --git a/nqpoly4/nqpoly4.pd b/nqpoly4/nqpoly4.pd new file mode 100644 index 0000000..aaf1cc6 --- /dev/null +++ b/nqpoly4/nqpoly4.pd @@ -0,0 +1,95 @@ +#N canvas 30 116 975 454 10; +#X obj 16 20 inlet; +#X obj 114 321 outlet; +#X obj 290 198 symbol \$0-poly; +#X obj 93 13 namecanvas \$0-poly; +#X obj 255 167 t b b; +#X obj 289 248 t f f; +#X obj 314 271 + 1; +#X obj 256 143 until; +#X obj 147 234 symbol \$0-poly; +#X obj 172 293 pack s f; +#X msg 169 336 \; \$1 connect \$2 0 1 0; +#X obj 451 197 symbol \$2; +#X obj 547 197 symbol \$3; +#X obj 607 198 symbol \$4; +#X obj 671 197 symbol \$5; +#X obj 736 198 symbol \$6; +#X obj 260 101 - 1; +#X obj 255 123 moses 1; +#X obj 214 20 loadbang; +#X obj 255 77 \$1; +#X obj 415 199 + 1; +#X obj 286 227 f; +#X obj 392 199 f 1; +#X text 294 9 usage: nqpoly +; +#X text 680 24 - don't edit a version of this patch that has been instantiated +with any arguments (best to just open the nqpoly.pd file directly) +; +#X text 680 91 - recreate the "t b b b b" object and the nqpwrap object +(in that order) by clicking in them and adding a space at the end. +; +#X text 297 38 don't save this patch unless you follow the instructions +to the right.; +#X text 673 4 editing:; +#X text 684 137 - increment the indicated numbers if you add any objects +; +#X text 176 188 obj index of nqpwrap; +#X text 212 209 increment; +#X text 350 221 index of "t b b b b" (increment); +#X text 336 390 the first argument to the last connect message must +be the index of the "t b b b b" object (increment); +#X text 679 70 - delete the connection coming from nqpwrap's outlet +; +#X text 313 88 your abstraction is ultimately called with the parameters: + ; +#X obj 294 295 pack f f s s f f s s s s; +#X text 18 410 nqpoly (v4) - pix.test.at; +#X obj 517 198 \$1; +#X obj 188 209 42; +#X obj 316 220 + 41; +#X msg 302 327 \; \$3 obj 5 100 nqpwrap4 \$4 \$5 \$6 \$7 \$8 \$9 \$10 +\; \$3 connect \$1 0 \$2 0 \; \$3 connect 41 0 \$2 1; +#X obj 216 48 t b b b b; +#X obj 19 117 nqpwrap4 \$2 0 \$1 \$3 \$4 \$5 \$6; +#X connect 0 0 42 0; +#X connect 2 0 35 2; +#X connect 4 0 21 0; +#X connect 4 1 11 0; +#X connect 4 1 12 0; +#X connect 4 1 13 0; +#X connect 4 1 14 0; +#X connect 4 1 2 0; +#X connect 4 1 15 0; +#X connect 4 1 22 0; +#X connect 4 1 37 0; +#X connect 5 0 35 0; +#X connect 5 1 6 0; +#X connect 6 0 9 1; +#X connect 6 0 35 1; +#X connect 7 0 4 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 11 0 35 3; +#X connect 12 0 35 6; +#X connect 13 0 35 7; +#X connect 14 0 35 8; +#X connect 15 0 35 9; +#X connect 16 0 17 0; +#X connect 17 1 7 0; +#X connect 18 0 41 0; +#X connect 19 0 16 0; +#X connect 20 0 22 1; +#X connect 21 0 5 0; +#X connect 22 0 20 0; +#X connect 22 0 35 4; +#X connect 22 0 39 0; +#X connect 35 0 40 0; +#X connect 37 0 35 5; +#X connect 38 0 9 1; +#X connect 39 0 21 1; +#X connect 41 0 42 1; +#X connect 41 1 8 0; +#X connect 41 2 19 0; +#X connect 41 3 38 0; diff --git a/nqpoly4/nqpwrap4.pd b/nqpoly4/nqpwrap4.pd new file mode 100644 index 0000000..c904ed2 --- /dev/null +++ b/nqpoly4/nqpwrap4.pd @@ -0,0 +1,32 @@ +#N canvas 71 272 450 300 10; +#X obj 45 26 inlet; +#X obj 49 123 spigot; +#X obj 135 129 spigot; +#X obj 42 204 \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9; +#X obj 181 253 outlet; +#X obj 288 15 inlet; +#X obj 99 63 0; +#X obj 128 63 1; +#X obj 201 58 1; +#X obj 234 58 0; +#X text 12 5 nqpwrap (v4) - pix.test.at; +#X text 252 126 this object is used by nqpoly; +#X obj 42 67 t a a; +#X obj 47 157 t a b; +#X connect 0 0 12 0; +#X connect 1 0 13 0; +#X connect 2 0 4 0; +#X connect 3 0 8 0; +#X connect 3 0 9 0; +#X connect 5 0 8 0; +#X connect 5 0 9 0; +#X connect 5 0 3 1; +#X connect 6 0 1 1; +#X connect 7 0 2 1; +#X connect 8 0 1 1; +#X connect 9 0 2 1; +#X connect 12 0 1 0; +#X connect 12 1 2 0; +#X connect 13 0 3 0; +#X connect 13 1 6 0; +#X connect 13 1 7 0; diff --git a/nqpoly4/petal-test.pd b/nqpoly4/petal-test.pd new file mode 100644 index 0000000..dffd3d8 --- /dev/null +++ b/nqpoly4/petal-test.pd @@ -0,0 +1,41 @@ +#N canvas 280 123 649 335 10; +#X obj 17 64 gemwin; +#X msg 24 34 create; +#X obj 12 15 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 155 35 gemhead; +#X obj 128 266 s petalnum; +#X obj 156 68 s petalin; +#X obj 200 267 s petalsize; +#X obj 280 264 s petaltrans; +#X obj 110 241 line; +#X floatatom 141 244 5 0 0 0 - - -; +#X msg 107 221 \$1 1000; +#X msg 72 187 35; +#X msg 101 189 21; +#X msg 127 190 13; +#X floatatom 204 167 5 0 0 0 - - -; +#X floatatom 271 185 5 0 0 0 - - -; +#X obj 162 106 nqpoly4 35 petal; +#X msg 157 189 8; +#X text 234 17 this is a silly gem example \, vaguely inspired by a +question on the list about drawing flowers in gem. just a proof of +concept.; +#X text 277 103 make 35 petal objects waiting for commands; +#X text 151 293 e send the commands out on global sends. all of the +petals receive all of the commands \, and act accordingly.; +#X text 325 183 radius of the flower; +#X text 247 165 radius of the petals; +#X text 47 167 number of petals; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 5 0; +#X connect 8 0 4 0; +#X connect 9 0 4 0; +#X connect 10 0 8 0; +#X connect 11 0 10 0; +#X connect 12 0 10 0; +#X connect 13 0 10 0; +#X connect 14 0 6 0; +#X connect 15 0 7 0; +#X connect 17 0 10 0; diff --git a/nqpoly4/petal.pd b/nqpoly4/petal.pd new file mode 100644 index 0000000..a1a2665 --- /dev/null +++ b/nqpoly4/petal.pd @@ -0,0 +1,61 @@ +#N canvas 165 185 720 421 10; +#X obj 117 125 separator; +#X obj 147 299 circle; +#X obj 476 187 * 360; +#X obj 119 206 rotateXYZ 0 0 0; +#X obj 521 95 t b f; +#X obj 120 178 color 1 0 0; +#X obj 112 87 r petalin; +#X obj 31 258 inlet; +#X obj 32 292 t b; +#X obj 31 320 outlet; +#X obj 434 47 f \$1; +#X obj 620 17 inlet; +#X obj 571 73 r petalnum; +#X obj 568 198 r petaltrans; +#X obj 124 230 translateXYZ 1 0 0; +#X obj 478 229 * 1; +#X obj 570 101 r petalsize; +#X msg 431 16 bang; +#X obj 565 127 t b f; +#X obj 521 123 / 1; +#X obj 423 152 <= 0; +#X text 81 323 this object just ignores triggers; +#X text 107 57 we connect to the global gemhead with a named receive +; +#X text 648 71 we get a few global values over receives too; +#X text 472 46 \$1 is this objects index \, we use it to work out if +we need to render; +#X text 28 372 pix.test.at; +#X text 659 15 we get our fake loadbang on the right inlet still; +#X text 13 8 draw a petal (really just a circle)..; +#X text 459 153 if we aren't needed \, scale ourselves to 0 is there +a better way? email me.; +#X obj 149 269 scaleXYZ 1; +#X connect 0 0 5 0; +#X connect 2 0 3 3; +#X connect 3 0 14 0; +#X connect 4 0 19 0; +#X connect 4 0 20 0; +#X connect 4 1 19 1; +#X connect 4 1 20 1; +#X connect 5 0 3 0; +#X connect 6 0 0 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 10 0 20 0; +#X connect 10 0 19 0; +#X connect 11 0 10 0; +#X connect 12 0 4 0; +#X connect 13 0 14 1; +#X connect 14 0 29 0; +#X connect 15 0 29 1; +#X connect 15 0 29 2; +#X connect 15 0 29 3; +#X connect 16 0 18 0; +#X connect 17 0 10 0; +#X connect 18 0 15 0; +#X connect 18 1 15 1; +#X connect 19 0 2 0; +#X connect 20 0 15 0; +#X connect 29 0 1 0; diff --git a/nqpoly4/phasor.pd b/nqpoly4/phasor.pd new file mode 100644 index 0000000..846b842 --- /dev/null +++ b/nqpoly4/phasor.pd @@ -0,0 +1,54 @@ +#N canvas 368 84 480 575 10; +#X obj 101 89 t b b; +#X obj 101 122 timer; +#X obj 149 159 / 1000; +#X obj 148 188 * \$1; +#X obj 151 220 +; +#X text 206 243 phase; +#X text 181 188 frequency; +#X obj 164 378 -; +#X obj 183 350 int; +#X obj 229 290 < 0; +#X obj 156 246 t f f f; +#X obj 207 425 spigot; +#X obj 253 427 spigot; +#X obj 270 361 == 0; +#X obj 203 456 t b f; +#X obj 207 502 -; +#X obj 202 478 f 1; +#X obj 217 542 t f; +#X obj 60 24 inlet; +#X obj 94 60 route bang; +#X obj 228 31 inlet; +#X text 105 15 bang or frequency; +#X text 270 17 phase set; +#X text 236 68 control phasor \, temporally dependent but only outputs +when it recieves a bang.; +#X obj 215 577 outlet; +#X connect 0 0 1 0; +#X connect 0 1 1 1; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 10 0; +#X connect 7 0 11 0; +#X connect 7 0 12 0; +#X connect 8 0 7 1; +#X connect 9 0 13 0; +#X connect 9 0 11 1; +#X connect 10 0 7 0; +#X connect 10 1 8 0; +#X connect 10 2 9 0; +#X connect 11 0 14 0; +#X connect 12 0 17 0; +#X connect 13 0 12 1; +#X connect 14 0 16 0; +#X connect 14 1 15 1; +#X connect 15 0 17 0; +#X connect 16 0 15 0; +#X connect 17 0 4 1; +#X connect 17 0 24 0; +#X connect 18 0 19 0; +#X connect 19 0 0 0; +#X connect 19 1 3 1; +#X connect 20 0 10 0; diff --git a/nqpoly4/tabar~.pd b/nqpoly4/tabar~.pd new file mode 100644 index 0000000..2d3a693 --- /dev/null +++ b/nqpoly4/tabar~.pd @@ -0,0 +1,63 @@ +#N canvas 222 268 460 352 10; +#X obj 22 121 inlet~; +#X text 68 119 indexing input \, expects a line from 0-1; +#X obj 74 282 sig~ 1; +#X obj 88 311 -~; +#X obj 134 139 inlet; +#X obj 264 160 inlet; +#X text 174 139 attack time factor (0 \, 1]; +#X text 303 160 decay time factor (0 \, 1]; +#X obj 157 319 /; +#X msg 147 293 1; +#X obj 139 241 t b f; +#X obj 176 267 moses 1e-29; +#X msg 176 291 1e-29; +#X obj 283 323 /; +#X msg 273 297 1; +#X obj 265 245 t b f; +#X obj 302 271 moses 1e-29; +#X msg 302 295 1e-29; +#X obj 36 408 *~; +#X obj 35 430 outlet~; +#X obj 27 368 clip~ 0 1; +#X obj 86 370 clip~ 0 1; +#X obj 23 342 *~ 0; +#X obj 94 341 *~ 0; +#X obj 153 215 f \$1; +#X obj 275 219 f \$2; +#X obj 205 186 loadbang; +#X text 19 8 silly name. acts like a TABle \, that contains an Attack +Release envelope. it expects a line~ that starts and 0 and ends at +1 \, with the duration of the envelope. the attack and decay factors +are the fraction (between 0 \, 1) of the note length which should be +attack/decay. if attack and decay factor sum to more than 1 \, you +will get decreased volume.; +#X connect 0 0 3 1; +#X connect 0 0 22 0; +#X connect 2 0 3 0; +#X connect 3 0 23 0; +#X connect 4 0 10 0; +#X connect 5 0 15 0; +#X connect 8 0 22 1; +#X connect 9 0 8 0; +#X connect 10 0 9 0; +#X connect 10 1 11 0; +#X connect 11 0 12 0; +#X connect 11 1 8 1; +#X connect 12 0 8 1; +#X connect 13 0 23 1; +#X connect 14 0 13 0; +#X connect 15 0 14 0; +#X connect 15 1 16 0; +#X connect 16 0 17 0; +#X connect 16 1 13 1; +#X connect 17 0 13 1; +#X connect 18 0 19 0; +#X connect 20 0 18 0; +#X connect 21 0 18 1; +#X connect 22 0 20 0; +#X connect 23 0 21 0; +#X connect 24 0 10 0; +#X connect 25 0 15 0; +#X connect 26 0 24 0; +#X connect 26 0 25 0; diff --git a/nqpoly4/tabgrain-test.pd b/nqpoly4/tabgrain-test.pd new file mode 100644 index 0000000..8842ab6 --- /dev/null +++ b/nqpoly4/tabgrain-test.pd @@ -0,0 +1,109 @@ +#N canvas 183 46 668 627 10; +#X obj 36 533 catch~ foo-l; +#X obj 57 555 catch~ foo-r; +#X obj 37 583 dac~; +#X text 249 336 pitch; +#X text 331 338 attack; +#X text 373 336 decay; +#X text 422 336 volume; +#X floatatom 156 240 5 0 0 0 - - -; +#X text 164 223 duration; +#X floatatom 248 356 5 0 0 0 - - -; +#X floatatom 288 357 5 0 0 0 - - -; +#X floatatom 325 356 5 0 0 0 - - -; +#X floatatom 368 355 5 0 0 0 - - -; +#X floatatom 418 355 5 0 0 0 - - -; +#X obj 164 382 pack f s f f f f f f f; +#X floatatom 465 354 5 0 0 0 - - -; +#X text 473 336 pan; +#X obj 46 189 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X floatatom 98 197 5 0 0 0 - - -; +#X obj 166 440 print d; +#X obj 515 45 openpanel; +#X msg 513 18 bang; +#X obj 519 102 soundfiler; +#X obj 163 407 nqpoly4 8 tabgrain foo; +#X obj 155 344 f; +#X obj 276 230 phasor 1; +#X obj 310 282 * 0; +#X obj 312 303 + 0; +#X text 395 259 range; +#X text 403 293 start; +#X floatatom 357 293 0 0 0 0 - - -; +#X floatatom 356 259 0 0 0 0 - - -; +#X floatatom 528 127 0 0 0 0 - - -; +#X obj 110 297 t b b b; +#X obj 32 334 /; +#X obj 32 301 t b f; +#X floatatom 28 368 5 0 0 0 - - -; +#X text 21 385 density; +#X obj 378 29 table sampletab; +#X msg 190 302 symbol sampletab; +#X text 307 405 first creation argument (foo) is the name used to build +the throw~ objects. this is so you can have multiple tabgrains running +at the same time.; +#X obj 355 211 f; +#X msg 351 183 bang; +#X text 389 181 set phasor range to the sample length; +#X msg 436 274 0; +#X text 287 338 gliss; +#X text 20 33 pix.test.at; +#X msg 468 312 0.5; +#X msg 234 322 44; +#X text 95 180 grain frequency; +#X obj 68 239 metro 40; +#X msg 154 206 300; +#X text 6 12 confusing "test" patch for the tabgrain object; +#X msg 517 76 read -resize \$1 sampletab; +#X msg 413 316 0.5; +#X obj 287 174 / 60; +#X floatatom 287 154 5 0 0 0 - - -; +#X floatatom 299 200 5 0 0 0 - - -; +#X msg 287 128 60; +#X text 292 98 bpm; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 7 0 24 1; +#X connect 7 0 34 0; +#X connect 9 0 14 3; +#X connect 10 0 14 4; +#X connect 11 0 14 5; +#X connect 12 0 14 6; +#X connect 13 0 14 7; +#X connect 14 0 23 0; +#X connect 15 0 14 8; +#X connect 17 0 50 0; +#X connect 18 0 35 0; +#X connect 18 0 50 1; +#X connect 20 0 53 0; +#X connect 21 0 20 0; +#X connect 22 0 32 0; +#X connect 22 0 41 1; +#X connect 23 0 19 0; +#X connect 24 0 14 0; +#X connect 25 0 26 0; +#X connect 26 0 27 0; +#X connect 27 0 14 2; +#X connect 30 0 27 1; +#X connect 31 0 26 1; +#X connect 33 0 24 0; +#X connect 33 1 25 0; +#X connect 33 1 39 0; +#X connect 34 0 36 0; +#X connect 35 0 34 0; +#X connect 35 1 34 1; +#X connect 39 0 14 1; +#X connect 41 0 31 0; +#X connect 42 0 41 0; +#X connect 44 0 30 0; +#X connect 47 0 15 0; +#X connect 48 0 9 0; +#X connect 50 0 33 0; +#X connect 51 0 7 0; +#X connect 53 0 22 0; +#X connect 54 0 13 0; +#X connect 55 0 25 0; +#X connect 55 0 57 0; +#X connect 56 0 55 0; +#X connect 58 0 56 0; diff --git a/nqpoly4/tabgrain.pd b/nqpoly4/tabgrain.pd new file mode 100644 index 0000000..6b83adf --- /dev/null +++ b/nqpoly4/tabgrain.pd @@ -0,0 +1,86 @@ +#N canvas 348 197 538 471 10; +#X obj 186 236 tabar~; +#X obj 69 131 line~; +#X msg 68 94 0 \, 1 \$1; +#X obj 97 211 *~ 0; +#X obj 94 239 +~ 0; +#X obj 45 192 *~; +#X obj 46 214 /~ 2; +#X obj 49 242 *~ 0; +#X obj 88 295 +~; +#X obj 98 326 tabread4~; +#X msg 133 300 set \$1; +#X obj 101 350 *~; +#X obj 215 303 *~ 0; +#X obj 55 164 *~ 0; +#X obj 56 268 /~ 1; +#X obj 108 57 unpack f s f f f f f f f; +#X msg 298 191 1; +#X obj 311 169 t b f; +#X obj 299 216 -; +#X obj 305 245 pow 2; +#X msg 293 289 1; +#X obj 310 268 t b f; +#X obj 313 316 -; +#X obj 241 379 *~ 0; +#X obj 252 199 pow 2; +#X obj 258 242 -; +#X obj 318 378 *~ 0; +#X obj 109 24 inlet; +#X obj 17 93 delay; +#X obj 28 414 outlet; +#X obj 489 14 inlet; +#X obj 228 412 throw~ \$3-l; +#X obj 322 411 throw~ \$3-r; +#X text 10 439 pix.test.at; +#X text 13 3; +#X text 153 18 list + ; +#X connect 0 0 12 0; +#X connect 1 0 0 0; +#X connect 1 0 13 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 4 0 8 1; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 14 0; +#X connect 8 0 9 0; +#X connect 9 0 11 0; +#X connect 10 0 9 0; +#X connect 11 0 23 0; +#X connect 11 0 26 0; +#X connect 12 0 11 1; +#X connect 13 0 3 0; +#X connect 13 0 5 1; +#X connect 13 0 5 0; +#X connect 14 0 8 0; +#X connect 15 0 2 0; +#X connect 15 0 13 1; +#X connect 15 0 14 1; +#X connect 15 0 28 0; +#X connect 15 1 10 0; +#X connect 15 2 4 1; +#X connect 15 3 3 1; +#X connect 15 4 7 1; +#X connect 15 5 0 1; +#X connect 15 6 0 2; +#X connect 15 7 12 1; +#X connect 15 8 17 0; +#X connect 16 0 18 0; +#X connect 16 0 25 0; +#X connect 17 0 16 0; +#X connect 17 1 18 1; +#X connect 17 1 24 0; +#X connect 18 0 19 0; +#X connect 19 0 21 0; +#X connect 20 0 22 0; +#X connect 21 0 20 0; +#X connect 21 1 22 1; +#X connect 22 0 26 1; +#X connect 23 0 31 0; +#X connect 24 0 25 1; +#X connect 25 0 23 1; +#X connect 26 0 32 0; +#X connect 27 0 15 0; +#X connect 28 0 29 0; -- cgit v1.2.1