BaseAudioContext:createWaveShaper() 方法
BaseAudioContext 接口的 createWaveShaper() 方法创建一个 WaveShaperNode,它代表一种非线性失真。它用于将失真效果应用于您的音频。
注意: WaveShaperNode() 构造函数是创建 WaveShaperNode 的推荐方法;请参阅 创建 AudioNode。
语法
js
createWaveShaper()
参数
无。
返回值
一个 WaveShaperNode。
示例
下面的示例展示了 AudioContext 创建 wave shaper 节点的 P基本用法。有关更完整、更实际的示例/信息,请查看我们的 Voice-change-O-matic 演示(相关代码请参阅 app.js)。
注意: 信号函数(Sigmoid functions)因其固有的特性而常用于失真曲线。例如,它们的 S 形有助于产生更柔和的声音结果。我们在 Stack Overflow 上找到了下面的失真曲线代码。
js
const audioCtx = new AudioContext();
const distortion = audioCtx.createWaveShaper();
// …
function makeDistortionCurve(amount) {
const k = typeof amount === "number" ? amount : 50;
const n_samples = 44100;
const curve = new Float32Array(n_samples);
const deg = Math.PI / 180;
for (let i = 0; i < n_samples; i++) {
const x = (i * 2) / n_samples - 1;
curve[i] = ((3 + k) * x * 20 * deg) / (Math.PI + k * Math.abs(x));
}
return curve;
}
// …
distortion.curve = makeDistortionCurve(400);
distortion.oversample = "4x";
规范
| 规范 |
|---|
| Web Audio API # dom-baseaudiocontext-createwaveshaper |
浏览器兼容性
加载中…