#N canvas 418 68 626 475 12;
#X floatatom 24 182 5 0 0 0 - - - 0;
#X msg 392 182 symbol meat;
#X msg 405 209 symbol hair;
#X obj 23 17 makefilename;
#X msg 56 234 set %d-zebra;
#X symbolatom 43 296 14 0 0 0 - - - 0;
#X obj 43 328 print Integer;
#X symbolatom 392 280 14 0 0 0 - - - 0;
#X obj 392 313 print Symbol;
#N canvas 703 91 524 392 multiple_substitutions 0;
#X msg 50 111 symbol aif;
#X msg 63 138 symbol wav;
#X msg 49 229 set \$1;
#X floatatom 73 263 4 0 0 0 - - - 0;
#X obj 49 296 makefilename not-set-yet;
#X symbolatom 49 197 14 0 0 0 - - - 0;
#X text 43 21 MULTIPLE SUBSTITUTIONS:;
#X symbolatom 49 325 14 0 0 0 - - - 0;
#X obj 49 357 print Multiple;
#X text 240 148 LITERAL %: You can format a string with a literal '%' if you escape it with another '%' (where "%%" becomes "%" \, "%%%%" becomes "%%" and so on), f 36;
#X obj 49 168 makefilename dog\ %%d.%s;
#X text 38 46 You can connect two or more [makefilename] objects for multiple substitutions. For that \, you need to use a literal '%' to set the format string of another [makefilename] object., f 64;
#X text 109 263 <-- and then this number replaces "%d".;
#X text 107 229 <-- this becomes "set dog %d.aif" \, for example., f 48;
#X connect 0 0 10 0;
#X connect 1 0 10 0;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 4 0 7 0;
#X connect 5 0 2 0;
#X connect 7 0 8 0;
#X connect 10 0 5 0;
#X restore 392 354 pd multiple_substitutions;
#N canvas 696 229 479 517 possible_types_&_syntax 0;
#N canvas 640 222 489 460 %c 0;
#X obj 147 214 list fromsymbol;
#X floatatom 147 313 5 0 0 0 - - - 0;
#X symbolatom 147 167 7 0 0 0 - - - 0;
#X symbolatom 147 388 7 0 0 0 - - - 0;
#X msg 164 248 64;
#X text 200 247 <= click (at symbol);
#X msg 174 278 123;
#X text 210 277 <= click (left curly);
#X text 71 27 %c - character:;
#X text 209 167 <=;
#X text 232 167 type a character to convert to float, f 23;
#X obj 147 350 makefilename [%c];
#X text 69 61 This pattern allows you to convert from a float to a character (symbols are converted to 0) and insert it into a symbol. By the way \, you can also perform the opposite conversion (from a character to a float) by using the [list fromsymbol] object., f 53;
#X connect 0 0 1 0;
#X connect 1 0 11 0;
#X connect 2 0 0 0;
#X connect 4 0 1 0;
#X connect 6 0 1 0;
#X connect 11 0 3 0;
#X restore 80 69 pd %c;
#N canvas 787 150 510 527 %d/%i 0;
#X floatatom 244 368 0 0 0 0 - - - 0;
#X symbolatom 94 464 12 0 0 0 - - - 0;
#X text 56 35 %d or %i - signed decimal integer:;
#X symbolatom 244 464 12 0 0 0 - - - 0;
#X msg 244 153 127;
#X msg 258 185 -255;
#X msg 269 221 1;
#X msg 275 251 -1;
#X obj 94 416 makefilename [%d];
#X msg 194 189 12.9;
#X msg 286 288 1e+06;
#X msg 294 322 -1e+07;
#X text 54 64 Both '%d' and '%i' are the same. This pattern allows you to insert a signed (negative or positive) decimal integer into a symbol (symbols are converted to 0). Floats are truncated.;
#X obj 244 416 makefilename [%i];
#X connect 0 0 8 0;
#X connect 0 0 13 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 1 0;
#X connect 9 0 0 0;
#X connect 10 0 0 0;
#X connect 11 0 0 0;
#X connect 13 0 3 0;
#X restore 59 97 pd %d/%i;
#N canvas 762 278 567 409 %e/%E 0;
#X floatatom 269 239 10 0 0 0 - - - 0;
#X symbolatom 119 335 18 0 0 0 - - - 0;
#X symbolatom 269 335 18 0 0 0 - - - 0;
#X obj 119 287 makefilename [%e];
#X msg 269 164 1.23456;
#X msg 241 136 2.345e-05;
#X msg 298 199 -18;
#X text 54 26 %e or %E - scientific notation using "e" or "E" character:;
#X obj 269 287 makefilename [%E];
#X text 53 53 This pattern allows you to insert a number with scientific notation into a symbol (symbols are converted to 0). The '%e' or '%E' pattern specify respectively whether the exponential character is lower (e) or upper (E) case., f 71;
#X connect 0 0 3 0;
#X connect 0 0 8 0;
#X connect 3 0 1 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 8 0 2 0;
#X restore 59 125 pd %e/%E;
#X text 127 68 - character;
#X text 127 96 - signed decimal integer;
#X text 128 152 - decimal floating point;
#N canvas 787 279 483 431 %f 0;
#X symbolatom 166 358 18 0 0 0 - - - 0;
#X floatatom 166 268 8 0 0 0 - - - 0;
#X msg 166 164 1.234;
#X msg 180 196 -18;
#X msg 135 132 2.3e-05;
#X msg 191 231 0.997;
#X text 70 29 %f - decimal floating point:;
#X obj 166 310 makefilename [%f];
#X text 68 63 This pattern allows you to format a float into a symbol (symbols are converted to 0)., f 43;
#X connect 1 0 7 0;
#X connect 2 0 1 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 7 0 0 0;
#X restore 80 153 pd %f;
#N canvas 521 79 612 539 %g/%G 0;
#X floatatom 304 368 10 0 0 0 - - - 0;
#X symbolatom 154 464 18 0 0 0 - - - 0;
#X symbolatom 304 464 18 0 0 0 - - - 0;
#X msg 332 250 1.23456;
#X obj 154 416 makefilename [%g];
#X msg 349 321 0.99999;
#X msg 304 222 2.345e-05;
#X msg 346 282 1.1e+08;
#X msg 278 191 -1800;
#X msg 240 191 179;
#X text 36 20 %g or %G - numbers with or without scientific notation:;
#X obj 304 416 makefilename [%G];
#X text 34 53 This pattern allows you to insert a number with or without scientific notation into a symbol (symbols are converted to 0). The '%g' or '%G' pattern specify respectively whether the exponential character is lower (e) or upper (E) case. The scientific notation is only used if there's not enough digit resolution. The default precision is 6 digits and we'll see how to change that later., f 78;
#X text 34 130 Also \, the decimal point is not included on whole numbers. This means that \, unlike '%e' or '%E' \, not at all numbers are converted to scientific notation., f 78;
#X connect 0 0 4 0;
#X connect 0 0 11 0;
#X connect 3 0 0 0;
#X connect 4 0 1 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X connect 9 0 0 0;
#X connect 11 0 2 0;
#X restore 59 181 pd %g/%G;
#X text 128 124 - decimal floating point in scientific notation;
#X text 128 180 - numbers with or without scientific notation;
#N canvas 836 149 529 506 %o 0;
#X floatatom 208 337 0 0 0 0 - - - 0;
#X symbolatom 208 433 14 0 0 0 - - - 0;
#X msg 219 190 1;
#X msg 230 220 -1;
#X msg 127 232 1.9;
#X msg 172 154 9;
#X msg 208 154 16;
#X msg 253 291 1e+12;
#X msg 243 255 1e+09;
#X text 52 27 %o - unsigned octal:;
#X obj 208 385 makefilename [%o];
#X text 53 59 This pattern allows you to insert an unsigned (only positive) octal integer into a symbol (symbols are converted to 0). Floats are truncated. Note that since this is an unsigned format \, sending negative numbers doesn't work., f 61;
#X connect 0 0 10 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X connect 10 0 1 0;
#X restore 80 209 pd %o;
#X text 126 208 - unsigned octal;
#N canvas 788 215 489 431 %s 0;
#X symbolatom 129 133 7 0 0 0 - - - 0;
#X symbolatom 167 356 10 0 0 0 - - - 0;
#X obj 167 308 makefilename [%s];
#X floatatom 167 166 5 0 0 0 - - - 0;
#X msg 197 205 symbol dog;
#X msg 206 243 -1;
#X msg 249 243 1.9;
#X msg 249 273 1e-07;
#X text 186 133 <= send it a symbol;
#X text 214 165 <= send it a float;
#X text 73 65 This pattern allows you to insert a symbol \, but note it also works for float messages., f 49;
#X text 76 31 %s - symbol string:;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 2 0;
#X connect 4 0 2 0;
#X connect 5 0 2 0;
#X connect 6 0 2 0;
#X connect 7 0 2 0;
#X restore 80 237 pd %s;
#X text 126 264 - signed decimal integer;
#N canvas 766 264 519 474 %u 0;
#X floatatom 185 337 0 0 0 0 - - - 0;
#X symbolatom 185 415 12 0 0 0 - - - 0;
#X msg 185 152 127;
#X msg 199 184 -255;
#X msg 210 220 1;
#X msg 216 250 -1;
#X msg 135 188 12.9;
#X text 45 25 %u - unsigned decimal integer:;
#X obj 185 376 makefilename [%u];
#X msg 227 287 1e+09;
#X text 43 60 This pattern is the same as "%d" or "%i" \, but it is unsigned (only positive) \, hence it allows you to insert a decimal integer into a symbol (symbols are converted to 0). Floats are truncated to integers. Note that since this is an unsigned format \, sending negative numbers doesn't work.;
#X connect 0 0 8 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 8 0 1 0;
#X connect 9 0 0 0;
#X restore 80 265 pd %u;
#X text 127 292 - unsigned hexadecimal;
#N canvas 781 226 510 490 %x/%X 0;
#X floatatom 262 338 0 0 0 0 - - - 0;
#X symbolatom 112 434 12 0 0 0 - - - 0;
#X symbolatom 262 434 12 0 0 0 - - - 0;
#X msg 262 153 127;
#X msg 287 221 1;
#X msg 293 251 -1;
#X msg 304 288 1e+09;
#X obj 112 386 makefilename [%x];
#X msg 276 185 255;
#X msg 212 189 9.9;
#X text 70 11 %x or %X - unsigned hexadecimal:;
#X obj 262 386 makefilename [%X];
#X text 61 46 This pattern allows you to insert a signed (only positive) hexadecimal integer into a symbol (symbols are converted to 0). Floats are truncated. The '%x' or '%X' pattern specify respectively whether the the characters are lower or upper case. Note that since this is an unsigned format \, sending negative numbers doesn't work., f 61;
#X connect 0 0 7 0;
#X connect 0 0 11 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 1 0;
#X connect 8 0 0 0;
#X connect 9 0 0 0;
#X connect 11 0 2 0;
#X restore 59 293 pd %x/%X;
#N canvas 921 253 483 354 %p 0;
#X symbolatom 164 163 10 0 0 0 - - - 0;
#X symbolatom 164 259 14 0 0 0 - - - 0;
#X obj 164 210 makefilename [%p];
#X text 57 44 %p - pointer representation:;
#X text 54 77 This pattern formats to a platform specific pointer representation of an incoming symbol (floats are cast to int and also converted)., f 53;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 80 321 pd %p;
#X text 126 320 - pointer representation;
#X text 163 414 flags:;
#N canvas 216 23 794 593 + 0;
#X floatatom 150 188 0 0 0 0 - - - 0;
#X symbolatom 150 263 12 0 0 0 - - - 0;
#X msg 109 105 127;
#X msg 150 105 -255;
#X msg 168 137 1e+06;
#X msg 220 137 -1e+07;
#X obj 150 225 makefilename [%+d];
#X floatatom 167 431 10 0 0 0 - - - 0;
#X symbolatom 167 514 18 0 0 0 - - - 0;
#X msg 169 326 1.23456;
#X msg 94 326 2.345e-05;
#X msg 196 391 -18;
#X msg 183 358 1.999e+07;
#X obj 167 466 makefilename [%+e];
#X symbolatom 516 191 18 0 0 0 - - - 0;
#X floatatom 516 103 8 0 0 0 - - - 0;
#X msg 530 61 -18;
#X msg 450 30 2.3e-05;
#X obj 516 143 makefilename [%+f];
#X msg 516 29 257;
#X floatatom 540 424 10 0 0 0 - - - 0;
#X symbolatom 540 511 18 0 0 0 - - - 0;
#X msg 568 306 1.23456;
#X msg 585 377 0.99999;
#X msg 540 278 2.345e-05;
#X msg 582 338 1.1e+08;
#X msg 514 247 -1800;
#X msg 476 247 179;
#X obj 540 463 makefilename [%+G];
#X text 65 38 The "+" flag prepends a plus sign for positive signed numeric types (%d/%i/%e/%E/%f/%g/%G):, f 47;
#X connect 0 0 6 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 1 0;
#X connect 7 0 13 0;
#X connect 9 0 7 0;
#X connect 10 0 7 0;
#X connect 11 0 7 0;
#X connect 12 0 7 0;
#X connect 13 0 8 0;
#X connect 15 0 18 0;
#X connect 16 0 15 0;
#X connect 17 0 15 0;
#X connect 18 0 14 0;
#X connect 19 0 15 0;
#X connect 20 0 28 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
#X connect 25 0 20 0;
#X connect 26 0 20 0;
#X connect 27 0 20 0;
#X connect 28 0 21 0;
#X restore 216 415 pd +;
#N canvas 806 77 728 472 # 0;
#X floatatom 148 115 0 0 0 0 - - - 0;
#X symbolatom 148 178 14 0 0 0 - - - 0;
#X msg 148 73 1;
#X msg 80 73 9;
#X msg 116 73 16;
#X msg 183 73 1e+09;
#X obj 148 146 makefilename [%#o];
#X floatatom 196 326 0 0 0 0 - - - 0;
#X symbolatom 196 399 14 0 0 0 - - - 0;
#X msg 196 284 1;
#X msg 128 284 9;
#X msg 164 284 16;
#X msg 231 284 1e+09;
#X symbolatom 55 399 14 0 0 0 - - - 0;
#X obj 55 361 makefilename [%#x];
#X obj 196 361 makefilename [%#X];
#X text 25 22 The '#' flag presents an alternate form of some numeric types. For "%o" \, the number is preceded by a "0".;
#X floatatom 532 240 10 0 0 0 - - - 0;
#X symbolatom 382 336 18 0 0 0 - - - 0;
#X symbolatom 532 336 18 0 0 0 - - - 0;
#X msg 532 193 -1800;
#X msg 494 193 179;
#X obj 382 288 makefilename [%#g];
#X obj 532 288 makefilename [%G];
#X msg 585 194 1e+08;
#X text 44 222 For "%x" and "%X" \, the number is preceded by "0x" (if %x) or "0X" (if %X)., f 43;
#X text 362 139 For %g and %G \, the decimal point and zeroes are not removed for integers when not in scientific notation., f 48;
#X connect 0 0 6 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 1 0;
#X connect 7 0 14 0;
#X connect 7 0 15 0;
#X connect 9 0 7 0;
#X connect 10 0 7 0;
#X connect 11 0 7 0;
#X connect 12 0 7 0;
#X connect 14 0 13 0;
#X connect 15 0 8 0;
#X connect 17 0 22 0;
#X connect 17 0 23 0;
#X connect 20 0 17 0;
#X connect 21 0 17 0;
#X connect 22 0 18 0;
#X connect 23 0 19 0;
#X connect 24 0 17 0;
#X restore 271 415 pd #;
#X text 50 20 This is a listing of possible printf pattern types. Open subpatches for more details and examples., f 51;
#X text 163 444 width:;
#N canvas 583 148 928 523 width 0;
#X floatatom 102 171 0 0 0 0 - - - 0;
#X symbolatom 102 235 12 0 0 0 - - - 0;
#X obj 102 203 makefilename [%5d];
#X msg 102 114 1;
#X msg 138 114 -1000;
#X msg 64 114 10;
#X floatatom 194 387 0 0 0 0 - - - 0;
#X symbolatom 194 463 12 0 0 0 - - - 0;
#X msg 194 352 1;
#X symbolatom 282 235 12 0 0 0 - - - 0;
#X obj 282 203 makefilename [%5s];
#X symbolatom 282 171 10 0 0 0 - - - 0;
#X msg 295 143 symbol abcde;
#X msg 261 92 symbol a;
#X msg 282 117 symbol abc;
#X msg 150 139 -1e+06;
#X msg 156 352 31;
#X msg 234 352 1e+06;
#X obj 194 426 makefilename [%05x];
#X text 39 286 The width field takes an optional preceding '0' flag that fills the extra characters with zeroes instead of spaces.;
#X floatatom 539 176 0 0 0 0 - - - 0;
#X symbolatom 539 240 12 0 0 0 - - - 0;
#X msg 539 119 1;
#X msg 575 119 -1000;
#X msg 501 119 10;
#X msg 587 144 -1e+06;
#X obj 539 208 makefilename [%+5d];
#X floatatom 707 175 0 0 0 0 - - - 0;
#X symbolatom 707 239 12 0 0 0 - - - 0;
#X msg 707 118 1;
#X msg 743 118 -1000;
#X msg 669 118 10;
#X msg 755 143 -1e+06;
#X obj 707 207 makefilename [%+05d];
#X floatatom 556 372 0 0 0 0 - - - 0;
#X symbolatom 556 436 12 0 0 0 - - - 0;
#X msg 556 315 1;
#X msg 604 340 -1e+06;
#X floatatom 724 371 0 0 0 0 - - - 0;
#X symbolatom 724 435 12 0 0 0 - - - 0;
#X msg 724 314 1;
#X msg 772 339 -1e+06;
#X text 498 63 You can combine the width field with the preceding +/# flags where pertinent., f 40;
#X msg 592 315 100;
#X msg 760 314 100;
#X msg 686 314 31;
#X msg 518 315 31;
#X obj 556 404 makefilename [%#5x];
#X obj 724 403 makefilename [%#08X];
#X text 24 18 The width field takes an integer that sets the number of minimum characters and adds spaces to fill them. This works for all types but floating point numbers ('%f' and '%e'/'%E'). In the case of '%g'/'%G' \, the width field is valid only for the integer output., f 62;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 18 0;
#X connect 8 0 6 0;
#X connect 10 0 9 0;
#X connect 11 0 10 0;
#X connect 12 0 11 0;
#X connect 13 0 11 0;
#X connect 14 0 11 0;
#X connect 15 0 0 0;
#X connect 16 0 6 0;
#X connect 17 0 6 0;
#X connect 18 0 7 0;
#X connect 20 0 26 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
#X connect 25 0 20 0;
#X connect 26 0 21 0;
#X connect 27 0 33 0;
#X connect 29 0 27 0;
#X connect 30 0 27 0;
#X connect 31 0 27 0;
#X connect 32 0 27 0;
#X connect 33 0 28 0;
#X connect 34 0 47 0;
#X connect 36 0 34 0;
#X connect 37 0 34 0;
#X connect 38 0 48 0;
#X connect 40 0 38 0;
#X connect 41 0 38 0;
#X connect 43 0 34 0;
#X connect 44 0 38 0;
#X connect 45 0 38 0;
#X connect 46 0 34 0;
#X connect 47 0 35 0;
#X connect 48 0 39 0;
#X restore 216 445 pd width;
#X text 135 474 precision:;
#N canvas 619 439 448 268 precision 0;
#N canvas 842 141 470 564 strings 0;
#X symbolatom 219 496 0 0 0 0 - - - 0;
#X symbolatom 219 418 10 0 0 0 - - - 0;
#X obj 219 458 makefilename [%3.4s];
#X symbolatom 231 223 0 0 0 0 - - - 0;
#X symbolatom 231 154 10 0 0 0 - - - 0;
#X obj 231 189 makefilename [%.4s];
#X msg 231 115 symbol abcde;
#X msg 127 115 symbol abcd;
#X text 61 260 In this case \, the width field can be preceded to set a minimum of characters filled with spaces., f 48;
#X msg 141 316 symbol ab;
#X msg 219 316 symbol abc;
#X msg 246 383 symbol abcde;
#X msg 234 350 symbol abcd;
#X text 54 33 For symbol srtrings (%s) \, the precision sets a maximum character limit. Below \, we have a maximum of 4 characters \, hence \, the symbol "abcde" gets truncated., f 53;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 6 0 4 0;
#X connect 7 0 4 0;
#X connect 9 0 1 0;
#X connect 10 0 1 0;
#X connect 11 0 1 0;
#X connect 12 0 1 0;
#X restore 159 133 pd strings;
#N canvas 788 237 558 412 integers 0;
#X symbolatom 126 293 0 0 0 0 - - - 0;
#X obj 126 249 makefilename [%.4d];
#X symbolatom 287 288 0 0 0 0 - - - 0;
#X floatatom 287 205 5 0 0 0 - - - 0;
#X msg 287 172 -3;
#X obj 287 249 makefilename [%04d];
#X msg 325 173 3;
#X text 78 40 For integer types ('%d'/'%i'/'%o'/'%u'/'%x'/'%X'/'%p') \, the precision field does not set a maximum number of characters. Instead \, it sets a fixed number of digits and adds zeroes to the left as a fill. This is slightly different than setting a width field with a '0' flag. The difference is only observed for numbers of different sign as below. Note how the width field will suppress a zero to include a "-" character., f 61;
#X connect 1 0 0 0;
#X connect 3 0 5 0;
#X connect 3 0 1 0;
#X connect 4 0 3 0;
#X connect 5 0 2 0;
#X connect 6 0 3 0;
#X restore 159 167 pd integers;
#N canvas 424 199 702 507 floats 0;
#X floatatom 81 252 10 0 0 0 - - - 0;
#X symbolatom 82 440 18 0 0 0 - - - 0;
#X symbolatom 98 348 18 0 0 0 - - - 0;
#X obj 82 392 makefilename [%e];
#X msg 83 147 1.23456;
#X msg 55 119 2.345e-05;
#X msg 110 212 -18;
#X obj 98 300 makefilename [%.2E];
#X msg 97 179 1.999e+07;
#X text 62 34 For floats \, the precision field sets the maximum number of digits to the right of the decimal point. Note that there's a default of 6 digits. Also note that this affects the resolution and can cause the number to be rounded., f 78;
#X symbolatom 250 443 18 0 0 0 - - - 0;
#X floatatom 250 248 8 0 0 0 - - - 0;
#X symbolatom 290 345 18 0 0 0 - - - 0;
#X msg 250 144 1.234;
#X msg 264 176 -18;
#X obj 290 297 makefilename [%.2f];
#X msg 219 112 2.3e-05;
#X msg 275 211 0.997;
#X obj 250 395 makefilename [%f];
#X symbolatom 470 445 18 0 0 0 - - - 0;
#X floatatom 470 250 8 0 0 0 - - - 0;
#X symbolatom 510 347 18 0 0 0 - - - 0;
#X msg 470 146 1.234;
#X msg 439 114 2.3e-05;
#X msg 495 213 0.997;
#X obj 510 299 makefilename [%.2g];
#X msg 484 178 -1800;
#X obj 470 397 makefilename [%#g];
#X connect 0 0 3 0;
#X connect 0 0 7 0;
#X connect 3 0 1 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 2 0;
#X connect 8 0 0 0;
#X connect 11 0 15 0;
#X connect 11 0 18 0;
#X connect 13 0 11 0;
#X connect 14 0 11 0;
#X connect 15 0 12 0;
#X connect 16 0 11 0;
#X connect 17 0 11 0;
#X connect 18 0 10 0;
#X connect 20 0 25 0;
#X connect 20 0 27 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
#X connect 25 0 21 0;
#X connect 26 0 20 0;
#X connect 27 0 19 0;
#X restore 159 201 pd floats;
#X text 41 23 The precision field behaves differently according to the type (strings \, integers of floats). The syntax of this field is specified by a "." and is followed by the precision number. See subpatches below for the examples., f 51;
#X restore 216 475 pd precision;
#X text 127 236 - string;
#X text 33 366 The types can be preceded by optional fields \, which can be combined and included in the order below:;
#X restore 392 379 pd possible_types_&_syntax;
#X text 412 443 updated for Pd version 0.51;
#X msg 48 209 set cat\ %d.wav;
#X obj 43 263 makefilename dog\ %d.aif;
#X obj 392 249 makefilename dog\ %s.aif;
#X text 388 154 SUBSTITUTING A SYMBOL:;
#X text 39 154 SUBSTITUTING AN INTEGER NUMBER:;
#X text 163 299 (Note you can use backlashes to escape and insert a space character in the symbol), f 28;
#N canvas 676 114 567 259 reference 0;
#X obj 8 52 cnv 5 540 5 empty empty INLET: 8 18 0 13 #202020 #000000 0;
#X obj 7 233 cnv 5 540 5 empty empty empty 8 18 0 13 #202020 #000000 0;
#X obj 7 134 cnv 5 540 5 empty empty OUTLET: 8 18 0 13 #202020 #000000 0;
#X obj 46 19 makefilename;
#X text 144 19 - format a "name" with a variable field;
#X text 121 148 symbol - formatted symbol., f 47;
#X obj 7 179 cnv 5 540 5 empty empty ARGUMENT: 8 18 0 13 #202020 #000000 0;
#X text 104 192 1) symbol -;
#X text 156 64 float - input to variable field., f 38;
#X text 188 192 format string with specifiers ('%c' \, '%d' \, '%i \, %e \, %E \, %f \, %g \, %G \, %o \, %s \, %u \, %x \, %X and %p)., f 48;
#X text 149 83 symbol - input to variable field., f 39;
#X text 107 103 set <symbol> - format string with specifiers.;
#X restore 456 17 pd reference;
#X text 548 17 <= click;
#X obj 7 53 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X obj 6 428 cnv 1 610 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X text 21 65 The [makefilename] object generates name symbols according to a format string \, for use as a series of filenames \, table names \, or whatnot. You can plug in a variable number or symbol by using different types in the string ("such as %s" \, "%c" \, "%d" \, "%X and others - see subpatch below with possible types). Each object can have only one variable pattern \, but you can cascade objects for multiple substitutions., f 82;
#X text 67 182 <-- numbers replace "%d" in string;
#X text 164 208 <-- "set" message replaces format, f 18;
#X text 221 262 <-- argument is format string, f 15;
#X text 272 366 More details -->;
#X text 121 17 - format a symbol "name" with a variable field;
#X text 18 442 see also:;
#X obj 94 443 symbol;
#X text 495 210 <-- symbols replace "%s", f 12;
#X obj 24 365 makefilename %d;
#X symbolatom 24 395 5 0 0 0 - - - 0;
#X text 67 395 <-- number converted to symbol;
#X connect 0 0 13 0;
#X connect 0 0 31 0;
#X connect 1 0 14 0;
#X connect 2 0 14 0;
#X connect 4 0 13 0;
#X connect 5 0 6 0;
#X connect 7 0 8 0;
#X connect 12 0 13 0;
#X connect 13 0 5 0;
#X connect 14 0 7 0;
#X connect 31 0 32 0;
