def DoubleConvertFilter2_new_test(): import numpy as np from ATK.Core import DoubleComplexToRealFilter, PipelineGlobalSinkFilter from ATK.Core import ComplexDoubleInPointerFilter, DoubleOutPointerFilter from numpy.testing import assert_equal input = np.ascontiguousarray(np.arange(1000, dtype=np.complex128)) output = np.ascontiguousarray(np.zeros(1000, dtype=np.float64)) output2 = np.ascontiguousarray(np.zeros(1000, dtype=np.float64)) inputfilter = ComplexDoubleInPointerFilter(input) convertFilter = DoubleComplexToRealFilter() outputfilter = DoubleOutPointerFilter(output) output2filter = DoubleOutPointerFilter(output2) convertFilter.set_input_port(0, inputfilter, 0) outputfilter.set_input_port(0, convertFilter, 0) output2filter.set_input_port(0, convertFilter, 1) inputfilter.output_sampling_rate = 48000 convertFilter.input_sampling_rate = 48000 outputfilter.input_sampling_rate = 48000 output2filter.input_sampling_rate = 48000 sink = PipelineGlobalSinkFilter() sink.add_filter(outputfilter) sink.add_filter(output2filter) sink.input_sampling_rate = 48000 sink.process(1000) assert_equal(input, output) assert_equal(0, output2)
def filter(input): infilter = DoubleInPointerFilter(input) infilter.output_sampling_rate = sampling_rate attackreleasefilter = DoubleAttackReleaseFilter(1) attackreleasefilter.input_sampling_rate = sampling_rate attackreleasefilter.set_input_port(0, infilter, 0) attackreleasefilter.attack = np.exp(-1/(sampling_rate*1e-3)) attackreleasefilter.release = np.exp(-1/(sampling_rate*10e-3)) outdata = np.zeros(processsize, dtype=np.float64) outfilter = DoubleOutPointerFilter(outdata) outfilter.input_sampling_rate = sampling_rate outfilter.set_input_port(0, attackreleasefilter, 0) attackreleasefilter2 = DoubleAttackReleaseHysteresisFilter(1) attackreleasefilter2.input_sampling_rate = sampling_rate attackreleasefilter2.set_input_port(0, infilter, 0) attackreleasefilter2.attack = np.exp(-1/(sampling_rate*1e-3)) attackreleasefilter2.release = np.exp(-1/(sampling_rate*10e-3)) attackreleasefilter2.release_hysteresis = .5 attackreleasefilter2.attack_hysteresis = .9 outdata2 = np.zeros(processsize, dtype=np.float64) outfilter_hyst = DoubleOutPointerFilter(outdata2) outfilter_hyst.input_sampling_rate = sampling_rate outfilter_hyst.set_input_port(0, attackreleasefilter2, 0) pipelineend = PipelineGlobalSinkFilter() pipelineend.input_sampling_rate = sampling_rate pipelineend.add_filter(outfilter) pipelineend.add_filter(outfilter_hyst) pipelineend.process(processsize) return outdata, outdata2
def filter(input): infilter = DoubleInPointerFilter(input) infilter.output_sampling_rate = sampling_rate attackreleasefilter = DoubleAttackReleaseFilter(1) attackreleasefilter.input_sampling_rate = sampling_rate attackreleasefilter.set_input_port(0, infilter, 0) attackreleasefilter.attack = np.exp(-1 / (sampling_rate * 1e-3)) attackreleasefilter.release = np.exp(-1 / (sampling_rate * 10e-3)) outdata = np.zeros(processsize, dtype=np.float64) outfilter = DoubleOutPointerFilter(outdata) outfilter.input_sampling_rate = sampling_rate outfilter.set_input_port(0, attackreleasefilter, 0) attackreleasefilter2 = DoubleAttackReleaseHysteresisFilter(1) attackreleasefilter2.input_sampling_rate = sampling_rate attackreleasefilter2.set_input_port(0, infilter, 0) attackreleasefilter2.attack = np.exp(-1 / (sampling_rate * 1e-3)) attackreleasefilter2.release = np.exp(-1 / (sampling_rate * 10e-3)) attackreleasefilter2.release_hysteresis = .5 attackreleasefilter2.attack_hysteresis = .9 outdata2 = np.zeros(processsize, dtype=np.float64) outfilter_hyst = DoubleOutPointerFilter(outdata2) outfilter_hyst.input_sampling_rate = sampling_rate outfilter_hyst.set_input_port(0, attackreleasefilter2, 0) pipelineend = PipelineGlobalSinkFilter() pipelineend.input_sampling_rate = sampling_rate pipelineend.add_filter(outfilter) pipelineend.add_filter(outfilter_hyst) pipelineend.process(processsize) return outdata, outdata2
def process(input_l, input_r): # Populate the outputs output_l = np.zeros(size, dtype=np.float64) output_r = np.zeros(size, dtype=np.float64) # Create the inputs of the pipeline from the numpy arrays infilter_l = DoubleInPointerFilter(input_l, False) infilter_l.input_sampling_rate = sample_rate infilter_r = DoubleInPointerFilter(input_r, False) infilter_r.input_sampling_rate = sample_rate # Create the intermediate buffer and connect it to the inputs buffer = DoubleBufferFilter(2) buffer.input_sampling_rate = sample_rate buffer.set_input_port(0, infilter_l, 0) buffer.set_input_port(1, infilter_r, 0) # Create the outputs and connect them to the buffer outfilter_l = DoubleOutPointerFilter(output_l, False) outfilter_l.input_sampling_rate = sample_rate outfilter_l.set_input_port(0, buffer, 1) outfilter_r = DoubleOutPointerFilter(output_r, False) outfilter_r.input_sampling_rate = sample_rate outfilter_r.set_input_port(0, buffer, 0) # Create the sink of the pipeline sink = PipelineGlobalSinkFilter() sink.input_sampling_rate = sample_rate sink.add_filter(outfilter_l) sink.add_filter(outfilter_r) # Process the pipeline sink.process(size) return (output_l, output_r)
def DoubleConvertFilter2_new_test(): import numpy as np from ATK.Core import DoubleComplexToRealFilter, PipelineGlobalSinkFilter from ATK.Core import ComplexDoubleInPointerFilter, DoubleOutPointerFilter from numpy.testing import assert_equal input = np.ascontiguousarray(np.arange(1000, dtype=np.complex128)) output = np.ascontiguousarray(np.zeros(1000, dtype=np.float64)) output2 = np.ascontiguousarray(np.zeros(1000, dtype=np.float64)) inputfilter = ComplexDoubleInPointerFilter(input) convertFilter = DoubleComplexToRealFilter() outputfilter = DoubleOutPointerFilter(output) output2filter = DoubleOutPointerFilter(output2) convertFilter.set_input_port(0, inputfilter, 0) outputfilter.set_input_port(0, convertFilter, 0) output2filter.set_input_port(0, convertFilter, 1) inputfilter.output_sampling_rate = 48000 convertFilter.input_sampling_rate = 48000 outputfilter.input_sampling_rate = 48000 output2filter.input_sampling_rate = 48000 sink = PipelineGlobalSinkFilter() sink.add_filter(outputfilter) sink.add_filter(output2filter) sink.input_sampling_rate = 48000 sink.process(1000) assert_equal(input, output) assert_equal(0, output2)
def filter(inputl, inputr, blend_ch1=0, blend_ch2=0, feedback_ch1_ch1=0, feedback_ch1_ch2=0, feedback_ch2_ch1=0, feedback_ch2_ch2=0, feedforward_ch1_ch1=1, feedforward_ch1_ch2=0, feedforward_ch2_ch1=0, feedforward_ch2_ch2=1): import numpy as np outputl = np.zeros(inputl.shape, dtype=np.float64) outputr = np.zeros(inputl.shape, dtype=np.float64) infilterL = DoubleInPointerFilter(inputl, False) infilterL.input_sampling_rate = sample_rate infilterR = DoubleInPointerFilter(inputr, False) infilterR.input_sampling_rate = sample_rate delayfilter = DoubleDualMultipleUniversalFixedDelayLineFilter(5000) delayfilter.input_sampling_rate = sample_rate delayfilter.set_input_port(0, infilterL, 0) delayfilter.set_input_port(1, infilterR, 0) delayfilter.set_delay(0, 4800) #50ms delayfilter.set_delay(1, 3600) #37.5ms delayfilter.set_blend(0, blend_ch1) delayfilter.set_blend(1, blend_ch2) delayfilter.set_feedback(0, 0, feedback_ch1_ch1) delayfilter.set_feedback(0, 1, feedback_ch1_ch2) delayfilter.set_feedback(1, 0, feedback_ch2_ch1) delayfilter.set_feedback(1, 1, feedback_ch2_ch2) delayfilter.set_feedforward(0, 0, feedforward_ch1_ch1) delayfilter.set_feedforward(0, 1, feedforward_ch1_ch2) delayfilter.set_feedforward(1, 0, feedforward_ch2_ch1) delayfilter.set_feedforward(1, 1, feedforward_ch2_ch2) outfilterl = DoubleOutPointerFilter(outputl, False) outfilterl.input_sampling_rate = sample_rate outfilterl.set_input_port(0, delayfilter, 0) outfilterr = DoubleOutPointerFilter(outputr, False) outfilterr.input_sampling_rate = sample_rate outfilterr.set_input_port(0, delayfilter, 1) pipelineend = PipelineGlobalSinkFilter() pipelineend.input_sampling_rate = sample_rate pipelineend.add_filter(outfilterl) pipelineend.add_filter(outfilterr) pipelineend.process(inputl.shape[1]) return outputl, outputr
def PipelineGlobalSinkFilter_usage_test(): import numpy as np from ATK.Core import DoubleInPointerFilter, DoubleOutPointerFilter, PipelineGlobalSinkFilter from numpy.testing import assert_equal input = np.ascontiguousarray(np.arange(1000, dtype=np.float64)[None,:]) output = np.ascontiguousarray(np.zeros(1000, dtype=np.float64)[None,:]) inputfilter = DoubleInPointerFilter(input, False) outputfilter = DoubleOutPointerFilter(output, False) outputfilter.set_input_port(0, inputfilter, 0) inputfilter.output_sampling_rate = 48000 outputfilter.input_sampling_rate = 48000 sink = PipelineGlobalSinkFilter() sink.add_filter(outputfilter) sink.input_sampling_rate = 48000 sink.process(1000) assert_equal(input, output)
def filter(inputl, inputr, blend_ch1=0, blend_ch2=0, feedback_ch1_ch1=0, feedback_ch1_ch2=0, feedback_ch2_ch1=0, feedback_ch2_ch2=0, feedforward_ch1_ch1=1, feedforward_ch1_ch2=0, feedforward_ch2_ch1=0, feedforward_ch2_ch2=1): import numpy as np outputl = np.zeros(inputl.shape, dtype=np.float64) outputr = np.zeros(inputl.shape, dtype=np.float64) infilterL = DoubleInPointerFilter(inputl, False) infilterL.input_sampling_rate = sample_rate infilterR = DoubleInPointerFilter(inputr, False) infilterR.input_sampling_rate = sample_rate delayfilter = DoubleDualMultipleUniversalFixedDelayLineFilter(5000) delayfilter.input_sampling_rate = sample_rate delayfilter.set_input_port(0, infilterL, 0) delayfilter.set_input_port(1, infilterR, 0) delayfilter.set_delay(0,4800) #50ms delayfilter.set_delay(1,3600) #37.5ms delayfilter.set_blend(0,blend_ch1) delayfilter.set_blend(1,blend_ch2) delayfilter.set_feedback(0,0,feedback_ch1_ch1) delayfilter.set_feedback(0,1,feedback_ch1_ch2) delayfilter.set_feedback(1,0,feedback_ch2_ch1) delayfilter.set_feedback(1,1,feedback_ch2_ch2) delayfilter.set_feedforward(0,0,feedforward_ch1_ch1) delayfilter.set_feedforward(0,1,feedforward_ch1_ch2) delayfilter.set_feedforward(1,0,feedforward_ch2_ch1) delayfilter.set_feedforward(1,1,feedforward_ch2_ch2) outfilterl = DoubleOutPointerFilter(outputl, False) outfilterl.input_sampling_rate = sample_rate outfilterl.set_input_port(0, delayfilter, 0) outfilterr = DoubleOutPointerFilter(outputr, False) outfilterr.input_sampling_rate = sample_rate outfilterr.set_input_port(0, delayfilter, 1) pipelineend = PipelineGlobalSinkFilter() pipelineend.input_sampling_rate = sample_rate pipelineend.add_filter(outfilterl) pipelineend.add_filter(outfilterr) pipelineend.process(inputl.shape[1]) return outputl, outputr
def PipelineGlobalSinkFilter_new_test(): from ATK.Core import PipelineGlobalSinkFilter sink = PipelineGlobalSinkFilter() sink.input_sampling_rate = 48000 sink.process(100)