WaveShaperNode.oversample - Web API 接口参考 编辑
WaveShaperNode
接口的 oversample
属性是一个指示过采样是否必须使用的枚举值。 过采样是一个用于在将畸变应用到音频信号之前创建更多的采样(上采样)的技术。
一旦被应用, 采样的数值会被还原为初始的数值。 这将通过避免一些混淆现象从而导致更好的结果, 代价则是在畸变曲线上会有较低的精确度。
可用的oversample
值有:
Value | Effect |
---|---|
'none' | 不使用过采样。 |
'2x' | 在应用畸变曲线前将采样的数量翻倍。 |
'4x' | 在应用畸变曲线前将采样的数量翻4倍。 |
语法
distortion.oversample = enumeratedValue;
值
- 畸变是一个
WaveShaperNode
. - 枚举值
'none'
,'2x'
, 或'4x'
。
示例
The following example shows basic usage of an AudioContext to create a wave shaper node. For applied examples/information, check out our Voice-change-O-matic demo (see app.js for relevant code).
Note: Sigmoid functions are commonly used for distortion curves because of their natural properties. Their S-shape, for instance, helps create a smoother sounding result. We found the below distortion curve code on Stack Overflow.
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var distortion = audioCtx.createWaveShaper();
...
function makeDistortionCurve(amount) {
var k = typeof amount === 'number' ? amount : 50,
n_samples = 44100,
curve = new Float32Array(n_samples),
deg = Math.PI / 180,
i = 0,
x;
for ( ; i < n_samples; ++i ) {
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';
规范
Specification | Status | Comment |
---|---|---|
Web Audio API oversample | Working Draft |
浏览器兼容性
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.参考链接
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论