delayfilter.set_input_port(1, generator, 0) delayfilter.set_blend(blend) delayfilter.set_feedback(feedback) delayfilter.set_feedforward(feedforward) outfilter = DoubleOutPointerFilter(output, False) outfilter.set_input_sampling_rate(sample_rate) outfilter.set_input_port(0, delayfilter, 0) outfilter.process(input.shape[1]) return output if __name__ == "__main__": import numpy as np samples = 2000000 freq_max = 20000 t = np.arange(samples, dtype=np.float64).reshape(1, -1) / sample_rate d = np.sin(np.pi * (sample_rate * freq_max / samples * (t + 0.1)) * t) np.savetxt("input.txt", d) out = filter(d, feedforward=-1, blend=1, feedback=-0.5) np.savetxt("output.txt", out) plt.figure() plot_me((d[0], out[0]), sample_rate) plt.gcf().suptitle("Delay") plt.legend() plt.show()
pipelineend.set_input_sampling_rate(sample_rate) pipelineend.add_filter(outfilterl) pipelineend.add_filter(outfilterr) pipelineend.process(inputl.shape[1]) return outputl, outputr if __name__ == "__main__": import numpy as np samples = 2000000 freq_max = 20000 t = np.arange(samples, dtype=np.float64).reshape(1, -1) / sample_rate d = np.sin(np.pi * (sample_rate * freq_max / samples * (t + .1)) * t) dr = d[:,::-1].copy() np.savetxt("input.txt", d) outl, outr = filter(d, dr, blend_ch1=1, blend_ch2=1, feedforward_ch1_ch1=-1, feedforward_ch2_ch2=-1, feedforward_ch1_ch2=.1, feedforward_ch2_ch1=.7, feedback_ch1_ch1=-.5, feedback_ch1_ch2=.1, feedback_ch2_ch1=.3, feedback_ch2_ch2=-.1, ) np.savetxt("outputl.txt", outl) np.savetxt("outputr.txt", outr) plt.figure() plot_me((d[0], outl[0]), sample_rate) plt.gcf().suptitle("Delay Channel R") plt.figure() plot_me((dr[0], outr[0]), sample_rate) plt.gcf().suptitle("Delay Channel L") plt.show()
if __name__ == "__main__": import numpy as np size = 100000 samples = 2000000 freq_max = 20000 t = np.arange(samples, dtype=np.float64).reshape(1, -1) / sample_rate d = np.sin(np.pi * (sample_rate * freq_max / samples * (t + .1)) * t) np.savetxt("input.txt", d) out = filter_32(d) plt.figure() plot_me((d[0], out[0]), sample_rate) plt.gcf().suptitle("Oversampling 32") np.savetxt("output32.txt", out) out = filter_16(d) plt.figure() plot_me((d[0], out[0]), sample_rate) plt.gcf().suptitle("Oversampling 16") np.savetxt("output16.txt", out) out = filter_8(d) plt.figure() plt.title("Oversampling 8") plot_me((d[0], out[0]), sample_rate) np.savetxt("output8.txt", out) out = filter_4(d) plt.figure() plt.title("Oversampling 4")
pipelinesink = PipelineGlobalSinkFilter() pipelinesink.set_input_sampling_rate(sample_rate) pipelinesink.add_filter(out1filter) pipelinesink.add_filter(out2filter) pipelinesink.process(input.shape[1]) return output1, output2 if __name__ == "__main__": import numpy as np samples = 2000000 freq_max = 20000 t = np.arange(samples, dtype=np.float64).reshape(1, -1) / sample_rate d = np.sin(np.pi * (sample_rate * freq_max / samples * (t + .1)) * t) np.savetxt("input.txt", d) out1, out2 = filter(d, feedforward=1, blend=0.7, feedback=-0.7) np.savetxt("output1.txt", out1) np.savetxt("output2.txt", out2) plt.figure() plot_me((d[0], out1[0]), sample_rate) plt.gcf().suptitle("Stereo L") plt.legend() plt.figure() plot_me((d[0], out2[0]), sample_rate) plt.gcf().suptitle("Stereo R") plt.legend() plt.show()