2013-10-31 1 views
3

오실레이터를 사용하여 AudioBufferSource에 피치 비브라토를 적용하려고합니다. WebAudio : 오실 레이팅 AudioBufferSource playbackRate

var source = context.createBufferSource(); 
source.connect(context.destination); 
source.buffer = buffer; 
source.loop = true; 
source.start(0); 

// None of the below seems to have any effect in Chrome 

var osc = context.createOscillator(); 
osc.type = "sine"; 
osc.frequency.value = 0.5; 
osc.start(0); 

var osc_gain = context.createGain(); 
osc_gain.connect(source.playbackRate); 
osc.connect(osc_gain); 
// osc_gain.gain.value = 0.1 doesn't work 
osc_gain.gain.setValueAtTime(0.1, 0); 

는 여기에 바이올린입니다. http://jsfiddle.net/HRkcE/12/

오실레이터는 크롬에 어떤 영향을 미칠 것 같지 않지만, (내가 직접 osc_gain.gain.value 설정이 작동하지 않는 것을 생각하면) 파이어 폭스에서 일하고있다.

Chrome에서 작동하지 않도록 잘못하고 있습니까?

답변

2

아니요, 잘못된 것은 아닙니다. Blink는 우리가 이것을지지하지 않는 버그가 있습니다. 지난 주에 누군가 다른 사람이 저에게보고 한 버그는 제가 제출했습니다 : https://code.google.com/p/chromium/issues/detail?id=311284. 우리는 그 문제를 해결할 것입니다.

한편, delayNode의 지연 시간에 진동을 발생시키기 위해 LFO를 사용하여 모든 오디오 연결 (버퍼 소스 이외)에 비브라토 효과를 적용하는 것은 실제로 상대적으로 쉽습니다. - 추가 한 "Vibrato"효과를 확인하십시오. 끝 부분은 http://webaudiodemos.appspot.com/input/index.html이고 노드 체인은 다음과 같습니다. https://github.com/cwilso/Audio-Input-Effects/blob/master/js/effects.js#L478은 비브라토 하위 그래프 작성 루틴입니다.

+0

대단히 감사합니다. –

관련 문제