// Bucket Brigade Device Test Program // Copyright 2008 Les Hall // This software is protected by the GNU General Public License // Parameters 1 => int num_BBDs; // number of Bucket Brigade Devices 0.9 => float gain; // gain of difference amplifiers 10*1000 => float f_near; // near frequency of Theremin 25*1000 => float f_far; // far frequency of Theremin // Variables dur delta_T; // time delay dur T_near; // near delay dur T_far; // far delay // The Patch Gain diff_amp[num_BBDs]; DelayA BBD[num_BBDs]; adc => diff_amp[0]; for (int i; i BBD[i] => diff_amp[i]; } diff_amp[num_BBDs-1] => dac; SinOsc hand_waving => Gain sum => blackhole; Step step => sum; // Patch Parameters 1 => adc.gain; for (int i; i BBD[i].max; // from datasheet 2 => diff_amp[i].op; // subtractor gain => diff_amp[i].gain; // set the gain } 1 => hand_waving.freq; 0.5 => hand_waving.gain; 0.5 => step.next; // time loop (128 / f_near)::second => T_near; (128 / f_far)::second => T_far; while (true) { T_far + (T_near - T_far) * hand_waving.last() => delta_T; for (int i; i BBD[i].delay; } 0.1::ms => now; }