6

こんにちは、私は AudioKit を使用しています。これは優れたフレームワークであり、これまで学習できただけでとても満足しています。私は HelloWorld の例で作業しており、周波数でオシレーターを作動させる UI ボタン​​のコードがあります...

私の質問は、432Hz と完全 5 度上の 2 つのオシレーター トーンを同時に再生したい場合 (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()
    }

}

2 つのオシレータをチェーンして一緒に歌えるようにするにはどうすればよいですか?

4

1 に答える 1

12

AKMixer ノードを試す:

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