From 9429cda0cc01538d1e3b11e721c003a79f5a5216 Mon Sep 17 00:00:00 2001 From: Paul Adenot Date: Thu, 26 Mar 2020 11:57:14 +0100 Subject: [PATCH] Allow specifying ?duration=xxx to choose the benchmark duration in seconds --- benchmarks.js | 52 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/benchmarks.js b/benchmarks.js index 664ded2..db5d1bf 100644 --- a/benchmarks.js +++ b/benchmarks.js @@ -11,9 +11,21 @@ registerTestFile("think-stereo-48000.wav"); registerTestFile("think-stereo-44100.wav"); registerTestFile("think-stereo-38000.wav"); +let DURATION = null; +if (location.search) { + let duration = location.search.match(/duration=(\d+)/)[1]; + if (duration) { + DURATION = duration; + } else { + DURATION = 120; + } +} else { + DURATION = 120; +} + registerTestCase({ func: function () { - var oac = new OfflineAudioContext(1, 120 * samplerate, samplerate); + var oac = new OfflineAudioContext(1, DURATION * samplerate, samplerate); return oac; }, name: "Empty testcase" @@ -21,7 +33,7 @@ registerTestCase({ registerTestCase({ func: function () { - var oac = new OfflineAudioContext(1, 120 * samplerate, samplerate); + var oac = new OfflineAudioContext(1, DURATION * samplerate, samplerate); var source0 = oac.createBufferSource(); source0.buffer = getSpecificFile({rate: oac.samplerate, channels:1}); source0.loop = true; @@ -34,7 +46,7 @@ registerTestCase({ registerTestCase({ func: function() { - var oac = new OfflineAudioContext(2, 120 * samplerate, samplerate); + var oac = new OfflineAudioContext(2, DURATION * samplerate, samplerate); var source0 = oac.createBufferSource(); source0.buffer = getSpecificFile({rate: oac.samplerate, channels:2}); source0.loop = true; @@ -47,7 +59,7 @@ registerTestCase({ registerTestCase({ func: function () { - var oac = new OfflineAudioContext(2, 120 * samplerate, samplerate); + var oac = new OfflineAudioContext(2, DURATION * samplerate, samplerate); var source0 = oac.createBufferSource(); var panner = oac.createPanner(); source0.buffer = getSpecificFile({rate: oac.samplerate, channels:2}); @@ -64,7 +76,7 @@ registerTestCase({ registerTestCase({ func: function() { - var oac = new OfflineAudioContext(1, 120 * samplerate, samplerate); + var oac = new OfflineAudioContext(1, DURATION * samplerate, samplerate); var source0 = oac.createBufferSource(); source0.buffer = getSpecificFile({rate: 38000, channels:1}); source0.loop = true; @@ -77,7 +89,7 @@ registerTestCase({ registerTestCase({ func: function() { - var oac = new OfflineAudioContext(2, 120 * samplerate, samplerate); + var oac = new OfflineAudioContext(2, DURATION * samplerate, samplerate); var source0 = oac.createBufferSource(); source0.buffer = getSpecificFile({rate: 38000, channels:2}); source0.loop = true; @@ -90,7 +102,7 @@ registerTestCase({ registerTestCase({ func: function() { - var oac = new OfflineAudioContext(2, 120 * samplerate, samplerate); + var oac = new OfflineAudioContext(2, DURATION * samplerate, samplerate); var source0 = oac.createBufferSource(); var panner = oac.createPanner(); source0.buffer = getSpecificFile({rate: 38000, channels:2}); @@ -107,7 +119,7 @@ registerTestCase({ registerTestCase({ func: function() { - var oac = new OfflineAudioContext(2, 120 * samplerate, samplerate); + var oac = new OfflineAudioContext(2, DURATION * samplerate, samplerate); var source0 = oac.createBufferSource(); source0.buffer = getSpecificFile({rate: oac.samplerate, channels:1}); source0.loop = true; @@ -120,7 +132,7 @@ registerTestCase({ registerTestCase({ func: function() { - var oac = new OfflineAudioContext(1, 120 * samplerate, samplerate); + var oac = new OfflineAudioContext(1, DURATION * samplerate, samplerate); var source0 = oac.createBufferSource(); source0.buffer = getSpecificFile({rate: oac.samplerate, channels:2}); source0.loop = true; @@ -133,7 +145,7 @@ registerTestCase({ registerTestCase({ func: function() { - var oac = new OfflineAudioContext(2, 30 * samplerate, samplerate); + var oac = new OfflineAudioContext(2, DURATION * samplerate, samplerate); for (var i = 0; i < 100; i++) { var source0 = oac.createBufferSource(); source0.buffer = getSpecificFile({rate: 38000, channels:1}); @@ -148,7 +160,7 @@ registerTestCase({ registerTestCase({ func: function() { - var oac = new OfflineAudioContext(2, 30 * samplerate, samplerate); + var oac = new OfflineAudioContext(2, DURATION * samplerate, samplerate); var reference = getSpecificFile({rate: 38000, channels:1}).getChannelData(0); for (var i = 0; i < 100; i++) { var source0 = oac.createBufferSource(); @@ -171,7 +183,7 @@ registerTestCase({ registerTestCase({ func: function() { - var oac = new OfflineAudioContext(2, 300 * samplerate, samplerate); + var oac = new OfflineAudioContext(2, DURATION * samplerate, samplerate); var gain = oac.createGain(); gain.gain.value = -1; gain.connect(oac.destination); @@ -201,7 +213,7 @@ registerTestCase({ registerTestCase({ func: function() { - var oac = new OfflineAudioContext(1, 30 * samplerate, samplerate); + var oac = new OfflineAudioContext(1, DURATION * samplerate, samplerate); var i,l; var decay = 10; var duration = 4; @@ -231,8 +243,8 @@ registerTestCase({ registerTestCase({ func: function() { - var oac = new OfflineAudioContext(1, 30 * samplerate, samplerate); - var duration = 30 * samplerate; + var oac = new OfflineAudioContext(1, DURATION * samplerate, samplerate); + var duration = DURATION * samplerate; var audiobuffer = getSpecificFile({rate: samplerate, channels:1}); var offset = 0; while (offset < duration / samplerate) { @@ -262,7 +274,7 @@ registerTestCase({ registerTestCase({ func: function() { var samplerate = 44100; - var duration = 30; + var duration = DURATION; var oac = new OfflineAudioContext(1, duration * samplerate, 44100); var offset = 0; while (offset < duration) { @@ -287,7 +299,7 @@ registerTestCase({ registerTestCase({ func: function() { var samplerate = 44100; - var duration = 30; + var duration = DURATION; var oac = new OfflineAudioContext(1, duration * samplerate, samplerate); var offset = 0; var osc = oac.createOscillator(); @@ -317,7 +329,7 @@ registerTestCase({ registerTestCase({ func: function () { - var oac = new OfflineAudioContext(2, 120 * samplerate, samplerate); + var oac = new OfflineAudioContext(2, DURATION * samplerate, samplerate); var source0 = oac.createBufferSource(); var panner = oac.createStereoPanner(); source0.buffer = getSpecificFile({rate: oac.samplerate, channels:2}); @@ -333,7 +345,7 @@ registerTestCase({ registerTestCase({ func: function () { - var oac = new OfflineAudioContext(2, 120 * samplerate, samplerate); + var oac = new OfflineAudioContext(2, DURATION * samplerate, samplerate); var source0 = oac.createBufferSource(); var panner = oac.createStereoPanner(); source0.buffer = getSpecificFile({rate: oac.samplerate, channels:2}); @@ -350,7 +362,7 @@ registerTestCase({ registerTestCase({ func: function () { - var oac = new OfflineAudioContext(2, 120 * samplerate, samplerate); + var oac = new OfflineAudioContext(2, DURATION * samplerate, samplerate); var osc = oac.createOscillator(); osc.type = 'sawtooth'; var freq = 2000;