我正在尝试实现立体声相位,如下所述:http://www.image-line.com/support/FLHelp/html/plugins/3x%20OSC.htm
“立体声相位 (SP) - 允许您为发生器的左右声道设置不同的相位偏移。偏移导致振荡器从振荡器形状的不同点开始(例如,从最高点开始正弦函数的值而不是零点)。立体声相位偏移增加了所产生声音的丰富度和立体声全景。”
我正在尝试为 OscillatorNode 实现此目的。我唯一的想法是使用 createPeriodicWave ( https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#dfn-createPeriodicWave ) 但是,规范中关于创建周期波的描述超出了我的理解范围,我还没有通过 Google 找到任何示例。
任何有助于破译 createPeriodicWave 描述的帮助以及关于如何实现此效果的任何其他想法都会有所帮助。
谢谢!
最佳答案
麦克莱伦等人,
这个答案帮助了我,随后让我进入了傅立叶的世界。在a page on the subject的帮助下和一些维基百科,我想我已经记下了方形和锯齿形图案,但三 Angular 形图案仍然让我望而却步。有人知道吗?
它确实给了你相移的能力,如this article by Nick Thompson explains (虽然他调用AudioContext方法的方式不同,但是原理是一样的)。
就方形和锯齿形图案而言:
var n = 4096;
var real = new Float32Array(n);
var imag = new Float32Array(n);
var ac = new AudioContext();
var osc = ac.createOscillator();
/* Pick a wave pattern */
/* Sine
imag[1] = 1; */
/* Sawtooth
for(x=1;x<n;x++)
imag[x] = 2.0 / (Math.pow(-1, x) * Math.PI * x); */
/* Square */
for(x=1;x<n;x+=2)
imag[x] = 4.0 / (Math.PI * x);
var wave = ac.createPeriodicWave(real, imag);
osc.setPeriodicWave(wave);
osc.connect(ac.destination);
osc.start();
osc.stop(2); /* Have it stop after 2 seconds */
这将播放激活的图案,在本例中为方形图案。三 Angular 形公式会是什么样子?
关于javascript - 如何在 Web Audio API 中为 OscillatorNode 设置相位偏移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17513722/