| Index: third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-freq-data-smoothing.html
|
| diff --git a/third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-freq-data-smoothing.html b/third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-freq-data-smoothing.html
|
| deleted file mode 100644
|
| index da4c83d43eb83a168f35840f188dac65823d37ff..0000000000000000000000000000000000000000
|
| --- a/third_party/WebKit/LayoutTests/webaudio/realtimeanalyser-freq-data-smoothing.html
|
| +++ /dev/null
|
| @@ -1,139 +0,0 @@
|
| -<!doctype html>
|
| -<html>
|
| - <head>
|
| - <script src="../resources/js-test.js"></script>
|
| - <script src="resources/compatibility.js"></script>
|
| - <script src="resources/audit-util.js"></script>
|
| - <script src="resources/audio-testing.js"></script>
|
| - <script src="resources/realtimeanalyser-testing.js"></script>
|
| - <script src="resources/fft.js"></script>
|
| - <title>Test Analyser getFloatFrequencyData and getByteFrequencyData, Smoothing</title>
|
| -
|
| - </head>
|
| -
|
| - <body>
|
| - <script>
|
| - description("Test AnalyserNode getFloatFrequencyData and getByteFrequencyData, Smoothing");
|
| - window.jsTestIsAsync = true;
|
| -
|
| - // Use a power of two to eliminate any round-off in the computation of the times for
|
| - // context.suspend().
|
| - var sampleRate = 32768;
|
| -
|
| - // The largest FFT size for the analyser node is 32768. We want to render longer than this so
|
| - // that we have at least one complete buffer of data of 32768 samples.
|
| - var renderFrames = 2 * 32768;
|
| - var renderDuration = renderFrames / sampleRate;
|
| -
|
| - var audit = Audit.createTaskRunner();
|
| -
|
| - // Do one basic test of smoothing of the FFT data.
|
| - audit.defineTask("smoothing test", function (done) {
|
| - // Test only 512-point FFT. The size isn't too important as long as it's greater than 128
|
| - // (a rendering quantum).
|
| - var options = {
|
| - order: 9,
|
| - smoothing: 0.5,
|
| - floatRelError: 5.9207e-6
|
| - };
|
| -
|
| - var success = true;
|
| -
|
| - var graph = createGraph(options);
|
| -
|
| - context = graph.context;
|
| - analyser = graph.analyser;
|
| -
|
| - var smoothedFloatResult = new Float32Array(analyser.frequencyBinCount);
|
| - smoothedFloatResult.fill(0);
|
| -
|
| - // Stop after one analyser frame to get the initial FFT
|
| - var suspendFrame = analyser.fftSize;
|
| - context.suspend(suspendFrame / sampleRate).then(function () {
|
| - var timeData = new Float32Array(analyser.fftSize);
|
| - var freqData = new Float32Array(analyser.frequencyBinCount);
|
| - analyser.getFloatTimeDomainData(timeData);
|
| - analyser.getFloatFrequencyData(freqData);
|
| -
|
| - var expectedFreq = computeFFTMagnitude(timeData, options.order);
|
| - smoothFFT(smoothedFloatResult, expectedFreq, options.smoothing);
|
| -
|
| - var message = "First " + analyser.fftSize + "-point FFT at frame " + (context.currentTime *
|
| - sampleRate);
|
| - var comparison = compareFloatFreq(message, freqData, smoothedFloatResult.map(
|
| - linearToDb), options);
|
| - success = success && comparison.success;
|
| -
|
| - // Test the byte frequency data.
|
| - var byteFreqData = new Uint8Array(analyser.frequencyBinCount);
|
| - var expectedByteData = new Float32Array(analyser.frequencyBinCount);
|
| - analyser.getByteFrequencyData(byteFreqData);
|
| -
|
| - // Convert the expected float frequency data to byte data.
|
| - var expectedByteData = convertFloatToByte(smoothedFloatResult.map(linearToDb),
|
| - analyser.minDecibels, analyser.maxDecibels);
|
| -
|
| - success = Should(analyser.fftSize + "-point byte FFT", byteFreqData)
|
| - .beCloseToArray(expectedByteData, 0) && success;
|
| -
|
| - }).then(context.resume.bind(context));
|
| -
|
| - // Skip an analyser frame and grab another to verify that the smoothing is done correctly.
|
| - suspendFrame += 2 * analyser.fftSize;
|
| - context.suspend(suspendFrame / sampleRate).then(function () {
|
| - var timeData = new Float32Array(analyser.fftSize);
|
| - var freqDataInDb = new Float32Array(analyser.frequencyBinCount);
|
| -
|
| - // Grab the time domain and frequency domain data
|
| - analyser.getFloatTimeDomainData(timeData);
|
| - analyser.getFloatFrequencyData(freqDataInDb);
|
| -
|
| - var newFreqData = computeFFTMagnitude(timeData, options.order);
|
| - // Smooth the data together
|
| -
|
| - smoothFFT(smoothedFloatResult, newFreqData, options.smoothing);
|
| - var message = "Smoothed " + analyser.fftSize + "-point FFT at frame " +
|
| - (context.currentTime * sampleRate);
|
| - var comparison = compareFloatFreq(message,
|
| - freqDataInDb, smoothedFloatResult.map(linearToDb), {
|
| - order: options.order,
|
| - smoothing: options.smoothing,
|
| - floatRelError: 2.5332e-5
|
| - });
|
| - success = success && comparison.success;
|
| -
|
| - // Test the byte frequency data.
|
| - var byteFreqData = new Uint8Array(analyser.frequencyBinCount);
|
| - var expectedByteData = new Float32Array(analyser.frequencyBinCount);
|
| - analyser.getByteFrequencyData(byteFreqData);
|
| -
|
| - // Convert the expected float frequency data to byte data.
|
| - var expectedByteData = convertFloatToByte(smoothedFloatResult.map(linearToDb),
|
| - analyser.minDecibels, analyser.maxDecibels);
|
| -
|
| - success = Should(analyser.fftSize + "-point byte FFT", byteFreqData)
|
| - .beCloseToArray(expectedByteData, 0) && success;
|
| -
|
| - }).then(context.resume.bind(context));
|
| -
|
| - context.startRendering().then(function (buffer) {
|
| - var prefix = "FFT smoothing performed ";
|
| - var suffix = " with smoothing constant " + analyser.smoothingTimeConstant + ".\n"
|
| -
|
| - if (success)
|
| - testPassed(prefix + "correctly" + suffix);
|
| - else
|
| - testFailed(prefix + "incorrectly" + suffix);
|
| - }).then(done);
|
| - });
|
| -
|
| - audit.defineTask("finish", function (done) {
|
| - finishJSTest();
|
| - done();
|
| - });
|
| -
|
| - audit.runTasks();
|
| -
|
| - </script>
|
| - </body>
|
| -</html>
|
|
|