#N canvas 11 3 930 640 12; #X msg 306 14 \; pd dsp 1; #X msg 391 14 \; pd dsp 0; #X text 327 45 ON; #X text 408 45 OFF; #X floatatom 75 275 0 0 0; #N canvas 159 26 495 266 output 0; #X obj 338 160 t b; #X obj 338 110 f; #X obj 338 60 inlet; #X text 344 29 mute; #X obj 338 185 f; #X msg 425 178 0; #X msg 338 85 bang; #X obj 338 135 moses 1; #X obj 425 153 t b f; #X obj 397 117 moses 1; #X obj 83 148 dbtorms; #X obj 397 92 r master-lvl; #X obj 83 42 r master-lvl; #X obj 338 210 s master-lvl; #X obj 22 181 inlet~; #X obj 199 41 inlet; #X text 199 18 level; #X obj 199 100 s master-lvl; #X msg 96 65 set \$1; #X obj 96 89 outlet; #X msg 214 64 \; pd dsp 1; #X obj 83 194 line~; #X obj 22 212 *~; #X obj 22 241 dac~; #X obj 83 171 pack 0 50; #X text 20 158 audio; #X text 93 110 show level; #X connect 0 0 4 0; #X connect 1 0 7 0; #X connect 2 0 6 0; #X connect 4 0 13 0; #X connect 5 0 13 0; #X connect 6 0 1 0; #X connect 7 0 0 0; #X connect 7 1 8 0; #X connect 8 0 5 0; #X connect 9 1 4 1; #X connect 10 0 24 0; #X connect 11 0 1 1; #X connect 11 0 9 0; #X connect 12 0 10 0; #X connect 12 0 18 0; #X connect 14 0 22 0; #X connect 15 0 17 0; #X connect 15 0 20 0; #X connect 18 0 19 0; #X connect 21 0 22 1; #X connect 22 0 23 0; #X connect 22 0 23 1; #X connect 24 0 21 0; #X restore 46 303 pd output; #X msg 114 273 MUTE; #X text 148 272 <-- output amplitude; #X obj 46 239 hip~ 5; #X text 102 240 high pass filter to cut DC; #X graph graph1 0 -1.02 44103 1.02 594 172 794 42; #X array sample-table 44104 float 0; #X pop; #X obj 46 207 tabread4~ sample-table; #X obj 46 172 line~; #X obj 46 123 * 441; #X floatatom 46 69 0 0 0; #X obj 46 147 pack 0 100; #X text 102 13 SCRATCH MACHINE; #X text 81 70 <-- read point in 100ths of a second; #X text 103 123 convert to SAMPLES (441 samples in 0.01 sec); #X obj 414 257 loadbang; #X text 248 195 read from the table; #X text 239 213 (the input is the index in samples); #X text 23 516 For more on reading and writing soundfiles to tables \, setting their lengths \, etc \, see "arrays" in the "control examples" series.; #X text 20 385 This patch introduces the "tabread4~" object \, which reads audio samples out of a floating-point array \, often called a "sample table." The input is the index of the sample to read \, counting from zero. The output is calculated using 4-point cubic interpolation \, which is adequate for most purposes. Because of the interpolation scheme \, tabread4~'s input cannot be less than one or greater than the table length minus two.; #X text 22 565 Fanatics take note: if you want really high-fidelity sampling \, use a high-quality resampling program to up-sample your soundfile to 88200 to drastically reduce interpolation error.; #X text 600 195 (one second plus three extra; #X text 602 214 for 4-point interpolation); #X text 407 330 message to read a soundfile into the table (automatically sent when you load this patch by the "loadbang" object.); #X text 93 172 convert smoothly to audio signal; #X text 93 84 (range is 0-100.) YOU ONLY HEAR OUTPUT; #X text 94 100 WHEN THIS IS 0-100 AND ACTIVELY CHANGING.; #X text 605 611 updated for Pd version 0.33; #X text 593 173 --- 44103 samples ---; #X msg 414 281 read ../sound/voice.wav sample-table; #X obj 414 306 soundfiler; #X connect 4 0 5 1; #X connect 5 0 4 0; #X connect 6 0 5 2; #X connect 8 0 5 0; #X connect 11 0 8 0; #X connect 12 0 11 0; #X connect 13 0 15 0; #X connect 14 0 13 0; #X connect 15 0 12 0; #X connect 19 0 33 0; #X connect 33 0 34 0;