编辑:在您发表评论后,我认为您的要求更清楚。
使用代码实例化 a NVPeakingEQFilter
:
NVPeakingEQFilter* PEQ = [[NVPeakingEQFilter alloc] initWithSamplingRate:self.samplingRate];
PEQ.Q = QFactor;
PEQ.G = gain;
PEQ.centerFrequency = centerFrequencies;
您需要定义 3 个参数:Q、G 和 centerFrequency。Q 和 centerFrequency 通常都是固定的(在我的例子中,QFactor 是一个等于 2.0 的常数)。
因此,您有 10 个滑块:每个滑块对应一个固定的centerFrequency
. 我建议 iTunes 值:32Hz、64Hz、125Hz、250Hz、500Hz、1KHz、2KHz、4KHz、8KHz、16KHz。您不想在滑块值更改时更改这些值。
当滑块值更改时,您要更改的是增益 (G)。在初始化时,G 可以设置为 0.0。这意味着“没有放大/衰减”。
当滑块移动时,您会更改 G,因此实际上您会这样做:
PEQ[sender.tag - 1].G = sender.value * kNominalGainRange;
其中 kNominalGainRange 为 12.0,因此如果sender.value
从 -1.0 变为 +1.0,则 G 从 -12 变为 +12。
希望这可以帮助。
我想知道的是我这样做是否正确?
您没有显示太多代码,但HPFSliderChanged
似乎是正确的。如果您有任何具体问题,您应该描述它并发布更多代码。
滑块的范围是多少?
实际上,对于均衡器,没有严格的规则。iTunes 从 -12db 到 +12db,但您可以使用不同的范围(唯一需要注意的是失真)。
就像在 HPF 示例中一样,滑块范围是 2k 到 8k。这里需要一些指导。
再次,您可以以 iTunes 均衡器为例(32Hz、64Hz、125Hz、250Hz、500Hz、1KHz、2KHz、4KHz、8KHz、16KHz),或者您可以谷歌搜索真实均衡器的图像并查看它们使用的频段。