【问题标题】:Audio effect ( a 20ms delay between right and the left channel) using Web Audio API or any Javascript Audio Library like howler.js, tone.js?使用 Web Audio API 或任何 Javascript 音频库(如 howler.js、tone.js)的音频效果(左右声道之间有 20 毫秒的延迟)?
【发布时间】:2020-11-04 17:53:30
【问题描述】:

我想知道 howler.js、tone.js 或任何其他 javascript 音频库 中是否有任何选项可用于添加 20 毫秒延迟 在左右声道之间,使音频聆听体验更加身临其境。

可以使用带有 howler.js 的音频精灵来实现吗? (但我猜它不能分开左右声道) https://medium.com/game-development-stuff/how-to-create-audiosprites-to-use-with-howler-js-beed5d006ac1

有吗?

在这里也问过同样的任务:https://github.com/goldfire/howler.js/issues/1374

我通常在 ffdshow 音频处理器下启用此选项,同时在我的电脑上使用 MPC-HC(Mega 版)播放音频。我想知道如何使用 Web Audio API 或 howler.js 来做到这一点?

有点像这种效果:只需将任一通道延迟 20ms 就像我们在 Adob​​e Audition 中所做的那样

【问题讨论】:

    标签: javascript ffmpeg web-audio-api howler.js soundeffect


    【解决方案1】:

    不熟悉howler.js 或tone.js,但我认为他们使用WebAudio。使用普通的 WebAudio,您可以通过以下方式获得所需的内容:

    // Let c be the AduioContext and let s be the stereo signal you want to process
    
    // Splits the stereo channel into two mono channels.
    let splitter = new ChannelSplitterNode(c, {numberOfOutputs: 2});
    
    // Merges two mono channels into a single stereo channel.
    let merger = new ChannelMergerNode(c, {numberOfInputs: 2});
    
    // Delays input by 20 ms.
    let delay = new DelayNode(c, {delayTime: 0.02});
    
    // Split the stereo source into 2 separate mono channels.
    s.connect(splitter);
    
    // Connect first channel of source directly to the merger
    splitter.connect(merger, 0, 0);
    
    // Delay the second channel by 20 ms
    splitter.connect(delay, 1, 0).connect(merger, 0, 1);
    // Connect the output of the merger to the downstream graph
    merger.connect(<node>)
    

    【讨论】:

      猜你喜欢
      • 2020-11-04
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-07
      相关资源
      最近更新 更多