Exemplo n.º 1
0
 public static IBGCStream ContinuousFilter(
     this IBGCStream stream,
     IBGCEnvelopeStream envelopeStream,
     ContinuousFilter.FilterType filterType,
     double freqLB,
     double freqUB,
     double qFactor = double.NaN)
 {
     return(new ContinuousFilter(
                stream: stream,
                filterEnvelope: envelopeStream,
                filterType: filterType,
                freqLB: freqLB,
                freqUB: freqUB,
                qFactor: qFactor));
 }
Exemplo n.º 2
0
 public static IBGCStream ContinuousFilter(
     this IBGCStream stream,
     IBGCEnvelopeStream envelopeStream,
     ContinuousFilter.FilterType filterType,
     double freqLB,
     double freqUB,
     double qFactor = double.NaN,
     TransformRMSBehavior rmsBehavior = TransformRMSBehavior.Recalculate)
 {
     return(new ContinuousFilter(
                stream: stream,
                filterEnvelope: envelopeStream,
                filterType: filterType,
                freqLB: freqLB,
                freqUB: freqUB,
                qFactor: qFactor,
                rmsBehavior: rmsBehavior));
 }
Exemplo n.º 3
0
        public void TestContinuousFilter()
        {
            Calibration.Initialize();

            IBGCStream noiseStream = new NoiseAudioClip(
                duration: 4,
                rms: 1.0,
                freqLB: 20.0,
                freqUB: 10000.0,
                frequencyCount: 10000,
                distribution: NoiseAudioClip.AmplitudeDistribution.Pink);


            for (ContinuousFilter.FilterType filter = 0; filter < ContinuousFilter.FilterType.MAX; filter++)
            {
                WaveEncoding.SaveStream(
                    filepath: DataManagement.PathForDataFile("Test", $"Sigmoid{filter}FilteredNoise.wav"),
                    stream: new ContinuousFilter(
                        stream: noiseStream,
                        filterEnvelope: new SigmoidEnvelope(4.0, 1.0),
                        filterType: filter,
                        freqLB: 20,
                        freqUB: 10000)
                    .Normalize(80),
                    overwrite: true);

                WaveEncoding.SaveStream(
                    filepath: DataManagement.PathForDataFile("Test", $"Linear{filter}FilteredNoise.wav"),
                    stream: new ContinuousFilter(
                        stream: noiseStream,
                        filterEnvelope: new LinearEnvelope(4.0),
                        filterType: filter,
                        freqLB: 20,
                        freqUB: 10000)
                    .Normalize(80),
                    overwrite: true);

                WaveEncoding.SaveStream(
                    filepath: DataManagement.PathForDataFile("Test", $"SlowSine{filter}FilteredNoise.wav"),
                    stream: new ContinuousFilter(
                        stream: noiseStream,
                        filterEnvelope: new SineWave(1.0, 1.0),
                        filterType: filter,
                        freqLB: 20,
                        freqUB: 10000)
                    .Normalize(80),
                    overwrite: true);

                WaveEncoding.SaveStream(
                    filepath: DataManagement.PathForDataFile("Test", $"FastSine{filter}FilteredNoise.wav"),
                    stream: new ContinuousFilter(
                        stream: noiseStream,
                        filterEnvelope: new SineWave(1.0, 50.0),
                        filterType: filter,
                        freqLB: 20,
                        freqUB: 10000)
                    .Normalize(80),
                    overwrite: true);

                WaveEncoding.SaveStream(
                    filepath: DataManagement.PathForDataFile("Test", $"SlowTriangle{filter}FilteredNoise.wav"),
                    stream: new ContinuousFilter(
                        stream: noiseStream,
                        filterEnvelope: new TriangleWave(1.0, 1.0),
                        filterType: filter,
                        freqLB: 20,
                        freqUB: 10000)
                    .Normalize(80),
                    overwrite: true);

                WaveEncoding.SaveStream(
                    filepath: DataManagement.PathForDataFile("Test", $"FastTriangle{filter}FilteredNoise.wav"),
                    stream: new ContinuousFilter(
                        stream: noiseStream,
                        filterEnvelope: new TriangleWave(1.0, 50.0),
                        filterType: filter,
                        freqLB: 20,
                        freqUB: 10000)
                    .Normalize(80),
                    overwrite: true);
            }
        }