我正在用html5开发音频混音器。要求是它应该具有以下控制。所有控件都将是简单的滑块,并且控件的幻灯片更改值将会更改。
我理解如何实施#1,3,4。在#2我有点困惑,我发现它没有在HTML5网络音频API中提供,唯一的方法是使用playBackRate。对此有任何意见吗?
没有。 5 - 它似乎与High&低通滤波器。 #3&和#3之间有什么区别? 4?
没有。 6 - 有改变速度的控制吗?或者它与playBackRate相同?
我对音乐术语一无所知,因此理解整体观点的任何帮助都将受到赞赏。
答案 0 :(得分:3)
我不知道怎么说这个。 “音高校正”是一个非常深刻的话题,而不是你可以真正减少到单个滑块的东西;实施它也很复杂。
同样,节奏和混响是复杂的主题;这很大程度上取决于你的声源是什么。例如,您通常不在音频混音器上设置“tempo”;它设置在某种音序器上,例如鼓机。
高通和低通滤波器在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 );
答案 1 :(得分:0)
Mohayonao's timbre.js是一个非常整洁的库。 它有高中低通滤波器,混响,“+”运算符作为内置混音器。
如果你想开始音高修正,你可以read this paper on pitch shifting。
还有Mixer.js也可以帮助您入门