为什么拆分器节点取消了平移?
Why does the splitter node do away with panning?
对于网络音频 API,我想平移声音(使用 PannerNode),然后将声音馈送到 ChannelSplitterNode 以便我可以将 AnalyserNode 应用于每个通道。
但是,ChannelSplitterNode 取消了早期 PannerNode 创建的平移。
这个gist说明了我的问题。很长,但我们可以关注panAndPlay
方法:
// Pans and plays a sound.
function panAndPlay(source) {
// Specify a pan.
var panner = audioContext.createPanner();
panner.panningModel = 'equalpower';
panner.setPosition(1, 0, 0);
// Create a splitter node that is supposed to split by channel.
var splitter = audioContext.createChannelSplitter();
// Create the audio graph: source -> panner -> splitter -> destination
source.connect(panner);
panner.connect(splitter);
// Try to hook up both channels outputted by the splitter to destination.
splitter.connect(audioContext.destination, 0);
splitter.connect(audioContext.destination, 1);
// The splitter seems to ignore the pan: You only hear the pan effect if you
// bypass the splitter by directly connecting the panner to the
// destination. Why does the splitter remove the pan effect? I want to use
// a splitter so that I can hook up an analyzer node to each channel, but
// I also want the pan effect ...
// Start playing sound.
source.start(0);
};
如何让分离器在其通道输出中注意早期的声像效果?
分离器输出两个单声道信号。当您将这两个单声道信号连接到目的地时,它们会混合成一个单声道信号。您必须使用合并节点将它们转回立体声信号,并将其连接到目的地,才能听到立体声。
但将声像器直接连接到目的地可能会更好。您也可以将它连接到分离器,分离器输出到两个 AnalyserNodes,然后不要将 AnalyserNodes 的输出连接到任何东西。这样就不需要合并节点了。
对于网络音频 API,我想平移声音(使用 PannerNode),然后将声音馈送到 ChannelSplitterNode 以便我可以将 AnalyserNode 应用于每个通道。
但是,ChannelSplitterNode 取消了早期 PannerNode 创建的平移。
这个gist说明了我的问题。很长,但我们可以关注panAndPlay
方法:
// Pans and plays a sound.
function panAndPlay(source) {
// Specify a pan.
var panner = audioContext.createPanner();
panner.panningModel = 'equalpower';
panner.setPosition(1, 0, 0);
// Create a splitter node that is supposed to split by channel.
var splitter = audioContext.createChannelSplitter();
// Create the audio graph: source -> panner -> splitter -> destination
source.connect(panner);
panner.connect(splitter);
// Try to hook up both channels outputted by the splitter to destination.
splitter.connect(audioContext.destination, 0);
splitter.connect(audioContext.destination, 1);
// The splitter seems to ignore the pan: You only hear the pan effect if you
// bypass the splitter by directly connecting the panner to the
// destination. Why does the splitter remove the pan effect? I want to use
// a splitter so that I can hook up an analyzer node to each channel, but
// I also want the pan effect ...
// Start playing sound.
source.start(0);
};
如何让分离器在其通道输出中注意早期的声像效果?
分离器输出两个单声道信号。当您将这两个单声道信号连接到目的地时,它们会混合成一个单声道信号。您必须使用合并节点将它们转回立体声信号,并将其连接到目的地,才能听到立体声。
但将声像器直接连接到目的地可能会更好。您也可以将它连接到分离器,分离器输出到两个 AnalyserNodes,然后不要将 AnalyserNodes 的输出连接到任何东西。这样就不需要合并节点了。