我正在用html5开发音频混音器。要求是它应该具有以下控件。所有控件都是简单的滑块,在幻灯片上,控件的更改值也会更改。

  • 音高校正
  • 筛选器(高通和低通)
  • 混响
  • 高,中,低
  • Tempo

  • 我了解如何实现#1、3、4。在#2上,我有点困惑,我发现HTML5 Web音频API中没有提供它,唯一的方法是使用playBackRate。有什么意见吗?

    5号-似乎与高通和低通滤波器相似。 #3和4有什么区别?

    第6号-是否有任何控件可以更改节奏?还是和playBackRate一样?

    我不了解音乐术语,因此对理解整体观点的任何帮助将不胜感激。

    最佳答案

    我不确定该如何放置。 “音高校正”是一个非常深入的话题,并不是您真正可以简化为单个滑块的东西;实现起来也很复杂。

    同样,速度和混响也是复杂的主题。这在很大程度上还取决于您的声源​​是什么。例如,通常不要在混音器上设置“速度”。它设置在某种音序器上,例如鼓机。

    高通和低通滤波器在Web音频中非常简单,但是同样,它取决于您要如何实现它们以及要提供的音乐控件。

    使用ConvolverNode可以很容易地实现混响,但是同样,有很多潜在的控件(例如,房间/脉冲响应的大小是多少?)。

    高/中/低控制非常简单-我在wubwubwub DJ混音器(http://github.com/cwilso/wubwubwub/)中使用了以下代码:

        this.low = audioCtx.createBiquadFilter();
        this.low.type = "lowshelf";
        this.low.frequency.value = 320.0;
        this.low.gain.value = 0.0;
        this.low.connect( this.xfadeGain );
    
        this.mid = audioCtx.createBiquadFilter();
        this.mid.type = "peaking";
        this.mid.frequency.value = 1000.0;
        this.mid.Q.value = 0.5;
        this.mid.gain.value = 0.0;
        this.mid.connect( this.low );
    
        this.high = audioCtx.createBiquadFilter();
        this.high.type = "highshelf";
        this.high.frequency.value = 3200.0;
        this.high.gain.value = 0.0;
        this.high.connect( this.mid );
    

    关于javascript - 在HTML5中建立混音器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19650898/

    10-09 18:14