private void Callback(int Count, Audio.SampleBuffer[] In, Audio.SampleBuffer[] Out, double Rate) { double[] x = new double[Count]; // Sum the inputs. foreach (Audio.SampleBuffer i in In) { using (Audio.SamplesLock y = new Audio.SamplesLock(i, true, false)) for (int j = 0; j < y.Count; ++j) { x[j] += y[j]; } } // Write the sum to the outputs. foreach (Audio.SampleBuffer i in Out) { using (Audio.SamplesLock y = new Audio.SamplesLock(i, false, true)) for (int j = 0; j < y.Count; ++j) { y[j] = x[j]; } } signal.AddSamples(scope.Signals.Clock, x); scope.Signals.TickClock(x.Length, Rate); }
private static double AmplifySignal(Audio.SampleBuffer Signal, double Gain) { double peak = 0.0; using (Audio.SamplesLock samples = new Audio.SamplesLock(Signal, true, true)) { for (int i = 0; i < samples.Count; ++i) { double v = samples[i]; v *= Gain; peak = Math.Max(peak, Math.Abs(v)); samples[i] = v; } } return(peak); }
private static double AmplifySignal(Audio.SampleBuffer Signal, double Gain) { double peak = 0.0; using (Audio.SamplesLock samples = new Audio.SamplesLock(Signal, true, true)) { for (int i = 0; i < samples.Count; ++i) { double v = samples[i]; v *= Gain; peak = Math.Max(peak, Math.Abs(v)); samples[i] = v; } } return peak; }
private void Callback(int Count, Audio.SampleBuffer[] In, Audio.SampleBuffer[] Out, double Rate) { double[] x = new double[Count]; // Sum the inputs. foreach (Audio.SampleBuffer i in In) using (Audio.SamplesLock y = new Audio.SamplesLock(i, true, false)) for (int j = 0; j < y.Count; ++j) x[j] += y[j]; // Write the sum to the outputs. foreach (Audio.SampleBuffer i in Out) using (Audio.SamplesLock y = new Audio.SamplesLock(i, false, true)) for (int j = 0; j < y.Count; ++j) y[j] = x[j]; signal.AddSamples(scope.Signals.Clock, x); scope.Signals.TickClock(x.Length, Rate); }