<!DOCTYPE HTML> <html> <head> <title>Test WaveShaperNode with passthrough</title> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="webaudio.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> </head> <body> <pre id="test"> <script class="testbody" type="text/javascript"> var gTest = { length: 4096, numberOfChannels: 1, createGraph: function(context) { var source = context.createBufferSource(); source.buffer = this.buffer; var shaper = context.createWaveShaper(); shaper.curve = this.curve; var shaperWrapped = SpecialPowers.wrap(shaper); ok("passThrough" in shaperWrapped, "WaveShaperNode should support the passThrough API"); shaperWrapped.passThrough = true; source.connect(shaper); source.start(0); return shaper; }, createExpectedBuffers: function(context) { this.buffer = context.createBuffer(1, 4096, context.sampleRate); for (var i = 1; i < 4095; ++i) { this.buffer.getChannelData(0)[i] = 2 * (i / 4096) - 1; } // Two out of range values this.buffer.getChannelData(0)[0] = -2; this.buffer.getChannelData(0)[4095] = 2; this.curve = new Float32Array(2048); for (var i = 0; i < 2048; ++i) { this.curve[i] = Math.sin(100 * Math.PI * (i + 1) / context.sampleRate); } return [this.buffer]; }, }; runTest(); </script> </pre> </body> </html>