代码之家  ›  专栏  ›  技术社区  ›  Mattia Surricchio

波表合成-WebAudioApi

  •  0
  • Mattia Surricchio  · 技术社区  · 6 年前

    我正在尝试使用Web音频Api创建一个波形表合成器。我想实现的是从一个波形到另一个波形的线性切换(如块状或血清)。

    例如 :从正弦波开始,我旋转一个旋钮,逐渐将其转换为方波。

    我已经搜索了文档,目前为止我找到了如何创建自定义波形:

    var real = new Float32Array(2);
    var imag = new Float32Array(2);
    var ac = new AudioContext();
    var osc = ac.createOscillator();
    
    real[0] = 0;
    imag[0] = 0;
    real[1] = 1;
    imag[1] = 0;
    
    var wave = ac.createPeriodicWave(real, imag, {disableNormalization: true});
    
    osc.setPeriodicWave(wave);
    
    osc.connect(ac.destination);
    
    osc.start();
    osc.stop(2);
    

    主要的问题是,这个波形是静态的,我无法将它逐渐改变为其他波形。

    例如 当前位置我的正弦波进入 Gain1 这是10和我的方波 Gain2 也就是0,然后我把它们换成互补的, 增益2 =5,依此类推。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Raymond Toy    6 年前

    IIUC,我认为使用一组增益节点不会产生你想要的结果。而且没有内置的节点来做这件事。

    AudioWorkletNode .

    推荐文章