6

您好,我正在使用 AudioKit——它是一个出色的框架,到目前为止我很高兴学习它。我正在研究一个 HelloWorld 示例,并且有一个 UI 按钮的代码,该按钮以某个频率使用振荡器......

我的问题是:如果我想同时播放两个振荡器音调,例如 432Hz 和上面的完美五度音(比例为 3:2,即 648Hz),我怎样才能让它们同时播放?为每个“音调”提供一个新节点的正确设计模式是什么?

class ViewController: UIViewController {

    var oscillator = AKOscillator()
    var osc2 = AKOscillator()

    override func viewDidLoad() {
        super.viewDidLoad()

        AudioKit.output = oscillator
        AudioKit.start()
    }

    @IBAction func toggleSound(sender: UIButton) {
        if oscillator.isPlaying {
            oscillator.stop()
            sender.setTitle("Play Sine Wave", forState: .Normal)
        } else {
          oscillator.amplitude = 1 //was:: random(0.5, 1)
          oscillator.frequency = 432 //was:: random(220, 880)
          osc2.amplitude = 1
          osc2.frequency = 648 //3:2 from 432Hz
            sender.setTitle("Stop Sine Wave at \(Int(oscillator.frequency))Hz", forState: .Normal)
        }
        sender.setNeedsDisplay()
    }

}

如何将两个振荡器链接在一起,以便它们一起唱歌?

4

1 回答 1

12

试试 AKMixer 节点:

var mixer = new AKMixer(oscillator, osc2)
AudioKit.output = mixer
try! AudioKit.start()
于 2016-04-15T23:24:49.627 回答