0

我有两种过滤效果(低通和高通类型)。但是,在我的音频采样缓冲区上处理完这两种效果后,两种效果在运行时都听不见。要声明的第二个过滤器只会被听到。我通过交换调用共振频率位的顺序进行了很多实验,要声明的第二种滤波器类型仅使其在运行时输出。我收到了一个建议,描述了一个称为“音频链接”的过程。有人对此有想法吗?或者 Superpowered DSP 不能在音频系统中处理具有两种不同滤波器类型的缓冲区?拜托,任何帮助都将非常感激......

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

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(0.5f), 0.2f);
           filter->setResonantParameters(floatToFrequency(0.5f), 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

你的伪代码看起来不错。我猜你也叫 filter->enable 和 filterb->enable ?

据我猜测,您应该听到一些高频和一些低频降低。

于 2017-09-03T09:03:59.267 回答