| OLD | NEW |
| 1 <!doctype html> | 1 <!doctype html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <script src="../resources/js-test.js"></script> | 4 <script src="../resources/js-test.js"></script> |
| 5 <script src="resources/compatibility.js"></script> | 5 <script src="resources/compatibility.js"></script> |
| 6 <script src="resources/audio-testing.js"></script> | 6 <script src="resources/audio-testing.js"></script> |
| 7 <script src="resources/realtimeanalyser-testing.js"></script> | 7 <script src="resources/realtimeanalyser-testing.js"></script> |
| 8 <script src="resources/fft.js"></script> | 8 <script src="resources/fft.js"></script> |
| 9 <title>Test Analyser getFloatFrequencyData and getByteFrequencyData, Smoothi
ng</title> | 9 <title>Test Analyser getFloatFrequencyData and getByteFrequencyData, Smoothi
ng</title> |
| 10 | 10 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 | 26 |
| 27 var audit = Audit.createTaskRunner(); | 27 var audit = Audit.createTaskRunner(); |
| 28 | 28 |
| 29 // Do one basic test of smoothing of the FFT data. | 29 // Do one basic test of smoothing of the FFT data. |
| 30 audit.defineTask("smoothing test", function (done) { | 30 audit.defineTask("smoothing test", function (done) { |
| 31 // Test only 512-point FFT. The size isn't too important as long as it'
s greater than 128 | 31 // Test only 512-point FFT. The size isn't too important as long as it'
s greater than 128 |
| 32 // (a rendering quantum). | 32 // (a rendering quantum). |
| 33 var options = { | 33 var options = { |
| 34 order: 9, | 34 order: 9, |
| 35 smoothing: 0.5, | 35 smoothing: 0.5, |
| 36 floatRelError: 5.7607e-6 | 36 floatRelError: 5.9207e-6 |
| 37 }; | 37 }; |
| 38 | 38 |
| 39 var success = true; | 39 var success = true; |
| 40 | 40 |
| 41 var graph = createGraph(options); | 41 var graph = createGraph(options); |
| 42 | 42 |
| 43 context = graph.context; | 43 context = graph.context; |
| 44 analyser = graph.analyser; | 44 analyser = graph.analyser; |
| 45 | 45 |
| 46 var smoothedFloatResult = new Float32Array(analyser.frequencyBinCount); | 46 var smoothedFloatResult = new Float32Array(analyser.frequencyBinCount); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 var newFreqData = computeFFTMagnitude(timeData, options.order); | 90 var newFreqData = computeFFTMagnitude(timeData, options.order); |
| 91 // Smooth the data together | 91 // Smooth the data together |
| 92 | 92 |
| 93 smoothFFT(smoothedFloatResult, newFreqData, options.smoothing); | 93 smoothFFT(smoothedFloatResult, newFreqData, options.smoothing); |
| 94 var message = "Smoothed " + analyser.fftSize + "-point FFT at frame "
+ | 94 var message = "Smoothed " + analyser.fftSize + "-point FFT at frame "
+ |
| 95 (context.currentTime * sampleRate); | 95 (context.currentTime * sampleRate); |
| 96 var comparison = compareFloatFreq(message, | 96 var comparison = compareFloatFreq(message, |
| 97 freqDataInDb, smoothedFloatResult.map(linearToDb), { | 97 freqDataInDb, smoothedFloatResult.map(linearToDb), { |
| 98 order: options.order, | 98 order: options.order, |
| 99 smoothing: options.smoothing, | 99 smoothing: options.smoothing, |
| 100 floatRelError: 1.5979e-5 | 100 floatRelError: 2.5332e-5 |
| 101 }); | 101 }); |
| 102 success = success && comparison.success; | 102 success = success && comparison.success; |
| 103 | 103 |
| 104 // Test the byte frequency data. | 104 // Test the byte frequency data. |
| 105 var byteFreqData = new Uint8Array(analyser.frequencyBinCount); | 105 var byteFreqData = new Uint8Array(analyser.frequencyBinCount); |
| 106 var expectedByteData = new Float32Array(analyser.frequencyBinCount); | 106 var expectedByteData = new Float32Array(analyser.frequencyBinCount); |
| 107 analyser.getByteFrequencyData(byteFreqData); | 107 analyser.getByteFrequencyData(byteFreqData); |
| 108 | 108 |
| 109 // Convert the expected float frequency data to byte data. | 109 // Convert the expected float frequency data to byte data. |
| 110 var expectedByteData = convertFloatToByte(smoothedFloatResult.map(line
arToDb), | 110 var expectedByteData = convertFloatToByte(smoothedFloatResult.map(line
arToDb), |
| (...skipping 18 matching lines...) Expand all Loading... |
| 129 audit.defineTask("finish", function (done) { | 129 audit.defineTask("finish", function (done) { |
| 130 finishJSTest(); | 130 finishJSTest(); |
| 131 done(); | 131 done(); |
| 132 }); | 132 }); |
| 133 | 133 |
| 134 audit.runTasks(); | 134 audit.runTasks(); |
| 135 | 135 |
| 136 </script> | 136 </script> |
| 137 </body> | 137 </body> |
| 138 </html> | 138 </html> |
| OLD | NEW |