2016-09-12 2 views
0

Tone.jsというライブラリを使用してアプリケーションを作成し始めました。これはあらゆる方法でWeb上のオーディオを操作できます。私の現在のコードでTone.jsを使用してオーディオを別々のチャンネルに分割できない

現在、私は(右に左と500Hzの中で例えば400Hzの)ヘッドホン・ユーザーのための2つのチャンネル(左と右)を作成し、それぞれの耳に1つの異なる周波数を再生したい

、私は」 2つの周波数を持っていて、どちらもそれぞれの耳で演奏しています。どのように私はそれらを分けることができるかに関して誰にでも何か提案がありますか?

はここで、これまでに私のコードです:

//create a synth and connect it to the master output (your speakers) 

//Connect each separate tone to split 
var split = new Tone.Split(); 
var leftEar = new Tone.Oscillator().toMaster(); 
var rightEar = new Tone.Oscillator().toMaster(); 

leftEar.frequency.value = 400; 
rightEar.frequency.value = 500; 

split.left = leftEar; 
split.right = rightEar; 

leftEar.connect(split); 
rightEar.connect(split); 

leftEar.start(); 
rightEar.start(); 

//Frequency is equivalent to difference between frequency in left and right ear 
var frequency = { 
    "Gamma" : [30, 50], 
    "Beta" : [14, 30], 
    "Alpha" : [8, 14], 
    "Theta" : [4, 8], 
    "Delta" : [0.1, 4] 
}; 

ありがとう!

参考:https://tonejs.github.io/docs/#Splithttps://github.com/Tonejs/Tone.js/wiki/Signals

答えて

3
  • あなたはMergeを使用したい、あなたが唯一のsplit
  • .toMaster()を呼び出すべきである、マスター出力に直接あなたの左と右の発振器の両方を送信している
  • を分割しません
  • マージが生成するGainNodesを削除していますsplit.left = leftEar;
  • 両方のオシレータを両方のチャンネルに接続しています。これらの変更後leftEar.connect(split.left)

を行うことによって、それぞれのチャンネルにそれらを接続する必要がありますあなたのコードは次のようになります。

var split = new Tone.Merge().toMaster(); 
var leftEar = new Tone.Oscillator(); 
var rightEar = new Tone.Oscillator(); 

leftEar.frequency.value = 400; 
rightEar.frequency.value = 500; 

leftEar.connect(split.left); 
rightEar.connect(split.right); 

leftEar.start(); 
rightEar.start(); 
関連する問題