2016-04-15 13 views
4

こんにちは私はAudioKitで作業しています - これは恒星のフレームワークです。私はHelloWorldの例を使って作業しています。周波数のオシレーターに関わるUIボタンのコードがあります。audiokit:同時に2つのオシレーターを再生する

私の質問は、432Hzやaなどの2つのオシレータートーンを同時に再生したい場合です。上記のパーフェクト5(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つのオシレーターを一緒に歌うことができますか?

+0

'AudioKit.output'は何が必要ですか?ライブラリは分かりませんが、AudioKit.output = oscillator + osc2と仮定します。 –

+0

@ yun.cloud AKNode(audioKit Node)が必要なので、それらを結合するか連鎖することができるメソッドが必要です...あなたの提案に感謝します.Xcodeは戻って話しています:) – sova

答えて

9

はAKMixerノードを試してみてください。

var mixer = new AKMixer(oscillator, osc2) 
AudioKit.output = mixer 
AudioKit.start() 
+0

nice!どうもありがとう。これは私が必要とするものです。 – sova

関連する問題