#N canvas 469 23 545 605 12;
#X floatatom 202 412 7 0 0 0 - - - 0;
#X msg 252 308 set \$1;
#X obj 171 296 bng 18 250 50 0 empty empty empty 8 -8 0 10 #dfdfdf #000000 #000000;
#N canvas 771 89 559 433 old-behavior 0;
#X floatatom 134 318 5 0 0 0 - - - 0;
#X floatatom 112 387 5 0 0 0 - - - 0;
#X msg 88 193 \; pd compatibility 0.45;
#X msg 282 193 \; pd compatibility 0.46;
#X text 99 156 Old "compatible" behavior, f 16;
#X obj 115 343 hsl 128 18 0 127 0 0 empty empty empty 0 -9 0 10 #dfdfdf #000000 #000000 0 1;
#X text 278 163 New "correct" behavior;
#X floatatom 275 263 5 0 0 0 - - - 0;
#X msg 321 262 100;
#X msg 366 262 -100;
#X floatatom 321 377 5 0 0 0 - - - 0;
#X obj 324 333 hsl 128 18 0 127 0 0 empty empty empty 0 -9 0 10 #dfdfdf #000000 #000000 0 1;
#X obj 321 300 clip 0 127;
#X text 407 293 forcing clip before input, f 13;
#X msg 134 289 100;
#X msg 175 289 -100;
#X obj 74 255 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X msg 112 255 set -13.7;
#X text 48 19 Prior to Pd version 0.46 \, values sent to IEM GUIs were restricted to the control's own values before passing them through to the output. This behavior changed in 0.46 to allow values outside the range to pass through. You can toggle back and forth between the two behaviors using the messages boxes below. If you want to get this behavior in an up-to-date patch \, you can use a "clip" object to restrict the range of numbers. Note this also affects the 'set' message., f 67;
#X connect 0 0 5 0;
#X connect 5 0 1 0;
#X connect 7 0 12 0;
#X connect 8 0 12 0;
#X connect 9 0 12 0;
#X connect 11 0 10 0;
#X connect 12 0 11 0;
#X connect 14 0 0 0;
#X connect 15 0 0 0;
#X connect 16 0 5 0;
#X connect 17 0 5 0;
#X restore 239 531 pd old-behavior;
#X obj 202 451 print hsl;
#X floatatom 202 296 5 0 0 0 - - - 0;
#X floatatom 252 285 5 0 0 0 - - - 0;
#X obj 205 363 hsl 128 18 0 127 0 0 empty empty Slider 73 -11 0 14 #dcdcdc #000000 #ff0400 0 1;
#X obj 35 14 hsl 128 18 0 127 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X text 358 494 (c) musil@iem.kug.ac.at;
#X text 394 510 IEM KUG \, Graz \, Austria \, 2002, f 14;
#X text 19 577 see also:;
#X text 316 424 This object is part of the "iemguis" library \, natively included in Pd version 0.34., f 28;
#X text 63 498 COMPATIBILITY NOTE: The behavior changed in Pd 0.46! Check details and how to get it back:, f 33;
#N canvas 665 62 613 486 position 0;
#X floatatom 142 146 4 0 1000 0 - - - 0;
#X obj 191 173 t b f;
#X floatatom 191 146 5 0 500 0 - - - 0;
#X msg 142 243 pos \$1 \$2;
#X text 63 146 x-position;
#X text 235 145 y-position;
#X msg 264 183 delta 1 0;
#X text 337 182 increase x by 1;
#X msg 274 205 delta -1 0;
#X text 353 204 decrease x by 1;
#X msg 286 239 delta 0 1;
#X msg 292 261 delta 0 -1;
#X text 363 238 increase y by 1;
#X text 376 263 decrease y by 1;
#X msg 301 293 delta 1 1;
#X text 376 294 increase both by 1;
#X text 394 315 decrease both by -1;
#X msg 308 315 delta -1 -1;
#X obj 142 202 pack 265 350;
#X text 293 66 The 'delta' message changes the position of the object by a difference amount. It takes a list of x/y delta in pixels., f 40;
#X text 40 66 The 'pos' message takes a list of x/y coordinates in pixels and sets the objects's position., f 33;
#X text 159 19 You can also set and change the position of the object in the patch. Check below:, f 41;
#X obj 265 350 hsl 128 18 0 127 0 0 empty empty empty -2 -8 0 10 #dfdfdf #000000 #000000 0 1;
#X connect 0 0 18 0;
#X connect 1 0 18 0;
#X connect 1 1 18 1;
#X connect 2 0 1 0;
#X connect 3 0 22 0;
#X connect 6 0 22 0;
#X connect 8 0 22 0;
#X connect 10 0 22 0;
#X connect 11 0 22 0;
#X connect 14 0 22 0;
#X connect 17 0 22 0;
#X connect 18 0 3 0;
#X restore 425 334 pd position;
#N canvas 398 122 358 424 properties 0;
#N canvas 710 92 656 573 colors 0;
#X floatatom 72 244 3 0 29 0 - - - 0;
#X floatatom 108 244 3 0 29 0 - - - 0;
#X floatatom 177 249 3 0 29 0 - - - 0;
#X text 104 224 front;
#X text 170 224 label;
#X obj 108 273 t b f;
#X obj 177 275 t b f;
#X msg 72 343 color \$1 \$2 \$3;
#X obj 72 306 pack 0 22 22, f 20;
#X text 181 343 presets;
#X symbolatom 507 340 9 0 0 0 - - - 0;
#X symbolatom 421 339 9 0 0 0 - - - 0;
#X symbolatom 335 339 9 0 0 0 - - - 0;
#X obj 475 370 t b s;
#X obj 389 370 t b s;
#X obj 258 224 loadbang;
#X obj 335 408 pack symbol symbol symbol;
#X msg 335 437 color \$1 \$2 \$3;
#X msg 258 258 list #ffffff #000000 #000000, f 7;
#X text 21 224 background;
#X text 444 438 RGB in hexadecimal;
#X text 67 17 The 'color' message takes a list of three values to set background \, front and label colors \, respectively. Integers from 0 to 29 represent the 30 preset colors found in the properties window \, values above are wrapped., f 77;
#X text 68 68 Negative integers were used to encode RGB values (and that still works for backwards compatibility). But since Pd 0.47-0 \, you can set colors with hexadecimal RGB symbol values \, which are followed by "#"., f 77;
#X text 346 133 Set RGB values in the sliders;
#X obj 338 509 hsl 128 18 0 127 0 0 empty empty Label 33 -13 0 20 #ffffff #000000 #000000 0 1;
#N canvas 1044 268 390 482 label 0;
#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc #fcfcfc #000000 0 1;
#X obj 109 225 t b f;
#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 #000000 #000000 0 1;
#X obj 80 341 pack s s s;
#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 #000000 #000000 0 1;
#X obj 81 250 t b f;
#X obj 147 257 makefilename %02x;
#X obj 113 284 makefilename %02x;
#X obj 74 311 makefilename %02x;
#X text 66 56 label;
#X obj 80 406 outlet;
#X msg 80 370 symbol #\$1\$2\$3;
#X obj 161 185 loadbang;
#X msg 161 217 0;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 6 0;
#X connect 2 0 5 0;
#X connect 3 0 11 0;
#X connect 4 0 8 0;
#X connect 5 0 4 0;
#X connect 5 1 7 0;
#X connect 6 0 3 2;
#X connect 7 0 3 1;
#X connect 8 0 3 0;
#X connect 11 0 10 0;
#X connect 12 0 13 0;
#X connect 13 0 6 0;
#X connect 13 0 7 0;
#X coords 0 -1 1 1 80 170 2 50 50;
#X restore 507 158 pd label;
#N canvas 965 279 390 482 label 0;
#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc #fcfcfc #000000 0 1;
#X obj 109 225 t b f;
#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 #000000 #000000 0 1;
#X obj 74 341 pack s s s;
#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 #000000 #000000 0 1;
#X obj 81 250 t b f;
#X obj 146 257 makefilename %02x;
#X obj 112 284 makefilename %02x;
#X obj 74 311 makefilename %02x;
#X obj 74 406 outlet;
#X text 69 56 front;
#X msg 74 370 symbol #\$1\$2\$3;
#X obj 177 168 loadbang;
#X msg 177 200 0;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 6 0;
#X connect 2 0 5 0;
#X connect 3 0 11 0;
#X connect 4 0 8 0;
#X connect 5 0 4 0;
#X connect 5 1 7 0;
#X connect 6 0 3 2;
#X connect 7 0 3 1;
#X connect 8 0 3 0;
#X connect 11 0 9 0;
#X connect 12 0 13 0;
#X connect 13 0 6 0;
#X connect 13 0 7 0;
#X coords 0 -1 1 1 80 170 2 50 50;
#X restore 421 158 pd label;
#N canvas 894 296 390 482 label 0;
#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc #fcfcfc #000000 0 1;
#X obj 109 225 t b f;
#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 #000000 #000000 0 1;
#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 #000000 #000000 0 1;
#X obj 81 250 t b f;
#X obj 221 257 makefilename %02x;
#X obj 141 284 makefilename %02x;
#X obj 61 321 makefilename %02x;
#X obj 61 416 outlet;
#X text 52 56 background;
#X msg 61 380 symbol #\$1\$2\$3;
#X obj 176 59 loadbang;
#X msg 176 91 set 255;
#X obj 176 176 route set;
#X obj 61 351 pack symbol symbol symbol;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 5 0;
#X connect 2 0 4 0;
#X connect 3 0 7 0;
#X connect 4 0 3 0;
#X connect 4 1 6 0;
#X connect 5 0 14 2;
#X connect 6 0 14 1;
#X connect 7 0 14 0;
#X connect 10 0 8 0;
#X connect 11 0 12 0;
#X connect 12 0 3 0;
#X connect 12 0 2 0;
#X connect 12 0 0 0;
#X connect 12 0 13 0;
#X connect 13 0 5 0;
#X connect 13 0 6 0;
#X connect 14 0 10 0;
#X coords 0 -1 1 1 80 170 2 50 50;
#X restore 335 158 pd label;
#N canvas 642 125 486 521 old_way 0;
#X obj 240 448 hsl 128 18 0 127 0 0 empty empty Label 33 -13 0 20 #ffffff #000000 #000000 0 1;
#N canvas 1136 244 402 495 label 0;
#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc #fcfcfc #000000 0 1;
#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 #000000 #000000 0 1;
#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 #000000 #000000 0 1;
#X text 66 56 label;
#X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1);
#X obj 311 319 t b f;
#X obj 169 319 t b f;
#X obj 59 413 outlet;
#X connect 0 0 5 0;
#X connect 1 0 6 0;
#X connect 2 0 4 0;
#X connect 4 0 7 0;
#X connect 5 0 4 0;
#X connect 5 1 4 2;
#X connect 6 0 4 0;
#X connect 6 1 4 1;
#X coords 0 -1 1 1 80 170 2 50 50;
#X restore 349 144 pd label;
#X text 188 119 Set RGB values in the sliders;
#N canvas 955 131 392 476 label 0;
#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc #fcfcfc #000000 0 1;
#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 #000000 #000000 0 1;
#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 #000000 #000000 0 1;
#X obj 61 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1);
#X obj 313 269 t b f;
#X obj 171 269 t b f;
#X obj 61 413 outlet;
#X text 52 56 background;
#X obj 180 83 loadbang;
#X msg 202 134 set 255;
#X msg 181 195 255 255 255;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 3 0;
#X connect 4 1 3 2;
#X connect 5 0 3 0;
#X connect 5 1 3 1;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 0 0;
#X connect 9 0 1 0;
#X connect 9 0 2 0;
#X connect 10 0 3 0;
#X coords 0 -1 1 1 80 170 2 50 50;
#X restore 177 144 pd label;
#N canvas 1096 192 402 495 label 0;
#X obj 102 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #0800fc #fcfcfc #000000 0 1;
#X obj 81 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #00fc00 #000000 #000000 0 1;
#X obj 61 80 vsl 15 128 0 255 0 0 empty empty empty 0 -9 0 10 #fc0000 #000000 #000000 0 1;
#X obj 59 361 expr -($f1 * 65536 + $f2 * 256 + $f3 + 1);
#X obj 311 319 t b f;
#X obj 169 319 t b f;
#X obj 59 413 outlet;
#X text 66 56 front;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 3 0;
#X connect 4 1 3 2;
#X connect 5 0 3 0;
#X connect 5 1 3 1;
#X coords 0 -1 1 1 80 170 2 50 50;
#X restore 263 144 pd label;
#X text 25 173 Open subpatches for the conversion ====>, f 20;
#X msg 237 381 color -1.67772e+07 -1 -1;
#N canvas 574 194 328 335 pack 0;
#X obj 73 47 inlet;
#X obj 123 47 inlet;
#X obj 206 47 inlet;
#X msg 73 152 color \$1 \$2 \$3;
#X obj 206 85 t b f;
#X obj 123 85 t b f;
#X obj 73 123 pack float -1 -1, f 24;
#X obj 73 187 list prepend set;
#X obj 73 213 list trim;
#X obj 73 246 t b a;
#X obj 73 283 outlet;
#X connect 0 0 6 0;
#X connect 1 0 5 0;
#X connect 2 0 4 0;
#X connect 3 0 7 0;
#X connect 4 0 6 0;
#X connect 4 1 6 2;
#X connect 5 0 6 0;
#X connect 5 1 6 1;
#X connect 6 0 3 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 9 1 10 0;
#X restore 237 345 pd pack;
#X f 8;
#X text 98 29 The RGB color scheme can also be encoded \, for backwards compatibility \, as negative inetegers. For "R" (red) \, "G" (green) & "B" (blue) values from 0 to 255 \, the conversion formula is \; float = -(R * 65536 + G * 256 + B + 1)., f 47;
#X connect 1 0 7 2;
#X connect 3 0 7 0;
#X connect 4 0 7 1;
#X connect 6 0 0 0;
#X connect 7 0 6 0;
#X restore 74 508 pd old_way;
#X text 46 450 open subpatch below for the old way of encoding RGB values., f 20;
#X text 47 432 See also:;
#X text 61 157 Open subpatches for the conversion from RGB to hexadecimal ------------->, f 38;
#X connect 0 0 8 0;
#X connect 1 0 5 0;
#X connect 2 0 6 0;
#X connect 5 0 8 0;
#X connect 5 1 8 1;
#X connect 6 0 8 0;
#X connect 6 1 8 2;
#X connect 7 0 24 0;
#X connect 8 0 7 0;
#X connect 10 0 13 0;
#X connect 11 0 14 0;
#X connect 12 0 16 0;
#X connect 13 0 16 0;
#X connect 13 1 16 2;
#X connect 14 0 16 0;
#X connect 14 1 16 1;
#X connect 15 0 18 0;
#X connect 16 0 17 0;
#X connect 17 0 24 0;
#X connect 18 0 16 0;
#X connect 25 0 10 0;
#X connect 26 0 11 0;
#X connect 27 0 12 0;
#X coords 0 0 1 1 85 60 0;
#X restore 159 294 pd colors;
#N canvas 730 23 573 410 size 0;
#X floatatom 224 131 4 50 300 0 - - - 0;
#X obj 266 158 t b f;
#X floatatom 266 131 5 10 100 0 - - - 0;
#X msg 224 228 size \$1 \$2;
#X text 176 130 width;
#X text 310 130 height;
#X obj 224 187 pack 128 18;
#X text 171 63 The size message sets the object's size and takes width and height values in pixels., f 44;
#X floatatom 60 27 4 25 100 0 - - - 0;
#X obj 102 54 t b f;
#X floatatom 102 27 5 10 400 0 - - - 0;
#X msg 60 124 size \$1 \$2;
#X text 12 26 width;
#X text 146 26 height;
#X obj 60 83 pack 128 18;
#X obj 60 159 vsl 19 162 0 127 0 0 empty empty empty 0 -9 0 12 #dfdfdf #000000 #000000 0 1;
#X obj 227 263 hsl 162 19 0 127 0 0 empty empty empty -2 -10 0 12 #dfdfdf #000000 #000000 0 1;
#X connect 0 0 6 0;
#X connect 1 0 6 0;
#X connect 1 1 6 1;
#X connect 2 0 1 0;
#X connect 3 0 16 0;
#X connect 6 0 3 0;
#X connect 8 0 14 0;
#X connect 9 0 14 0;
#X connect 9 1 14 1;
#X connect 10 0 9 0;
#X connect 11 0 15 0;
#X connect 14 0 11 0;
#X restore 173 98 pd size;
#N canvas 774 174 551 450 label 0;
#X msg 79 283 label \$1;
#X floatatom 226 165 4 0 3 0 - - - 0;
#X obj 268 192 t b f;
#X floatatom 268 165 5 5 50 0 - - - 0;
#X msg 226 262 label_font \$1 \$2;
#X text 188 164 type;
#X text 312 163 size;
#X obj 226 92 vradio 19 1 0 3 empty empty empty 0 -8 0 10 #dfdfdf #000000 #000000 0;
#X text 247 91 DejaVu Sans Mono;
#X text 247 111 Helvetica;
#X text 247 131 Times;
#X msg 91 251 symbol empty;
#X floatatom 380 181 4 -150 200 0 - - - 0;
#X obj 422 208 t b f;
#X floatatom 422 181 5 -150 150 0 - - - 0;
#X msg 380 278 label_pos \$1 \$2;
#X text 362 180 x;
#X text 466 179 y;
#X text 375 157 label offset:;
#X msg 59 186 symbol label;
#X obj 229 372 hsl 128 18 0 127 0 1 empty empty label 135 10 0 20 #dfdfdf #000000 #000000 1700 1;
#X msg 79 214 symbol my\ label;
#X text 86 25 The 'label' message sets the label symbol \, setting it to "empty" clears it. The 'label_font' message sets font type and size and 'label_pos' sets the x/y coordinates., f 54;
#X obj 227 221 pack 0 20, f 11;
#X obj 380 237 pack 135 10;
#X connect 0 0 20 0;
#X connect 1 0 23 0;
#X connect 2 0 23 0;
#X connect 2 1 23 1;
#X connect 3 0 2 0;
#X connect 4 0 20 0;
#X connect 7 0 1 0;
#X connect 11 0 0 0;
#X connect 12 0 24 0;
#X connect 13 0 24 0;
#X connect 13 1 24 1;
#X connect 14 0 13 0;
#X connect 15 0 20 0;
#X connect 19 0 0 0;
#X connect 21 0 0 0;
#X connect 23 0 4 0;
#X connect 24 0 15 0;
#X restore 166 266 pd label;
#N canvas 803 161 434 463 init 0;
#X msg 144 164 init \$1;
#X obj 144 132 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1;
#X obj 147 203 hsl 128 18 0 127 0 1 empty empty empty 0 -9 0 10 #dfdfdf #000000 #000000 1700 1;
#X text 167 132 init on/off;
#X obj 144 244 print hsl-init;
#X text 46 23 The 'init' message takes a float and sets to 'init mode' (if different than zero) or 'no init' (if equal to zero - the default value)., f 46;
#X text 46 74 If in 'init mode' \, when loading the patch \, the objects sends its holding value from when the patch was last saved., f 46;
#X obj 299 407 savestate;
#X text 151 407 see also:;
#X text 41 300 Therefore \, this actually a state saving mechanism and also a "loadbang" feature. But as a savestating mechanism it is limited because it can't work for abstractions. In order to deal with state saving in abstractions you have to rely on the [savestate] object., f 52;
#X obj 229 406 loadbang;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 2 0 4 0;
#X restore 173 182 pd init;
#N canvas 385 103 819 404 send-receive 0;
#X msg 210 202 receive empty;
#X msg 241 266 send empty;
#X floatatom 61 179 5 0 0 0 - - - 0;
#X floatatom 61 299 5 0 0 0 - - - 0;
#X obj 213 314 hsl 128 18 0 127 0 1 empty empty empty 0 -9 0 10 #dfdfdf #000000 #000000 1700 1;
#X text 39 96 The 'send' and 'receive' messages take a symbol to set \, respectively \, the send and receive symbol. If you set these to "empty" \, the symbols are cleared., f 50;
#X text 39 20 The object can have a send and receive symbol \, in which cases the inlet/outlet are visually hidden (but still functional in the patch). This way \, the object can communicate to [send] and [receive] objects., f 50;
#X msg 194 177 receive \\\$0-hsl_rcv;
#X msg 232 242 send \\\$0-hsl_snd;
#X obj 61 213 s \$0-hsl_rcv;
#X obj 61 268 r \$0-hsl_snd;
#X text 428 22 Note how you need to escape dollar signs with backslashes to set something like "\$0-x". But the backslash is not needed if you set it directly via the properties window., f 50;
#X obj 709 301 r \$0-slider;
#X floatatom 709 325 5 0 0 0 - - - 0;
#X floatatom 709 224 5 0 127 0 - - - 0;
#X obj 709 250 s \$0-slider;
#X obj 668 222 vsl 18 128 0 127 0 1 \$0-slider \$0-slider empty 0 -9 0 10 #dfdfdf #000000 #000000 0 1;
#X text 428 96 Feedback protection: iemguis can have the same name for both the send and receive symbols. This works without 'stack overflow' errors because they have feedback protection. See example below., f 50;
#X text 428 171 WARNING:;
#X text 434 195 Feedback protection comes at a cost. You should NOT use inlets/outlets to either send values to or get them from sliders \, just rely on the [send] and [receive] objects., f 29;
#X text 434 286 You probably also just want to send it numbers \, not configuration changes (like colors). If you need to also use the inlet and/or outlet \, DON'T rely on feedback protection!, f 29;
#X connect 0 0 4 0;
#X connect 1 0 4 0;
#X connect 2 0 9 0;
#X connect 7 0 4 0;
#X connect 8 0 4 0;
#X connect 10 0 3 0;
#X connect 12 0 13 0;
#X connect 14 0 15 0;
#X restore 117 238 pd send-receive;
#N canvas 872 191 424 359 steady-on-click 0;
#X msg 113 204 steady \$1;
#X obj 113 173 tgl 19 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000 0 1;
#X text 31 105 The 'steady' message takes a non zero value to set it to "steady on click" mode. A zero value sets it to "jump on click" mode., f 52;
#X msg 130 239 steady 1;
#X msg 141 266 steady 0;
#X text 210 266 jump on click;
#X text 199 240 steady on click (default);
#X obj 116 303 hsl 128 18 0 127 0 0 empty empty empty 0 -9 0 10 #dfdfdf #000000 #000000 0 1;
#X text 31 16 By default \, the slider is in "steady on click" mode \, where you click and drag from its current position (regardless where you click on). Alternatively \, in "jump on click" mode \, the value jumps to the position you clicked on the slider and drags from there., f 52;
#X connect 0 0 7 0;
#X connect 1 0 0 0;
#X connect 3 0 7 0;
#X connect 4 0 7 0;
#X restore 96 210 pd steady-on-click;
#N canvas 474 176 838 321 linear/log 0;
#X obj 146 239 hsl 128 18 1 1000 1 0 empty empty empty 0 -9 0 10 #dfdfdf #000000 #000000 0 1;
#X msg 143 168 lin;
#X msg 156 199 log;
#X text 174 170 linear;
#X text 190 199 logarithmic;
#X floatatom 143 276 8 0 0 0 - - - 0;
#X text 125 239 1;
#X text 280 239 1000;
#X text 71 30 The slider's behavior can be linear (default) or logarithmic and you can set this with the 'lin' or 'log' messages \, respectively. Check below the difference. In the logarithmic mode \, the range can never never touch or cross 0 (both minimum and maximum can be positive or negative)., f 46;
#X obj 449 222 hsl 128 18 110 1760 1 0 empty empty empty 0 -9 0 10 #dfdfdf #000000 #000000 0 1;
#X floatatom 446 256 9 0 0 0 - - - 0;
#X msg 446 193 440;
#X text 423 27 The 'log' mode is useful for dealing with things like frequencies in the way we perceive them (which is logarithmic). Below we have a frequency range that is from 110 to 1760 \, which covers 4 octaves from A2 to A6. The mid point is A4 (440 hz). You can see then how when the slider reaches the mid point of the slider you have '440' as the mid value between 110 and 1760! You can also use it for a frequency or gain multiplier from 0.5 to 2 where 1 is the mid point (also check it below)., f 53;
#X obj 638 222 hsl 128 18 0.5 2 1 0 empty empty empty 0 -9 0 10 #dfdfdf #000000 #000000 0 1;
#X floatatom 635 256 9 0 0 0 - - - 0;
#X msg 635 193 1;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 9 0 10 0;
#X connect 11 0 9 0;
#X connect 13 0 14 0;
#X connect 15 0 13 0;
#X restore 131 154 pd linear/log;
#N canvas 893 185 398 379 range 0;
#X floatatom 169 106 4 -100 0 0 - - - 0;
#X obj 211 133 t b f;
#X floatatom 211 106 5 0 100 0 - - - 0;
#X obj 172 260 hsl 128 18 0 127 0 0 empty empty empty 0 -9 0 10 #dfdfdf #000000 #000000 0 1;
#X msg 169 204 range \$1 \$2;
#X obj 169 162 pack 0 127, f 11;
#X text 110 105 minimum;
#X text 255 104 maximum;
#X floatatom 169 301 5 0 0 0 - - - 0;
#X floatatom 97 206 5 0 0 0 - - - 0;
#X text 39 21 The 'range' message sets the object's range. Note that values sent to the GUI can be outside this range and the values are passed through., f 44;
#X connect 0 0 5 0;
#X connect 1 0 5 0;
#X connect 1 1 5 1;
#X connect 2 0 1 0;
#X connect 3 0 8 0;
#X connect 4 0 3 0;
#X connect 5 0 4 0;
#X connect 9 0 3 0;
#X restore 166 126 pd range;
#N canvas 892 162 450 312 loading-args 0;
#X text 59 127 For instance \, below \, we have \$0 used in the label field \, which gets expanded to the patch ID number. Using something like "\$1" is useful if you're using the object in an abstraction \, then you can load a value passed as an argument into a parameter., f 49;
#X obj 148 256 hsl 128 18 0 127 0 0 empty empty \$0-Label 43 -11 0 14 #dcdcdc #000000 #0400fc 0 1;
#X text 59 26 Note that all the parameters that you can set by inserting a number or symbol into a field in the properties window can also load dollar sign arguments (\$0 \, \$1 \, \$2 \, and so on). Namely \, these parameters are: width \, height \, lower and upper range \, send/receive symbols \, label \, label offset and font size., f 49;
#X restore 141 366 pd loading-args;
#X text 36 335 Loading arguments in properties:;
#X text 45 13 All the parameters from the properties window can be set via messages as well. See examples and more details on each parameter in the subpatches below:, f 39;
#X restore 411 306 pd properties;
#X obj 93 577 all_guis;
#N canvas 599 87 665 460 reference 0;
#X obj 8 52 cnv 5 640 5 empty empty INLET: 8 18 0 13 #202020 #000000 0;
#X text 118 203 label <symbol> - sets label symbol., f 72;
#X text 42 222 label_font <float \, float> -;
#X text 49 254 label_pos <float \, float> -;
#X text 237 253 sets label position., f 55;
#X obj 7 429 cnv 5 640 5 empty empty empty 8 18 0 13 #202020 #000000 0;
#X text 125 303 send <symbol> - sets send symbol., f 71;
#X text 97 322 receive <symbol> - sets receive symbol., f 75;
#X text 133 272 color <list> -;
#X text 237 271 first element sets background color and third sets font color (either floats or symbols in hexadecimal format).;
#X text 237 221 sets font type <0: DejaVu Sans Mono \, 1: Helvetica \, 2: Times> and font size., f 50;
#X text 90 341 pos <float \, float> - sets position in the patch canvas., f 76;
#X text 77 360 delta <float \, float> -;
#X text 237 359 changes the position by a x/y delta in pixels., f 55;
#X text 181 63 float - set and output number., f 63;
#X text 132 168 init <float> - non zero sets to init mode., f 70;
#X obj 7 388 cnv 5 640 5 empty empty OUTLET: 8 18 0 13 #202020 #000000 0;
#X obj 45 18 hsl 128 18 0 127 0 0 empty empty empty -2 -8 0 10 #fcfcfc #000000 #000000 0 1;
#X text 76 116 range <float \, float> - sets minimum and maximum range., f 78;
#X text 195 133 lin - sets mode to linear., f 61;
#X text 195 150 log - sets mode to logarithmic., f 61;
#X text 118 185 steady <float> - non zero sets to steady \, zero sets to jump on click., f 72;
#X text 181 401 float - slider value., f 63;
#X text 83 80 size <float \, float> - width and height in pixels., f 77;
#X text 83 99 orientation <float> - non zero sets to vertical \, zero sets to horizontal., f 77;
#X text 185 17 - Sliders., f 44;
#X restore 361 15 pd reference;
#X text 452 15 <= click;
#X obj 7 49 cnv 1 525 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X obj 7 564 cnv 1 525 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X text 22 60 The slider GUI (Graphical User Interface) sends numbers via clicking and dragging. The values are evenly spread depending on the slider's range and size - use shift-click and drag for fine-tuning by a factor of a hundredth. Incoming floats set the slider's value and are passed through (even if outside the slider's range). The 'set' message only sets the slider value without output. A bang message sends the slider's value., f 70;
#X obj 32 282 vsl 18 140 0 127 0 0 empty empty empty 0 -9 0 12 #dfdfdf #000000 #000000 0 1;
#X text 171 14 - [vsl]/[hsl]: Sliders;
#X obj 32 460 print vsl;
#X text 323 576 updated for Pd version 0.53;
#X floatatom 32 434 5 0 0 0 - - - 0;
#X text 58 286 Vertical;
#X text 53 357 <--;
#X text 78 357 click & drag --> (shift-click for fine tuning). Right click for properties., f 16;
#X text 255 384 Horizontal;
#X text 22 165 Insert it from the Put menu (named as "Vslider" or "Hslider") or its shortcuts for the Vertical and Horizontal versions respectively. Alternatively \, create it by typing "vslider" or "vsl" (for vertical) and "hslider" or "hsl" (for horizontal) into an object box. You can change the orientation from vertical to horizontal and vice versa via the orientation message. Also right click for properties to set size \, colors \, labels and more., f 70;
#N canvas 730 23 535 369 orientation 0;
#X obj 189 162 hsl 162 19 0 127 0 0 empty empty empty 0 -9 0 12 #dfdfdf #000000 #000000 0 1;
#X msg 186 126 orientation \$1;
#X obj 186 94 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1;
#X text 70 19 The 'orientation' message changes the object from vertical to horizontal and vice versa. A non zero sets to vertical and zero sets to horizontal.;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X restore 405 276 pd orientation;
#N canvas 709 114 427 328 example 0;
#X obj 173 146 hsl 128 18 0 1 0 0 empty empty volume -2 -8 0 10 #dfdfdf #000000 #000000 0 1;
#X obj 170 169 pow 4;
#X obj 170 250 line~;
#X obj 91 224 *~;
#X obj 91 278 dac~;
#X msg 170 221 \$1 10;
#X floatatom 170 195 10 0 0 0 - - - 0;
#X obj 94 105 hsl 128 18 220 880 1 0 empty empty frequency -2 -8 0 10 #dfdfdf #000000 #000000 0 1;
#X floatatom 91 136 7 0 0 0 - - - 0;
#X obj 91 171 osc~ 220;
#X text 76 41 Using sliders to control the frequency and volume of an oscillator., f 38;
#X msg 280 237 \; pd dsp \$1;
#X obj 280 202 set-dsp-tgl;
#X text 311 206 DSP on/off;
#X connect 0 0 1 0;
#X connect 1 0 6 0;
#X connect 2 0 3 1;
#X connect 3 0 4 0;
#X connect 3 0 4 1;
#X connect 5 0 2 0;
#X connect 6 0 5 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 3 0;
#X connect 12 0 11 0;
#X restore 430 362 pd example;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 7 0;
#X connect 5 0 7 0;
#X connect 6 0 1 0;
#X connect 7 0 0 0;
#X connect 22 0 26 0;
#X connect 26 0 24 0;
