// Frequency Shifter // Copyright 2009 Les Hall // // Single Side Band Modulation technique // Developed by Donald K. Weaver, 1956 // http://www.cim.mcgill.ca/~clark/nordmodularbook/nm_spectrum_shift.html // parameters 4000 => float fdelta; 10000 => float f1; f1 + fdelta => float f2; // patch adc => Gain multSin1 => LPF lpf1 => Gain multSin2 => Gain sum => dac; SinOsc sin1 => multSin1; SinOsc sin2 => multSin2; adc => Gain multCos1 => LPF lpf2 => Gain multCos2 => sum; SinOsc cos1 => multCos1; SinOsc cos2 => multCos2; // patch parameters 3 => multSin1.op => multSin2.op => multCos1.op => multCos2.op; f1 => sin1.freq => cos1.freq; f2 => sin2.freq => cos2.freq; 0.25 => cos1.phase => cos2.phase; fdelta => lpf1.freq => lpf2.freq; // time loop while (true) { second => now; }