Q: AudiKit: AKEqualizerFilter не работает должным образом с iBAction - PullRequest
0 голосов
/ 13 сентября 2018

Ну, я действительно запутался, потому что, когда я меняю параметры и пытаюсь запустить () / bypass () узел с iBAction, но ничего не происходит. Осциллятор (WhiteNoise), кажется, работает правильно, а Eq - нет. Эти параметры изменились, но звук остался без изменений.

и вот мои коды:

import AudioKit

class Conductor {

    private var oscillator = AKWhiteNoise()
    public var filter = AKEqualizerFilter()

    private var gain = -12.0


    init() {
        oscillator.amplitude = 1
        oscillator.stop()

        filter = AKEqualizerFilter(oscillator)
        filter.bypass()

        AudioKit.output = filter

        do {
            try AudioKit.start()
        } catch {
            AKLog("AudioKit did not start!")
        }
    }

    func play()  {
        if oscillator.isPlaying {
            oscillator.stop()
        } else {
            oscillator.play()

        }
    }

    func bypass(centerFrequency: Double, Q: Double)  {
        if filter.isBypassed {
            filter.rampDuration = 0.3
            filter.centerFrequency = centerFrequency
            filter.bandwidth = centerFrequency/Q
            filter.gain = pow(10, gain/20)

            filter.start()
        } else {
            filter.bypass()
        }
        print(filter.isBypassed)
    }

}

и мои звонки во ViewController:

@IBAction func bypass(_ sender: Any) {
    conductor.bypass(centerFrequency: 125, Q: 7)
}
...