#N canvas 601 32 554 557 12;
#X declare -stdpath ./;
#N canvas 355 92 950 464 guts 0;
#X obj 41 187 openpanel;
#X obj 233 25 inlet;
#X obj 41 272 soundfiler;
#X msg 41 301 resize \$1;
#X obj 41 338 send \$0-output;
#X msg 41 247 read -resize \$1 \$2;
#X obj 41 219 list append \$0-input;
#X obj 736 218 savepanel;
#X obj 232 182 spigot;
#X msg 271 152 0;
#X msg 336 152 1;
#X obj 417 347 +~;
#X msg 378 138 \; pd dsp 1;
#X obj 736 291 soundfiler;
#N canvas 704 351 368 263 audio-transformation 0;
#X obj 186 85 osc~;
#X obj 168 134 *~;
#X obj 168 166 hip~ 7;
#X obj 113 40 inlet~;
#X obj 168 200 outlet~;
#X obj 113 85 hip~ 7;
#X obj 186 40 inlet;
#X connect 0 0 1 1;
#X connect 1 0 2 0;
#X connect 2 0 4 0;
#X connect 3 0 5 0;
#X connect 5 0 1 0;
#X connect 6 0 0 0;
#X restore 232 279 pd audio-transformation;
#X obj 542 210 savepanel;
#X obj 542 299 soundfiler;
#X obj 417 407 outlet~;
#X obj 210 349 tabwrite~ \$0-output;
#X obj 435 258 tabplay~ \$0-output, f 9;
#X obj 232 244 tabplay~ \$0-input;
#X obj 736 242 list append \$0-output;
#X msg 736 266 write \$1 \$1;
#X msg 542 274 write -normalize \$1 \$2;
#X obj 542 241 list append \$0-output;
#X obj 542 183 r \$0-save;
#X obj 736 192 r \$0-save-normalized;
#X obj 435 231 r \$0-hear;
#X obj 41 158 r \$0-read;
#X obj 271 56 r \$0-run;
#X obj 378 56 r \$0-start;
#X obj 210 211 bng 17 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X connect 0 0 6 0;
#X connect 1 0 8 0;
#X connect 1 0 14 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 5 0 2 0;
#X connect 6 0 5 0;
#X connect 7 0 21 0;
#X connect 8 0 9 0;
#X connect 8 0 31 0;
#X connect 9 0 8 1;
#X connect 10 0 8 1;
#X connect 11 0 17 0;
#X connect 14 0 11 0;
#X connect 14 0 18 0;
#X connect 15 0 24 0;
#X connect 19 0 11 1;
#X connect 20 0 14 0;
#X connect 21 0 22 0;
#X connect 22 0 13 0;
#X connect 23 0 16 0;
#X connect 24 0 23 0;
#X connect 25 0 15 0;
#X connect 26 0 7 0;
#X connect 27 0 19 0;
#X connect 28 0 0 0;
#X connect 29 0 9 0;
#X connect 29 0 12 0;
#X connect 29 0 31 0;
#X connect 30 0 12 0;
#X connect 30 0 10 0;
#X connect 31 0 18 0;
#X connect 31 0 20 0;
#X restore 120 352 pd guts;
#X floatatom 120 320 6 0 0 0 - - - 0;
#X obj 120 400 output~;
#X obj 351 90 declare -stdpath ./;
#X text 391 387 input sample;
#X text 392 411 output sample;
#X obj 277 412 table \$0-output;
#X obj 284 388 table \$0-input;
#X obj 161 137 bng 18 250 50 0 \$0-read dummy Read -38 9 0 13 #dfdfdf #000000 #202020;
#X obj 161 161 bng 18 250 50 0 \$0-run dummy Run -31 9 0 13 #dfdfdf #000000 #000000;
#X obj 161 186 bng 18 250 50 0 \$0-start dummy Start -46 9 0 13 #dfdfdf #000000 #000000;
#X obj 161 210 bng 18 250 50 0 \$0-hear dummy Hear -40 9 0 13 #dfdfdf #000000 #000000;
#X obj 161 234 bng 18 250 50 0 \$0-save dummy Save -40 9 0 13 #dfdfdf #000000 #000000;
#X obj 161 259 bng 18 250 50 0 \$0-save-normalized dummy Normalized -87 9 0 13 #dfdfdf #000000 #000000;
#X text 90 494 Outputs are saved as "wav" files \, although you can edit the patch to choose other (like "aiff") instead., f 54;
#X text 48 20 Ring modulator. Read in a sample first \, then you can either set a frequency and hit the "run" button or else hit the "start" button and start the transformation by dragging on the frequency control., f 66;
#X text 174 319 Modulation frequency (Hz.);
#X text 70 101 Click below to:;
#X text 190 136 (read an input file);
#X text 190 160 (run the transformation);
#X text 190 185 (start transformation when I change frequency);
#X text 190 209 (hear the output sample);
#X text 190 233 (save the output sample);
#X text 190 258 (save the output sample normalized to 1);
#X connect 0 0 2 0;
#X connect 1 0 0 0;
