// ambiophonic processor // // Improved phase cancelation using subtraction // of the channels first tried by Howard Moscovitz, // No filters, no feedback. I have found it sounds // better this way // July 8, 2008 // fixed delay level error July 12, 2008 // Howard Moscovitz // balance control // 1 = all right; 0 = all left; 0.5 is center // carefully adjust for you system if it doens't have a // balance control. In that case set 0.5 => float balance; .52 => float balance; // volume control // 0.5 is normal 0.5 => float volume; adc.left => Gain L_in; adc.right => Gain R_in; L_in => Gain L_minus; R_in => Gain R_minus; -1 => L_minus.gain => R_minus.gain; L_in => Gain L_prime; R_minus => L_prime; R_in => Gain R_prime; L_minus => R_prime; L_prime => DelayA L_delay; R_prime => DelayA R_delay; 0.080::ms => dur delay; L_delay.max (10*delay); L_delay.delay (delay); R_delay.max (10*delay); R_delay.delay (delay); -1 => L_delay.gain => R_delay.gain; R_delay => dac.left; L_in => dac.left; L_delay => dac.right; R_in => dac.right; balance * volume => dac.right.gain; (1 - balance) * volume => dac.left.gain; 6::hour => now;