#N canvas 408 60 635 658 12;
#X msg 123 361 print;
#X msg 133 391 start;
#X msg 140 419 stop;
#X obj 22 384 del 1000;
#X text 177 393 start streaming audio;
#X text 179 419 stop streaming audio;
#X obj 115 481 writesf~ 2, f 15;
#X obj 101 621 soundfiler;
#X text 26 620 see also:;
#X obj 148 447 osc~ 440;
#X obj 183 621 readsf~;
#X text 122 193 -rate <sample rate>;
#X text 87 116 The "open" message may take flag-style arguments as follows:;
#X obj 45 12 writesf~;
#X text 275 306 create a 24-bit integer soundfile;
#X text 286 332 create a 32-bit floating point soundfile, f 24;
#X text 122 157 -big \, -little (sample endianness), f 42;
#X obj 217 447 noise~;
#X obj 7 43 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X text 533 11 <= click;
#N canvas 687 149 574 345 reference 0;
#X obj 8 45 cnv 5 550 5 empty empty INLET: 8 18 0 13 #202020 #000000 0;
#X obj 8 241 cnv 2 550 2 empty empty OUTLETS: 8 12 0 13 #202020 #000000 0;
#X obj 8 276 cnv 2 550 2 empty empty ARGUMENT: 8 12 0 13 #202020 #000000 0;
#X obj 7 314 cnv 5 550 5 empty empty empty 8 18 0 13 #202020 #000000 0;
#X text 44 106 open <list> -;
#X text 86 179 print - prints information on Pd's terminal window., f 64;
#X obj 33 14 writesf~;
#X text 142 106 takes a filename and optional flags: -wave \, -aiff \, -caf \, -next \, - big \, -little \, -bytes <float> \, -rate <float>;
#X obj 7 209 cnv 1 550 1 empty empty n: 8 12 0 13 #7c7c7c #000000 0;
#X obj 7 80 cnv 1 550 1 empty empty 1st: 8 12 0 13 #7c7c7c #000000 0;
#X text 86 140 start -;
#X text 142 140 start streaming audio., f 56;
#X text 93 159 stop -;
#X text 142 159 stop streaming audio, f 56;
#X text 92 55 'n' number of inlets specified by argument.;
#X text 161 248 NONE;
#X text 99 13 - record audio signals to a soundfile;
#X text 58 87 signal(s) - signal(s) to write to a file., f 65;
#X text 59 215 signal(s) - signal(s) to write to a file., f 65;
#X text 120 285 1) float - sets number of inputs (default 1 \, max 64).;
#X restore 439 12 pd reference;
#X text 122 139 -wave \, -aiff \, -caf \, -next (file extension);
#X obj 7 608 cnv 1 620 1 empty empty empty 8 12 0 13 #000000 #000000 0;
#X obj 22 343 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X text 15 56 [writesf~] creates a subthread whose task is to write audio streams to disk. You need not provide any disk access time between "open" and "start" \, but between "stop" and the next "open" you must give the object time to flush all the output to disk., f 85;
#X text 111 11 - record audio signals to a soundfile;
#X msg 487 372 \; pd dsp \$1;
#X obj 487 337 set-dsp-tgl;
#X text 518 341 DSP on/off;
#X text 42 548 The soundfile is uncompressed 2- or 3-byte integer ("pcm") or 4- or 8-byte floating point. The soundfile format is determined by the file extension (ie. "foo.wav" \, "foo.aiff" \, "foo.caf" \, "foo.snd")., f 74;
#N canvas 809 273 480 224 8-byte 0;
#X text 19 62 The precision of the 8-byte samples is based on the precision of the Pure Data build. If Pd is single precision (using 32-bit float internally) \, the written samples will be cast from 4-byte float to 8-byte double when writing to a file with -bytes 8 argument. In this case it's better to write with 4-byte float samples for a smaller file with the same precision., f 63;
#X text 19 159 If Pd is double-precision \, writing 8-byte float samples will be full precision as Pd uses 64-bit float internally., f 63;
#X text 19 19 Writing 8-byte (ie. 64-bit) floating point samples are supported for the wave \, aiff/aifc \, and caf file types.;
#X restore 491 175 pd 8-byte float;
#X text 122 175 -bytes <2 \, 3 \, 4 \, or 8> (number of bytes resolution);
#X text 262 193 (affects the soundfile header but the file is NOT resampled), f 30;
#X text 406 620 updated for Pd version 0.55-0;
#X msg 83 281 open ~/foo.wav;
#X msg 103 307 open -bytes 3 ~/foo.wav;
#X msg 115 332 open -bytes 4 ~/foo.wav;
#X text 194 280 create a new 16-bit integer soundfile in the home directory.;
#X obj 246 621 savepanel;
#X text 42 521 HINT: You can use [savepanel] to set a file name to record to., f 63;
#X obj 52 222 savepanel;
#X msg 52 249 open \$1;
#X obj 52 191 bng 19 250 50 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000;
#X text 124 239 choose where to save;
#X text 355 417 mutichannel signal support ------>, f 20;
#N canvas 769 164 422 533 multichannel 0;
#X msg 184 364 start;
#X msg 233 392 stop;
#X obj 233 307 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X obj 233 338 del 1500;
#X msg 160 265 open ~/MC.wav;
#X obj 118 181 snake~ in 2;
#X obj 118 152 osc~ 440;
#X obj 192 152 noise~;
#X obj 118 205 *~ 0.1;
#X obj 233 364 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X text 54 27 Multichannel inputs just work! It inserts the number of channels it contains into the output file. Multiple inputs can take one or more channels and the total number of output channels is the sum of all of them., f 45;
#X obj 160 433 writesf~, f 9;
#X connect 0 0 11 0;
#X connect 1 0 11 0;
#X connect 2 0 0 0;
#X connect 2 0 3 0;
#X connect 3 0 9 0;
#X connect 4 0 11 0;
#X connect 5 0 8 0;
#X connect 6 0 5 0;
#X connect 7 0 5 1;
#X connect 8 0 11 0;
#X connect 9 0 1 0;
#X restore 476 440 pd multichannel;
#X text 233 475 The creation argument is the number of inputs (default 1 \, maximum 64)., f 35;
#X connect 0 0 6 0;
#X connect 1 0 6 0;
#X connect 2 0 6 0;
#X connect 3 0 2 0;
#X connect 9 0 6 0;
#X connect 17 0 6 1;
#X connect 23 0 1 0;
#X connect 23 0 3 0;
#X connect 27 0 26 0;
#X connect 34 0 6 0;
#X connect 35 0 6 0;
#X connect 36 0 6 0;
#X connect 40 0 41 0;
#X connect 41 0 6 0;
#X connect 42 0 40 0;
