0

关于 SuperpoweredFilter(作为模拟滤波器)。一个音频系统(SuperpoweredAudioIO)中是否可以有高通和低通滤波器类型的两个实例?因为我尝试了不同的方法,但声明的最后一个过滤器类型的实例仅在运行时才能听到。请帮忙

这是我对这两种情况的声明;

filter = new SuperpoweredFilter(SuperpoweredFilter_Resonant_Highpass, samplerate);
filterb = new SuperpoweredFilter(SuperpoweredFilter_Resonant_Lowpass, samplerate);


audioSystem = new SuperpoweredAndroidAudioIO(samplerate, buffersize, false, true, audioProcessing, this, -1, SL_ANDROID_STREAM_MEDIA, buffersize * 2);

           filterb->setResonantParameters(floatToFrequency(1.0f), 0.2f);
           filter->setResonantParameters(floatToFrequency(1.0f), 0.2f);              //resonance
           filterb->enable(true);
           filter->enable(true);

       playerA->play(false);

同样在音频处理方法中,我调用了

filterb->process(stereoBuffer, stereoBuffer, numberOfSamples);  
filter->process(stereoBuffer, stereoBuffer, numberOfSamples); 
4

1 回答 1

0

不清楚你的意思是什么

只能在运行时听到

你打电话吗

filterb->process(stereoBuffer, stereoBuffer, numberOfSamples);  
filter->process(stereoBuffer, stereoBuffer, numberOfSamples);  

在主要的“过程”方法中?

但是,使用上述调用序列,如果将两个滤波器 Fc 都设置为 1.0(即 20kHz),您将遇到如下情况:
低通-> 阻止所有高于 20kHz 的频率(即:没有声音效果)
然后高通-
> 阻止所有频率低于 20kHz(即:总频率被切断)
,因此您几乎没有信号输出!
您是否尝试动态更改 Fc?

于 2017-08-31T14:31:48.920 回答