자바 스크립트로 웹 오디오 API를 사용하고 있습니다.Chrome에서 지연되는 웹 오디오 API
나는 오실레이터를 생성하여 볼륨 (gainNode)에 연결하고 대상에 연결합니다.
확인. 좋은.
나는 지연 효과를 원한다. 오실레이터와 볼륨 사이에 붙인다.
글쎄, 그건 작동하지 않는다, 나는 단지 지연을 듣는다. 그것은 깨끗합니다.
좋아, 그래서 볼륨에 osc를 osc에 연결하고 osc를 볼륨에 연결 한 다음 대상 볼륨을 연결합니다.
이제 왜곡 된 것처럼 보입니다.
osc를 대상으로 볼륨까지 지연 시키려고했는데 osc를 대상으로하므로 대상에 두 개의 연결이 있습니다. 그것도 왜곡됩니다.
이것은 크롬에있는 것입니다.
iOS6에서 약간의 시간이 걸렸지 만 iOS6에서 올바르게 작동하는 것 같습니다. 사파리에 대해 모르겠다.
http://cloudmusiccompany.appspot.com/watch.jsp으로 이동하여 빨간색과 그림을 클릭하여 사용해보세요. 그것은 정상적인 사인파입니다. 이제 흰색을 클릭하고 그릴 때와 지연이 같고 크롬 (우분투)이 왜곡됩니다. Safar에 대해 모르겠다.
분명히 당신은 자바 스크립트 때문에 링크에서 전체 소스를 볼 수 있습니다.
관련 자료 :
function makeNewChannel(color){
var info = getInstrumentInfo(color);
var chan = {osc: acontext.createOscillator(),
freqs: [],
times: [],
pxdata: [],
i: 0,
muted: true,
finishedLoop: false,
volume: acontext.createGainNode(),
gate: acontext.createGainNode(),
delay: acontext.createDelayNode(),
delayGain: acontext.createGainNode(),
mute: function(){
this.muted = true;
this.volume.gain.value = 0;
},
unmute: function(){
this.muted = false;
this.volume.gain.value = player.defaultGain/(info.soft ? 2 : 1);
}
}
chan.osc.type = info.type;
// chan.osc.connect(chan.gate);
chan.osc.connect(chan.volume);
chan.delayGain.gain.value = player.defaultGain ;
/* ugh , the wet sounds ok, but somehow its distorting or doubling the dry signal
* although it seems ok on iphone?
* */
if (info.delay){
chan.delay.delayTime.value = 0.5;
chan.volume.connect(chan.delay)
chan.delay.connect(chan.delayGain);
chan.delayGain.connect(acontext.destination);
}
chan.volume.gain.value = 0; //player.defaultGain;
chan.gate.gain.value = 0;
chan.volume.connect(acontext.destination);
chan.osc.frequency.value = 0;
chan.osc.noteOn(0);
return chan;
}
소스에서 라우팅을 추출 하시겠습니까? 그것을 찾으려면 계속 읽어 봐야 할 것 같습니다. –
죄송합니다. 저는 컴퓨터에 올 때 시도 할 수 있도록 방금 내 전화에서 게시했습니다. 관련 방법은 makeNewChannel입니다. – MikeHelland
iOS6 장치를 사용하는 사람이 명확한 지연을 가지고 있는지, 크롬이 왜곡 된 것을 (위의 웹 페이지에서 흰색으로 그려서) 확인할 수 있다고 생각합니다. Safari 6. 죄송합니다. 모든 플랫폼에서 직접 테스트해야한다는 것을 알고 있습니다. Mac에 액세스 할 수 없습니다. – MikeHelland