BiquadFilterNode接口表示一个简单的低阶滤波器(biquadfilter),由AudioContext.createBiquadFilter()方法创建。这个节点有一个输入和一个输出。一个节点可以设置很多不同的过滤效果,比如让低于某个频率的声音通过(lowpass)。属性BiquadFilterNode.frequency类型是当前滤波算法中的双精度浮点值inHertz以单位(Hz)测量的频率的双精度浮点值。BiquadFilterNode.detune的类型是整数频率失谐值。BiquadFilterNode.Q的类型是双精度浮点Q因子或质量因子。默认值为1,取值范围为0.0001~1000。BiquadFilterNode.gain的类型为整数,当前滤波算法中使用,取正值时为增益。当它取负值时,就是衰减。单位是分贝(dB),范围是-40到40。BiquadFilterNode.type的类型是一个字符串。该属性决定了过滤器设备的效果可用值如下表所列。除了第一列是对应节点的属性描述(给定的频率指的是frequency.value)属性依赖描述:类型描述frequencyQgainlowpass是一个标准的二阶谐振低通滤波器,衰减12dB/倍频程.给定频率低于该频率的频率被通过,高于该频率的频率被衰减。给定频率表示截止频率附近的频率峰值。值越大,峰值越大。标准二阶谐振高通滤波器,具有12dB/倍频程衰减,无高通,衰减低于给定频率的频率并通过高于该频率的频率。给定频率表示截止频率附近的频率峰值。值越大,峰值越大。不使用标准的二阶带通滤波器。给定频率范围外的频率被衰减,范围内的频率通过频率范围的中心以控制频带宽度。Q值越大,频带越小。未使用低架标准二阶低架滤波器。低于给定频率的频率被提升或衰减,高于给定频率的频率不变。高于此频率在不使用升压(正数)或衰减(负数)的情况下进行升压或衰减,单位为分贝(dB);highshelf标准二阶高架滤波器。高于给定频率的频率被增强或衰减,低于给定频率的频率不变。低于此频率获得未使用的提升或衰减要应用的提升(正数)或衰减(负数),以分贝(dB)为单位;在给定频率范围内的频率被提升或衰减,而在给定频率范围之外的频率不变。频率范围内的频率被提升或衰减。控制频带的宽度。Q值越大,频带越小。要应用的增强(正数)或衰减(负数),以分贝(dB)为单位;notch标准陷波滤波器,也称为带阻或带阻滤波器。它具有带通滤波器的相反效果:给定频率范围外的频率通过,而内部频率被衰减。频率范围的中心控制频带的宽度。Q值越大,频带越小。不使用全通标准二阶全通滤波器。它通过所有频率,但改变不同频率之间的相位关系。频率最大群延迟,这是发生相变中心的频率。控制中频过渡的锐度。参数越大,过渡越锐利、越大。简单例子没用constaudioCtx=new(window.AudioContext||window.webkitAudioContext)();//设置音频节点constbiquadFilter=audioCtx.createBiquadFilter();//连接节点source=audioCtx.createMediaStreamSource(stream);source.connect(biquadFilter);biquadFilter.connect(audioCtx.destination);//设置参数与wavesurfer.js结合使用//获取音频上下文,其中audioplayer是由wavesurfer.create()constBiquadFilter=this.audioplayer.backend.ac.createBiquadFitter()创建的wavesurfer实例;//设置参数BiquadFilter.type='lowpass'BiquadFilter.frequency.value=1000:BiquadFiter.Q.value=1;BiquadFilter.gain.value=0;//设置滤波器this.audioplayer.backend.setFilter(BiquadFilter);参考文档:MDN文档MDNBiquadFilterNodewavesurfer
