#N canvas 130 148 999 591 10; #X text 14 10 ring modulation for fun and profit; #X obj 13 60 adc~; #X obj 513 154 osc~; #X obj 513 129 line~; #X msg 513 88 5 10; #X msg 549 88 15 10; #X msg 592 88 100 10; #X obj 490 405 dac~; #X obj 22 375 soundfiler; #N canvas 0 22 450 300 graph1 0; #X array array1 2.33676e+06 float 2; #X coords 0 1 2.33676e+06 -1 200 140 1; #X restore 17 424 graph; #X obj 255 77 tabplay~ array1; #X msg 255 58 bang; #X obj 490 372 *~; #X obj 13 142 *~; #X msg 642 88 300 10; #X text 287 59 trigger soundfile playback; #X text 46 60 live input from microphone; #X obj 29 123 line~; #X msg 29 82 0.5 100; #X msg 39 101 0 100; #X text 82 82 volume up; #X text 79 101 volume down; #X obj 132 220 +~; #X text 117 39 sound inputs ("carrier"); #X obj 255 158 *~; #X obj 271 139 line~; #X msg 271 98 0.5 100; #X msg 281 117 0 100; #X text 324 98 volume up; #X text 321 117 volume down; #X obj 513 236 *~; #X obj 529 217 line~; #X msg 529 176 0.5 100; #X msg 539 195 0 100; #X text 582 176 volume up; #X text 579 195 volume down; #X text 648 34 modulation sources ("modulator"); #X text 548 144 classic ring modulation; #X text 549 156 produces sidebands only; #X text 512 69 select a modulation frequency; #X obj 637 308 +~; #X text 21 320 place soundfile into array; #X text 21 333 change "yourname.wav" to a soundfile name; #X obj 759 154 osc~; #X obj 759 129 line~; #X msg 759 88 5 10; #X msg 795 88 15 10; #X msg 838 88 100 10; #X msg 888 88 300 10; #X obj 759 271 *~; #X obj 775 252 line~; #X msg 775 211 0.5 100; #X msg 785 230 0 100; #X text 828 211 volume up; #X text 825 230 volume down; #X text 758 69 select a modulation frequency; #X obj 759 173 *~ 0.5; #X obj 759 192 +~ 0.5; #X text 794 144 amplitude modulation; #X text 795 156 passes carrier + sidebands; #X text 805 173 scale modulator signal; #X text 806 192 and then add a DC offset; #X msg 22 353 read -resize yourname.wav array1; #X connect 1 0 13 0; #X connect 2 0 30 0; #X connect 3 0 2 0; #X connect 4 0 3 0; #X connect 5 0 3 0; #X connect 6 0 3 0; #X connect 10 0 24 0; #X connect 11 0 10 0; #X connect 12 0 7 0; #X connect 12 0 7 1; #X connect 13 0 22 0; #X connect 14 0 3 0; #X connect 17 0 13 1; #X connect 18 0 17 0; #X connect 19 0 17 0; #X connect 22 0 12 0; #X connect 24 0 22 1; #X connect 25 0 24 1; #X connect 26 0 25 0; #X connect 27 0 25 0; #X connect 30 0 40 0; #X connect 31 0 30 1; #X connect 32 0 31 0; #X connect 33 0 31 0; #X connect 40 0 12 1; #X connect 43 0 56 0; #X connect 44 0 43 0; #X connect 45 0 44 0; #X connect 46 0 44 0; #X connect 47 0 44 0; #X connect 48 0 44 0; #X connect 49 0 40 1; #X connect 50 0 49 1; #X connect 51 0 50 0; #X connect 52 0 50 0; #X connect 56 0 57 0; #X connect 57 0 49 0; #X connect 62 0 8 0;