我正在使用AudioKit监视一个简单的吉他调音器应用程序的频率,并且在从AudioKit〜4.2升级到4.4,从Xcode 9.x升级到10,从iOS 11升级到12之后遇到频率差异。在我的设备上获得正确的频率读数。更新后,我在模拟器上获得了低E1(82.4 Hz)的准确结果,但是设备上的读数却是错误的(从〜23到〜47 kHz交替显示)。
我尝试使用其他设备,但获得了相同的结果。
我的viewDidLoad()设置AudioKit相对简单,我以AudioKit游乐场为准则:
scanf("%d%d", &x, &y);
作为一个旁注,我得到关于在两个地方实现的AudioKit类的Objective-C控制台输出。这会导致问题吗?
override func viewDidLoad() {
super.viewDidLoad()
// Enable microphone tracking.
AKSettings.audioInputEnabled = true
let mic = AKMicrophone()
let tracker = AKFrequencyTracker(mic)
let silence = AKBooster(tracker, gain: 0)
AudioKit.output = silence
do {
try AudioKit.start()
}
catch {
print("AudioKit did not start!")
}
mic.start()
tracker.start()
// Track input frequency, 100ms intervals
timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) {
[weak self] (timer) in
guard let this = self else { return }
this.frequencyLabel.text = String(format: "Frequency: %.3f Hz", tracker.frequency)
this.frequencyLabel.sizeToFit()
}
}
有什么想法吗?预先感谢!