ConvolverNode
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
ConvolverNode 㯠AudioNode ã®ä¸ç¨®ã§ãä¸ãããã AudioBuffer ãç¨ãã¦ç·å½¢ç³ã¿è¾¼ã¿ãè¡ãã¾ãããªãã¼ãã®å®è£
ã«ããç¨ãããã¾ãã ConvolverNode ã¯å¸¸ã« 1 ã¤ã®å
¥åã¨ã1 ã¤ã®åºåãæã¡ã¾ãã
ã¡ã¢: ç·å½¢ç³ã¿è¾¼ã¿ã®çè«çãªå´é¢ã«ã¤ãã¦ã¯ãWikipedia ã®ãç³ã¿è¾¼ã¿ããåç §ãã¦ãã ããã
| å ¥åæ° | 1 |
|---|---|
| åºåæ° | 1 |
| ãã£ã³ãã«ã«ã¦ã³ãã¢ã¼ã | "clamped-max" |
| ãã£ã³ãã«æ° | 1, 2, 4 |
| ãã£ã³ãã«ã®è§£é | "speakers" |
ã³ã³ã¹ãã©ã¯ã¿ã¼
ConvolverNode()-
ConvolverNodeãªãã¸ã§ã¯ãã®æ°ããã¤ã³ã¹ã¿ã³ã¹ãçæãã¾ãã
ããããã£
親ã§ãã AudioNode ããããããã£ãç¶æ¿ãã¦ãã¾ãã
ConvolverNode.buffer-
ã¢ãã©ã«ãã¹ãã¬ãªã 4 ãã£ã³ãã«ã®
AudioBufferã§ãConvolververNodeããªãã¼ã广ãçæããããã«ä½¿ç¨ããï¼ãããããã«ããã£ã³ãã«ã®ï¼ã¤ã³ãã«ã¹å¿çãå«ã¿ã¾ãã ConvolverNode.normalize-
è«çå¤ã§ã
buffer屿§ãè¨å®ããã¦ããã¨ãã«ããããã¡ã¼ããã®ã¤ã³ãã«ã¹å¿çãç忣è¦åã§ã¹ã±ã¼ãªã³ã°ãããã©ãããå¶å¾¡ãã¾ãã
ã¡ã½ãã
åºæã®ã¡ã½ããã¯ããã¾ããã親ã§ãã AudioNode ããã¡ã½ãããç¶æ¿ãã¦ãã¾ãã
ConvolverNode ã®ä¾
次ã®ä¾ã¯ãã³ã³ãã«ãã¼ãã¼ãã使ããããã® AudioContext ã®åºæ¬çãªä½¿ãæ¹ã示ãã¦ãã¾ãã
ã¡ã¢: 以ä¸ã®ä¾ã宿ãããããã«ãã¤ã³ãã«ã¹å¿çãæ±ããå¿ è¦ãããã¾ããå¿ç¨ä¾ã¯ãã¡ãã® Codepen ãã覧ãã ããã
let audioCtx = new window.AudioContext();
async function createReverb() {
let convolver = audioCtx.createConvolver();
// load impulse response from file
let response = await fetch("path/to/impulse-response.wav");
let arraybuffer = await response.arrayBuffer();
convolver.buffer = await audioCtx.decodeAudioData(arraybuffer);
return convolver;
}
...
let reverb = await createReverb();
// someOtherAudioNode -> reverb -> destination
someOtherAudioNode.connect(reverb);
reverb.connect(audioCtx.destination);
仿§æ¸
| 仿§æ¸ |
|---|
| Web Audio API > # ConvolverNode > |