AVAudioUnitEQ / .BandPass过滤器不工作 [英] AVAudioUnitEQ / .BandPass filter doesn't work

查看:1225
本文介绍了AVAudioUnitEQ / .BandPass过滤器不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法让 AVAudioUnitEQ 工作。

这里是一段应该过滤掉的代码除了659.255Hz +/- 0.05八度之外的所有东西:

Here's a piece of code that should filter out everything except 659.255Hz +/-0.05 octaves:

// Create Audio Engine

var audioEngine = AVAudioEngine()

// Create Equalizer Node

var equalizerNode = AVAudioUnitEQ(numberOfBands: 1) 
var epualizerParameters: AVAudioUnitEQFilterParameters = equalizerNode.bands.first as AVAudioUnitEQFilterParameters
epualizerParameters.filterType = .BandPass
epualizerParameters.frequency = 659.255
epualizerParameters.bandwidth = 0.05
epualizerParameters.bypass = false
audioEngine.attachNode(equalizerNode)

// Configure Audio Engine

var format = audioEngine.inputNode.inputFormatForBus(0)
audioEngine.connect(audioEngine.inputNode, to: equalizerNode, format: format)
audioEngine.connect(equalizerNode, to: audioEngine.outputNode, format: format)


// Start Audio Engine

var error:NSError?
audioEngine.startAndReturnError(&error)

但是,当我运行它,

现在,根据维基百科,Band Pass过滤器是:

Now, according to Wikipedia, the Band Pass filter is:


...通过一定范围内的频率的设备,
拒绝(衰减)该范围之外的频率。

... a device that passes frequencies within a certain range and rejects (attenuates) frequencies outside that range.

我做错了什么?

推荐答案

这是你的EQ参数。

我用滑块和开关创建了一个 github项目。你可以听到差别。
尝试一下。

I created a github project with sliders and switches. You can hear the difference. Try it.

这篇关于AVAudioUnitEQ / .BandPass过滤器不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆