适用于iOS的AudioKit:模拟器与设备上的频率差异

时间:2018-09-20 03:44:01

标签: ios frequency audiokit

我正在使用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()
    }
}

有什么想法吗?预先感谢!

0 个答案:

没有答案