在Canopy中执行的代码段:
// @channels 1
// @duration 0.25
// @sampleRate 44100
var osc = new OscillatorNode(context);
var gain = context.createGain();
gain.gain.setValueAtTime(2, 0.25/2);
osc.connect(gain);
gain.connect(context.destination);
osc.start();
使用Audacity录制:
Chrome 74剪辑,而Firefox 66没有。
我也可以让Firefox来裁剪信号吗?(这是我所期望的)
答案 0 :(得分:1)
如果要确保输出被裁剪,则可以通过至少三种方式进行:
WaveShaperNode
为您执行剪辑。 (随处可见)。ScriptProcessorNode
(不建议使用)进行剪辑。AudioWorkletNode
进行剪辑。 (并非到处都有。)示例:(由OP添加,请仔细检查)
// @channels 1
// @duration 0.25
// @sampleRate 44100
var osc = new OscillatorNode(context);
var gain = context.createGain();
gain.gain.setValueAtTime(2, 0.25/2);
osc.connect(gain);
var waveShaper = new WaveShaperNode(context, {
curve: new Float32Array([-1, 1])
});
gain.connect(waveShaper);
waveShaper.connect(context.destination);
osc.start();