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);
        }
Example #2
0
        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;
 }
Example #4
0
        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);
        }