private void BuildAudioInChain(WaveFormat monoFormat) { filter = new ComplexFilter( monoFormat, new BlackmanHarrisWindowFunction(), new FirFilter()); filter.Filters.Add(new DigitalFilter { FilterFunction = new LowPassFilterFunction(), LowerCutOffFrequency = 10000f }); filterNode = new MonoSignalNode(monoFormat, filter.FilterImplementation); fourier = new FourierTransform( new FastFourierTransformProvider(), new BlackmanHarrisWindowFunction(), 2048); fourierNode = new MonoSignalNode(monoFormat, fourier); fourier.DataReady += fourierControl.fourier_DataReady; flanger = new Flanger(new SineWave()); flangerNode = new MonoSignalNode(monoFormat, flanger); flangerNode.CentreIn.Source = asioInput.Sources.First(); //flangerNode.CentreIn.Source = waveCard.Inputs.First(); filterNode.CentreIn.Source = flangerNode.CentreOut; fourierNode.CentreIn.Source = filterNode.CentreOut; asioOutput.Sinks.ElementAt(0).Source = filterNode.CentreOut; asioOutput.Sinks.ElementAt(1).Source = filterNode.CentreOut; //waveCard.Outputs.ElementAt(0).Source = filterNode.CentreOut; //waveCard.Outputs.ElementAt(1).Source = filterNode.CentreOut; }
public void Initialise() { lfo = Substitute.For<IOscillator>(); //lfo.Generate(Arg.Any<int>()).Returns(0f); target = new Flanger(lfo); }
public void Flanger_200000_iterations_1000_length_buffer() { var target = new Flanger(new SineWave()); target.Format = new WaveFormat(44100, 1); var time = Helpers.Time(() => { var buffer = new float[1000]; for (int i = 0; i < 200000; i++) { target.Process(new float[][] { buffer }, 1000); } }); Debug.WriteLine(string.Format("FirFilter performance test: {0}", time)); }
public void Should_throw_if_no_lfo_provider_to_constructor() { target = new Flanger(null); }