#N canvas 1 53 403 396 10;
#N canvas 429 334 525 231 /id 0;
#X text 26 42 Abstraction /id:;
#X text 63 67 If an abstraction's arguments contains the "/id" keyword
\, the symbol following the "/id" keyword \, instead of the abstraction's
name \, will be used to build the path.;
#X restore 327 340 pd /id;
#N canvas 90 56 933 657 /name 0;
#X floatatom 459 165 5 0 0 0 - - -;
#X floatatom 459 215 5 0 0 0 - - -;
#X obj 503 168 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 454 19 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 450 543 nbx: creates a numberbox;
#X text 450 561 slider min max: creates a slider with the indicated
minimum and maximum;
#X text 450 592 bng: creates a bang;
#X text 450 610 tgl: creates a toggle;
#X floatatom 452 510 5 0 0 0 - - -;
#X text 449 526 /g options:;
#X text 453 43 A param automatically ouputs its value when it is created.
You can disable this behavior with the "/nlb" (no loadbang) keyword.
;
#X text 457 20 /nlb keyword: No loadbang;
#X obj 453 118 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 455 119 /wfb keyword: Wait for bang;
#X obj 454 248 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 456 248 /ns keyword: No save;
#X obj 453 405 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 455 405 /g keyword: GUI options;
#X obj 455 328 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 457 329 /nps keyword: No preset save;
#X text 449 268 The param will never be saved.;
#X text 451 353 The param will never be saved in a preset file.;
#X text 456 142 The param will only output its contents on a bang.
;
#X obj 452 484 tof/param /number 30 /g nbx;
#X obj 460 192 tof/param /waiting 50 /wfb;
#X obj 11 285 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 13 286 arguments;
#X text 10 345 argument 1 symbol: name (must start with a slash);
#X text 11 362 argument 2 variable: optionnal default value (can be
anything and of any length);
#X text 11 393 other arguments: special keywords and options;
#X text 10 42 A param object creates a storage area for anything. This
data can be accessed and modified through a unique path.;
#X obj 12 18 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
0;
#X obj 13 321 tof/param /name default;
#X text 12 417 The path to a param starts at the root patch and includes
the name of each abstraction that was taversed to reach the object.
The path of the param above is: /name;
#X text 95 514 <- open me;
#X obj 536 86 tof/param /not_lb 50 /nlb;
#X obj 453 293 tof/param /not_saving 50 /ns;
#X obj 455 377 tof/param /no_presets 67 /nps;
#X obj 16 548 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 18 549 keywords;
#X text 19 572 You can use many keywords to configure your params.
Each keyword starts with a /. You can use as many keywords as you want
as long at they are not the first argument (that is reserved for the
name).;
#X text 452 434 When you create a param \, you can use the "/g" keyword
to flag the param with gui options that are used by [param gui] to
automatically build GUIs.;
#X text 450 628 symbolatom or sym : creates a symbol box;
#X obj 15 79 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
0;
#X text 17 80 inlets/outlets;
#X text 14 104 inlet 1 bang: outputs the value of the param.;
#X text 14 121 inlet 1 anything: stores the value received and outputs
it.;
#X text 13 138 inlet 2 anything: stores the value received.;
#X text 13 157 outlet 2 anything: the stored value.;
#X text 11 477 The path to the param "/carrier" in the middle of the
following abstraction is: /test-param/carrier;
#X text 14 18 param /name;
#X obj 16 516 ./test-param;
#X obj 16 185 cnv 15 300 20 empty empty empty 20 12 0 14 -4032 -66577
0;
#X text 18 186 default value;
#X connect 0 0 24 0;
#X connect 2 0 24 0;
#X connect 23 0 8 0;
#X connect 24 0 1 0;
#X restore -16 187 pd /name;
#N canvas 141 64 837 442 custom 0;
#X obj 17 211 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 19 212 arguments;
#X obj 18 19 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
0;
#X text 20 43 Saves and restores any type and quantity of data in a
param file.;
#X text 16 235 argument 1 symbol: the name. Must start with a '/'.
;
#X obj 18 282 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 20 283 keywords;
#X text 16 307 There is only one keyword: /nps;
#X obj 17 335 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 19 336 /nps keyword: No preset save;
#X text 13 360 The param will never be saved in a preset file.;
#X obj 17 384 tof/param custom /yogourt /nps;
#X obj 18 83 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
0;
#X text 23 83 inlets/outlets;
#X text 18 109 inlet 1 anything: data to be saved (can be multiple
messages).;
#X obj 495 212 list prepend;
#X text 576 211 Prepend the key to the value;
#X obj 444 110 t b b;
#X msg 541 90 clear;
#X msg 444 139 dump;
#X text 434 46 In the following example \, [param custom] will save
and restore the contents of the [cyclone/coll].;
#X obj 495 185 cyclone/coll;
#C restore;
#X text 427 243 When a param save is called \, the [t b b] is banged.
The message "clear" is stored and "dump" is sent to [cyclone/coll].
The list builds a "key data" pair out of the dumped data. This pair
is then also stored.;
#X text 426 305 When a param load is called \, the stored "clear" message
is sent to [cyclone/coll] \, clearing its contents. Afterwards. each
of the stored data pairs is then sent to [cyclone/coll] restoring the
previous data.;
#X obj 541 115 param custom /coll;
#X text 17 160 outlet 2: the data to be restored by a param load.;
#X text 18 141 outlet 1 bang: bangs when a param save is called.;
#X text 16 256 other arguments: keywords (see below).;
#X text 20 19 param custom;
#X connect 15 0 24 0;
#X connect 17 0 19 0;
#X connect 17 1 18 0;
#X connect 18 0 24 0;
#X connect 19 0 21 0;
#X connect 21 0 15 0;
#X connect 21 1 15 1;
#X connect 24 0 17 0;
#X connect 24 1 21 0;
#X restore -16 208 pd custom;
#N canvas 222 499 637 424 path 0;
#X obj 373 67 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 373 115 print;
#X obj 41 190 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 43 191 arguments;
#X obj 40 58 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
0;
#X obj 40 112 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
0;
#X text 45 112 inlets/outlets;
#X text 41 82 Outputs the current param path.;
#X obj 375 180 ./test-param-2;
#X obj 373 91 tof/param path;
#X obj 375 152 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 392 64 1) Click here;
#X text 396 150 2) Click here;
#X text 40 138 inlet 1 bang: outputs the param path.;
#X text 40 160 outlet 1 symbol: the param path.;
#X text 40 214 none.;
#X text 42 58 param path;
#X connect 0 0 9 0;
#X connect 9 0 1 0;
#X connect 10 0 8 0;
#X restore -16 229 pd path;
#N canvas 70 415 866 433 dump 0;
#X obj 420 258 print;
#X obj 421 78 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 464 150 guis;
#X text 444 79 A bang will output all the params and their values.
;
#X msg 445 109 symbol /FM_MOD;
#X text 541 107 A symbol will dump only the params that start with
that path.;
#X text 501 147 Guis will output all the optional /g values.;
#X obj 421 224 tof/param dump;
#X msg 501 175 guis /FM_MOD;
#X obj 33 257 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 35 258 arguments;
#X obj 33 45 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
0;
#X obj 33 109 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
0;
#X text 38 109 inlets/outlets;
#X text 32 281 none.;
#X text 32 68 Outputs the params and their values or the params and
their GUI options.;
#X text 33 135 inlet 1 bang: outputs the all the params and their values.
;
#X text 33 152 inlet 1 symbol: outputs the params and their values
if their names start with this symbol.;
#X text 33 182 inlet 1 guis: outputs the params and their GUI options
if their names start with this symbol.;
#X text 32 216 inlet 1 guis symbol: outputs the params and their GUI
options if their names start with this symbol.;
#X text 35 45 param dump;
#X connect 1 0 7 0;
#X connect 2 0 7 0;
#X connect 4 0 7 0;
#X connect 7 0 0 0;
#X connect 8 0 7 0;
#X restore -16 250 pd dump;
#N canvas 20 346 838 409 file 0;
#X obj 489 38 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144 -1
-1 0;
#X obj 547 151 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144
-1 -1 0;
#X obj 464 17 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 521 127 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X floatatom 489 62 5 0 0 0 - - -;
#X floatatom 547 173 5 0 0 0 - - -;
#X obj 464 198 param file;
#X obj 24 321 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 26 322 arguments;
#X obj 24 19 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
0;
#X obj 24 183 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
0;
#X text 29 183 inlets/outlets;
#X text 23 345 none.;
#X text 26 40 Saves/restores params in a param file.;
#X text 25 98 All params that do not have the "/ns" keyword are saved
in the "main" param file.;
#X text 24 133 All params that do not have the "/ns" or "/nps" keywords
are saved in the "preset" param files.;
#X text 25 61 There are two types of param file. A "main" param file
and up to 1000 "preset" param files.;
#X text 529 60 Save to "preset" file n.;
#X text 585 172 Restore for "preset" file n.;
#X text 543 125 Restore from "main" param file.;
#X text 486 13 Save to "main" param file.;
#X text 24 209 inlet 1 bang: save to "main" param file.;
#X text 24 263 inlet 2 bang: restore from "main" param file.;
#X obj 442 247 cnv 15 300 20 empty empty empty 20 12 0 14 -4032 -66577
0;
#X text 444 248 param file names;
#X text 441 271 All param files are always stored and searched for
in the same folder as the root patch's folder.;
#X text 443 305 The "main" param file is named as follows:;
#X text 622 323 "name of root patch.param";
#X text 26 280 inlet 2 float: restore from "preset" file n where n
is a number between 0 and 999;
#X text 26 228 inlet 1 float: save to "preset" file n where n is a
number between 0 and 999;
#X text 581 374 "name of root patch-nnnn.param";
#X text 444 341 The "preset" param files are named as follows \, where
nnnn is always four digits:;
#X text 26 19 param file;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 2 0 6 0;
#X connect 3 0 6 1;
#X connect 4 0 6 0;
#X connect 5 0 6 1;
#X restore -16 271 pd file;
#N canvas 17 441 981 371 route 0;
#X obj 33 203 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 35 204 arguments;
#X obj 33 31 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
0;
#X obj 33 85 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
0;
#X text 38 85 inlets/outlets;
#X text 35 228 none.;
#X text 38 53 Routes messages to params.;
#X text 35 31 param route;
#X text 35 112 inlet 1 anything: the first element of the anything
determines the target. The rest of the elements of the anything are
sent the target.;
#X obj 36 257 cnv 15 300 20 empty empty empty 20 12 0 14 -4032 -66577
0;
#X text 38 258 targets;
#X text 35 160 outlet 1 anything: messages that do not have a valid
target name or whose target was not found.;
#X text 34 282 [param route] prepends its own path to the target name.
This allows the targeting of params with a relative path. Even if the
paths are relative \, they still need to start with a '/'.;
#X obj 412 225 ./test-param /id routing;
#X floatatom 482 292 5 0 0 0 - - -;
#X floatatom 553 261 5 0 0 0 - - -;
#X text 566 221 <-There is a [param route] connected to the first inlet
of this abstraction.;
#X text 594 259 <-This is connected to a [param /b] inside the abstraction.
;
#X text 518 293 <-This is connected to a [param /a] inside the abstraction.
;
#X msg 470 187 /b \$1;
#X msg 418 161 /a \$1;
#X floatatom 417 137 5 0 0 0 - - -;
#X floatatom 474 159 5 0 0 0 - - -;
#X connect 13 1 14 0;
#X connect 13 2 15 0;
#X connect 19 0 13 0;
#X connect 20 0 13 0;
#X connect 21 0 20 0;
#X connect 22 0 19 0;
#X restore -16 292 pd route;
#N canvas 18 136 986 455 gui 0;
#X obj 431 21 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 506 75 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 431 110 tof/param gui;
#X obj 11 292 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
0;
#X text 13 293 arguments;
#X obj 5 7 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
0;
#X obj 9 114 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
0;
#X text 14 114 inlets/outlets;
#X text 13 317 none.;
#X text 7 7 param gui;
#X floatatom 383 288 5 0 0 0 - - -;
#X obj 375 415 dac~;
#X obj 423 334 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X msg 383 310 /modulation/index \$1;
#X msg 420 355 /volume \$1;
#X obj 594 260 cnv 15 200 20 empty empty /FM_MOD/ 2 12 0 8 -258401
-262144 0;
#X obj 594 283 nbx 5 14 -1e+37 1e+37 0 0 /FM_MOD/modulation/freq /FM_MOD/modulation/freq_
modulation/freq 50 8 0 8 -1 -262144 -1 3 256;
#X obj 594 301 nbx 5 14 -1e+37 1e+37 0 0 /FM_MOD/modulation/index /FM_MOD/modulation/index_
modulation/index 50 8 0 8 -1 -262144 -1 20 256;
#X obj 594 319 hsl 100 15 0 1 0 0 /FM_MOD/volume /FM_MOD/volume_ volume
105 7 0 8 -1 -262144 -1 0 1;
#X obj 594 337 hsl 100 15 200 2000 0 0 /FM_MOD/carrier /FM_MOD/carrier_
carrier 105 7 0 8 -1 -262144 -1 3300 1;
#X obj 383 380 ./test-param /id FM_MOD /carrier 600;
#X text 8 32 Automatically builds a gui for params. The values of the
GUI elements are always up to date.;
#X text 618 378 <-Click this abstraction's properties menu. The [iemguts/propertybang]
bangs the [param gui] that creates the GUI window.;
#X obj 430 209 tof/param gui;
#X text 531 73 Destroy the created GUI (the only way to force its recreation).
;
#X text 453 10 Builds the gui for all params that are in the current
patch or in any children patches of this patch.;
#X text 9 65 GUIs will only be built for params that have GUI options
set with the /g keyword.;
#X msg 531 171 symbol /FM_MOD/modulation;
#X text 7 228 inlet 2 bang: destroy the previously created window (the
only way to force its recreation if the path does not change).;
#X text 9 140 inlet 1 bang: creates the GUIs one (or until the target
path changes) for all params in the current patch or lower and displays
the window.;
#X text 8 184 inlet 1 symbol: creates the GUIs one (or until the target
path changes) for all params that match the indicated path and displays
the window.;
#X msg 430 171 symbol /FM_MOD;
#X text 525 194 Only display the GUIs for params in the indicated path.
;
#X text 526 207 Each time the path changes \, the GUIs are rebuilt
and this can slow down Pure Data.;
#X connect 0 0 2 0;
#X connect 1 0 2 1;
#X connect 10 0 13 0;
#X connect 12 0 14 0;
#X connect 13 0 20 0;
#X connect 14 0 20 0;
#X connect 20 0 11 0;
#X connect 20 0 11 1;
#X connect 27 0 23 0;
#X connect 31 0 23 0;
#X restore -16 313 pd gui;
#X text 45 183 Defines a parameter to save/restore/route/display.;
#X text 48 205 Can save/restore any number of things in a param file.
;
#X text 48 226 Outputs the current param path.;
#X text 48 247 Outputs information about the params.;
#X text 48 268 Saves/restores params in a param file.;
#X text 47 289 Routes messages to params.;
#X text 48 310 Automatically builds a gui for params.;
#X text -17 151 Open the folowing subpatches for more information on
each class.;
#X text -17 112 [param] contains multiple classes. The class is selected
by the value of the first argument.;
#N canvas 360 337 548 560 anim 0;
#X obj 172 493 s \$0c;
#N canvas 393 451 450 300 rgbToNum 0;
#X obj 241 358 +;
#X obj 177 430 +;
#X obj 90 313 * -65536;
#X obj 196 319 * -256;
#X obj 310 327 * -1;
#X obj 177 461 - 1;
#X obj 184 496 outlet;
#X obj 85 281 int 0;
#X obj 196 270 int 0;
#X obj 343 272 int 0;
#X obj 166 126 unpack f f f;
#X obj 66 233 clip 0 255;
#X obj 228 230 clip 0 255;
#X obj 329 230 clip 0 255;
#X obj 165 87 inlet;
#X connect 0 0 1 1;
#X connect 1 0 5 0;
#X connect 2 0 1 0;
#X connect 3 0 0 0;
#X connect 4 0 0 1;
#X connect 5 0 6 0;
#X connect 7 0 2 0;
#X connect 8 0 3 0;
#X connect 9 0 4 0;
#X connect 10 0 11 0;
#X connect 10 1 12 0;
#X connect 10 2 13 0;
#X connect 11 0 7 0;
#X connect 12 0 8 0;
#X connect 13 0 9 0;
#X connect 14 0 10 0;
#X restore 171 434 pd rgbToNum;
#X msg 171 462 color \$1;
#X obj 137 65 t b b b;
#X obj 345 14 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#N canvas 0 22 680 639 hsvToRgb 0;
#X obj 197 94 route 0;
#X msg 197 66 \$2 \$3 \$1;
#X obj 241 121 unpack 0 0 0;
#X text 260 81 svh;
#X obj 197 38 inlet hsv;
#X obj 191 676 outlet rgb;
#X obj 411 159 * 6;
#X obj 390 206 % 6;
#X obj 360 183 t f f;
#X msg 360 159 0;
#X text 416 206 i;
#X obj 360 229 -;
#X obj 241 227 *;
#X obj 241 188 - 1;
#X obj 241 208 * -1;
#X obj 273 340 *;
#X obj 273 301 - 1;
#X obj 273 321 * -1;
#X obj 273 279 *;
#X obj 360 250 t f f;
#X obj 390 272 - 1;
#X obj 390 293 * -1;
#X obj 312 366 *;
#X obj 312 327 - 1;
#X obj 312 347 * -1;
#X obj 312 305 *;
#X obj 241 161 t f f f;
#X obj 248 421 pack 0 0 0 0;
#N canvas 388 287 646 315 select 0;
#X obj 290 37 inlet;
#X obj 16 247 outlet;
#X obj 92 104 t b l;
#X obj 125 128 unpack 0 0 0 0;
#X obj 89 43 inlet p q t v;
#X obj 92 128 i;
#X obj 92 151 select 0 1 2 3 4 5;
#X obj 16 223 pack 0 0 0;
#X obj 16 203 f;
#X obj 96 223 pack 0 0 0;
#X obj 96 203 f;
#X obj 176 223 pack 0 0 0;
#X obj 176 203 f;
#X obj 256 223 pack 0 0 0;
#X obj 256 203 f;
#X obj 336 223 pack 0 0 0;
#X obj 336 203 f;
#X obj 416 223 pack 0 0 0;
#X obj 416 203 f;
#X connect 0 0 5 1;
#X connect 2 0 5 0;
#X connect 2 1 3 0;
#X connect 3 0 7 2;
#X connect 3 0 9 2;
#X connect 3 0 12 1;
#X connect 3 0 14 1;
#X connect 3 0 15 1;
#X connect 3 0 17 1;
#X connect 3 1 10 1;
#X connect 3 1 13 1;
#X connect 3 1 17 2;
#X connect 3 2 7 1;
#X connect 3 2 11 2;
#X connect 3 2 16 1;
#X connect 3 3 8 1;
#X connect 3 3 9 1;
#X connect 3 3 11 1;
#X connect 3 3 13 2;
#X connect 3 3 15 2;
#X connect 3 3 18 1;
#X connect 4 0 2 0;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 6 1 10 0;
#X connect 6 2 12 0;
#X connect 6 3 14 0;
#X connect 6 4 16 0;
#X connect 6 5 18 0;
#X connect 7 0 1 0;
#X connect 8 0 7 0;
#X connect 9 0 1 0;
#X connect 10 0 9 0;
#X connect 11 0 1 0;
#X connect 12 0 11 0;
#X connect 13 0 1 0;
#X connect 14 0 13 0;
#X connect 15 0 1 0;
#X connect 16 0 15 0;
#X connect 17 0 1 0;
#X connect 18 0 17 0;
#X restore 253 466 pd select;
#X msg 197 488 \$1 \$1 \$1;
#X obj 136 447 clip 0 1;
#X obj 241 141 clip 0 1;
#X obj 280 183 clip 0 1;
#X obj 360 119 clip 0 1;
#X obj 360 139 select 1;
#X msg 149 367 \$1;
#X obj 199 383 abs;
#X obj 238 362 abs;
#X obj 281 396 abs;
#X obj 194 546 unpack f f f;
#X obj 191 577 * 255;
#X obj 239 576 * 255;
#X obj 306 577 * 255;
#X obj 235 630 pack f f f;
#X obj 196 604 int;
#X obj 244 603 int;
#X obj 296 608 int;
#X connect 0 0 35 0;
#X connect 0 1 2 0;
#X connect 1 0 0 0;
#X connect 2 0 31 0;
#X connect 2 1 32 0;
#X connect 2 2 33 0;
#X connect 4 0 1 0;
#X connect 6 0 8 0;
#X connect 7 0 11 1;
#X connect 7 0 28 1;
#X connect 8 0 11 0;
#X connect 8 1 7 0;
#X connect 9 0 8 0;
#X connect 11 0 19 0;
#X connect 12 0 36 0;
#X connect 13 0 14 0;
#X connect 14 0 12 0;
#X connect 15 0 37 0;
#X connect 16 0 17 0;
#X connect 17 0 15 0;
#X connect 18 0 16 0;
#X connect 19 0 18 1;
#X connect 19 1 20 0;
#X connect 20 0 21 0;
#X connect 21 0 25 1;
#X connect 22 0 38 0;
#X connect 23 0 24 0;
#X connect 24 0 22 0;
#X connect 25 0 23 0;
#X connect 26 0 13 0;
#X connect 26 1 18 0;
#X connect 26 2 25 0;
#X connect 27 0 28 0;
#X connect 28 0 39 0;
#X connect 29 0 39 0;
#X connect 30 0 29 0;
#X connect 31 0 26 0;
#X connect 32 0 12 1;
#X connect 32 0 27 3;
#X connect 32 0 15 1;
#X connect 32 0 22 1;
#X connect 33 0 34 0;
#X connect 34 0 9 0;
#X connect 34 1 6 0;
#X connect 35 0 30 0;
#X connect 36 0 27 0;
#X connect 37 0 27 1;
#X connect 38 0 27 2;
#X connect 39 0 40 0;
#X connect 39 1 41 0;
#X connect 39 2 42 0;
#X connect 40 0 44 0;
#X connect 41 0 45 0;
#X connect 42 0 46 0;
#X connect 43 0 5 0;
#X connect 44 0 43 0;
#X connect 45 0 43 1;
#X connect 46 0 43 2;
#X restore 172 413 pd hsvToRgb;
#X obj 35 132 random 1024;
#X obj 35 170 / 1024;
#X obj 315 185 / 1024;
#X obj 314 131 random 512;
#X obj 313 158 + 512;
#X obj 147 209 / 1024;
#X obj 145 182 + 512;
#X obj 145 154 random 512;
#X obj 197 46 metro 5000;
#X obj 177 12 loadbang;
#X msg 46 226 \$1 5000;
#X msg 146 235 \$1 5000;
#X msg 320 254 \$1 5000;
#X obj 239 361 pack 0.4423 0.87 0.67;
#X obj 50 258 line 0.44 150;
#X obj 148 269 line 0.87 150;
#X obj 320 291 line 0.67 150;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 6 0;
#X connect 3 1 13 0;
#X connect 3 2 9 0;
#X connect 4 0 14 0;
#X connect 5 0 1 0;
#X connect 6 0 7 0;
#X connect 7 0 16 0;
#X connect 8 0 18 0;
#X connect 9 0 10 0;
#X connect 10 0 8 0;
#X connect 11 0 17 0;
#X connect 12 0 11 0;
#X connect 13 0 12 0;
#X connect 14 0 3 0;
#X connect 15 0 14 0;
#X connect 16 0 20 0;
#X connect 17 0 21 0;
#X connect 18 0 22 0;
#X connect 19 0 5 0;
#X connect 20 0 19 0;
#X connect 21 0 19 1;
#X connect 22 0 19 2;
#X restore 325 80 pd anim;
#X obj -23 2 cnv 15 400 100 empty \$0c empty 20 12 0 14 -104978 -262144
0;
#X text -18 54 author: mrtoftrash@gmail.com;
#X text -19 33 tags: state routing;
#X text -17 1 description: [param] is a state saving and message routing
system.;
#X text -19 75 version: 2009-10-27 (de localized release);
#X text -20 341 Keyword for defining the param path inside abstractions:
;
#N canvas 276 205 494 344 META 0;
#X text 12 85 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
Wilkes for Pd version 0.42.;
#X text 12 45 LICENSE GPL v2;
#X text 12 65 AUTHOR Thomas Ouellet Fredericks;
#X text 12 25 DESCRIPTION state saving and message routing system;
#X text 12 5 KEYWORDS control needs_work (xlets);
#X restore 320 370 pd META;