| <!DOCTYPE html> |
| <html> |
| <head> |
| <title> |
| Test Cascade of Mono Convolvers |
| </title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/webaudio/resources/audit-util.js"></script> |
| <script src="/webaudio/resources/audit.js"></script> |
| </head> |
| <body> |
| <script id="layout-test-code"> |
| let audit = Audit.createTaskRunner(); |
| |
| // Arbitrary sample rate and reasonably short duration |
| let sampleRate = 8000; |
| let duration = 0.25; |
| let renderFrames = duration * sampleRate; |
| |
| audit.define( |
| {label: 'cascade-mono', description: 'Cascaded mono convolvers'}, |
| (task, should) => { |
| // Cascade two convolvers with mono responses and verify that the |
| // output is not silent. |
| let context = new OfflineAudioContext(1, renderFrames, sampleRate); |
| |
| let b0 = |
| new AudioBuffer({length: 5, sampleRate: context.sampleRate}); |
| b0.getChannelData(0)[1] = 1; |
| let c0 = new ConvolverNode( |
| context, {disableNormalization: true, buffer: b0}); |
| |
| let b1 = |
| new AudioBuffer({length: 5, sampleRate: context.sampleRate}); |
| b1.getChannelData(0)[2] = 1; |
| |
| let c1 = new ConvolverNode( |
| context, {disableNormalization: true, buffer: b1}); |
| |
| let src = new OscillatorNode(context); |
| |
| src.connect(c0).connect(c1).connect(context.destination); |
| |
| src.start(); |
| |
| context.startRendering() |
| .then(audioBuffer => { |
| // Just verify the output is not silent |
| let audio = audioBuffer.getChannelData(0); |
| |
| should(audio, 'Output of cascaded mono convolvers') |
| .notBeConstantValueOf(0); |
| }) |
| .then(() => task.done()); |
| }); |
| |
| audit.run(); |
| </script> |
| </body> |
| </html> |