2013-10-29 102 views
0

我正在開發html5中的音頻混音器。要求是應該有以下控制。所有控件都將是簡單的滑塊,並且控件的幻燈片更改值將會更改。在HTML5中構建音頻混音器

  1. 批量
  2. 音高修正
  3. 過濾器(高&低通)
  4. 混響
  5. 高,中,低
  6. 天寶

我明白如何實現# 1,3,4。在#2我有點困惑,我發現它不提供HTML5網絡音頻API,唯一的方法是使用playBackRate。對此有何意見?

5號 - 它似乎與高通&低通濾波器相似。 #3 & 4和有什麼不一樣?

第6號 - 是否有任何控制改變速度?或者它與playBackRate相同?

我不知道音樂術語,所以任何幫助理解整體的角度將不勝感激。

+0

嗨。 – 2016-01-27 09:37:51

回答

3

我不知道如何把這個。 「音高修正」是一個非常深刻的話題,而不是真的可以減少到單個滑塊;實施起來也相當複雜。

類似地,節奏和混響是複雜的主題;很多這也取決於你的聲源是什麼。例如,您通常不會在音頻混音器上設置「速度」;它被設置在某種定序器上,例如,一臺鼓機。

高通和低通濾波器在Web Audio中非常簡單,但它又取決於您想如何實現它們以及您希望提供哪種音樂控制。使用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); 
+0

謝謝@cwilso! – pramodtech

+0

關於#5 - 在同一個音源上使用(高,低通濾波器)和(高,中,低)是否合理?只有高,中和低才能完成這項工作? – pramodtech

+0

hi/low/mid是典型的音頻控件(例如,您可以在立體聲或混音器通道條上找到的控件)。高通和低通濾波器更適用於徹底改變聲音 - 即你可能會對它們進行諧振/ Q控制。 – cwilso