| <!DOCTYPE html> |
| <html> |
| <head> |
| <title> |
| Test Oscillator Node: sawtooth |
| </title> |
| <script src="../../imported/w3c/web-platform-tests/resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="../resources/audit-util.js"></script> |
| <script src="../resources/audit.js"></script> |
| <script src="../resources/buffer-loader.js"></script> |
| <script src="../resources/oscillator-testing.js"></script> |
| <script src="../resources/audio-file-utils.js"></script> |
| </head> |
| <body> |
| <script id="layout-test-code"> |
| let audit = Audit.createTaskRunner(); |
| |
| // Create an offline context with a sample rate that is very different |
| // from the sample rate used in the OscillatorTestingUtils. This will |
| // create a internal PeriodicWave objects for the Oscillator. This should |
| // not interfere with the oscillator test using a different context with a |
| // different sample rate. |
| |
| audit.define('test', (task, should) => { |
| let context0 = new OfflineAudioContext(1, 1, 3000); |
| let osc = context0.createOscillator(); |
| osc.type = 'sawtooth'; |
| osc = null; |
| |
| // This test is identical to the test in osc-sawtooth-sweep-snr.html. |
| let tester = OscillatorTestingUtils; |
| |
| let context = new OfflineAudioContext( |
| 1, tester.sampleRate * tester.lengthInSeconds, tester.sampleRate); |
| // The thresholds are experimentally determined. |
| tester.setThresholds({snr: 80.00, maxDiff: 4.06}); |
| tester.runTest( |
| context, 'sawtooth', 'Sawtooth PeriodicWave Test', task, should); |
| }); |
| |
| audit.run(); |
| </script> |
| </body> |
| </html> |