2016-09-12 1 views
0

Tone.js라는 라이브러리로 모든 종류의 방법으로 웹에서 오디오를 조작 할 수있는 응용 프로그램을 만들었습니다.Tone.js를 사용하여 오디오를 별도의 채널로 분할 할 수 없음

현재 나는 '내 현재 코드와

(오른쪽에서 왼쪽과는 500Hz에서 예를 들어 400Hz의)를 헤드폰 사용자를위한 (왼쪽 및 오른쪽) 두 채널을 생성하고 각 귀에 하나 개의 서로 다른 주파수를 재생하고 싶습니다 두 개의 주파수가 재생되어 각각의 귀에서 연주됩니다. 아무도 내가 어떻게 그들을 분리 할 수있는 제안을 가지고 있습니까?

여기 내 코드는 지금까지의 :

//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 당신은 Merge를 사용하려면

답변

3
  • 하지 당신은 마스터 출력에 직접 좌우 오실레이터 모두를 보내는
  • 분할, 당신은 단지 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(); 
관련 문제