3

我正在尝试使用NOVOCAINE构建一个 10 波段均衡器。我复制了 Equaliser.mm 的代码viewWillAppear,并在 xib 文件中添加了另外 9 个滑块,并更改了IBAction代码:

-(void)HPFSliderChanged:(UISlider *)sender {
PEQ[sender.tag - 1].centerFrequency = sender.value;
NSLog(@"%f",sender.value);
} 

我想知道的是我这样做是否正确?滑块的范围是多少?就像在HPF示例中一样,滑块范围是 2k 到 8k。这里需要一些指导。

谢谢。

4

1 回答 1

0

编辑:在您发表评论后,我认为您的要求更清楚。

使用代码实例化 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),或者您可以谷歌搜索真实均衡器的图像并查看它们使用的频段。

于 2014-07-03T08:03:30.880 回答