#N canvas 82 31 926 613 10; #X graph graph1 0 -1 77971 1 71 453 371 353; #X array array1 77971 float 0; #X pop; #X graph graph1 0 -1 77971 1 71 575 371 475; #X array array2 77971 float 0; #X pop; #X obj 12 293 soundfiler; #X msg 532 476 \; array1 resize 1000 \; array2 resize 1000 \;; #X msg 18 221 write -aiff /tmp/foo1 array2; #X msg 19 132 read ../sound/bell.aiff array2; #X msg 18 179 read -raw 128 2 2 b ../sound/bell.aiff array1 array2 ; #X msg 532 522 \; array1 resize 160000 \; array2 resize 160000; #X msg 530 431 \; array1 const 0 \; array2 const 0; #X text 26 10 SOUNDFILER - read and write soundfiles to arrays; #X text 18 31 The soundfiler object reads and writes floating point arrays to binary soundfiles which may contain 2 or 3 byte fixed point or 4 byte floating point samples in wave \, aiff \, or next formats (only next supports floating point \, though.). The number of channels of the soundfile need not match the number of arrays given (extras are dropped and unsupplied channels are zeroed out.); #X text 475 9 When reading you can leave soundfiler to figure out which of the three known soundfile formats the file belongs to or override all header information using the "-raw" flag.; #X text 479 51 Flags for reading:; #X text 498 73 -skip ; #X text 498 90 -nframes ; #X text 499 148 -raw ; #X text 518 166 This causes all header information to be ignored. Endianness is "l" ("little") for Intel machines or "b" ("big") for Macintoshes and SGIs. You can give "n" (natural) to take the byte order your machine prefers.; #X text 499 111 -resize; #X text 499 127 -maxsize ; #X text 488 225 Flags for writing:; #X text 503 246 -wave \, -nextstep \, -aiff; #X text 504 265 -big \, -little (nextstep only!); #X text 503 287 -skip ; #X text 504 309 -nframes ; #X text 505 353 -normalize; #X text 504 331 -bytes <2 \, 3 \, or 4>; #X floatatom 12 317 0 0 0; #X msg 16 155 read -resize ../sound/bell.aiff array2; #X text 707 581 updated for Pd version 0.29; #X msg 18 268 write -nextstep -bytes 4 /tmp/foo3 array1 array2; #X msg 17 245 write -wave -nframes 10000 /tmp/foo2 array2; #X text 257 130 read a file; #X text 302 155 ...optionally resize; #X text 230 196 ...or even overriding everything; #X text 235 221 write a file; #X text 376 270 write stereo; #X text 488 384 The number of channels is limited to 64; #X text 790 429 see also:; #X obj 784 452 tabwrite~; #X obj 785 476 tabread4~; #X obj 784 503 tabplay~; #X connect 2 0 26 0; #X connect 4 0 2 0; #X connect 5 0 2 0; #X connect 6 0 2 0; #X connect 27 0 2 0; #X connect 29 0 2 0; #X connect 30 0 2 0;