diff options
Diffstat (limited to 'devtools/client/webaudioeditor/test/doc_buffer-and-array.html')
-rw-r--r-- | devtools/client/webaudioeditor/test/doc_buffer-and-array.html | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/devtools/client/webaudioeditor/test/doc_buffer-and-array.html b/devtools/client/webaudioeditor/test/doc_buffer-and-array.html new file mode 100644 index 000000000..ef4cec8b6 --- /dev/null +++ b/devtools/client/webaudioeditor/test/doc_buffer-and-array.html @@ -0,0 +1,56 @@ +<!-- Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ --> +<!doctype html> + +<html> + <head> + <meta charset="utf-8"/> + <title>Web Audio Editor test page</title> + </head> + + <body> + + <script type="text/javascript;version=1.8"> + "use strict"; + + let audioURL = "http://example.com/browser/devtools/client/webaudioeditor/test/440hz_sine.ogg"; + + let ctx = new AudioContext(); + let bufferNode = ctx.createBufferSource(); + let shaperNode = ctx.createWaveShaper(); + shaperNode.curve = generateWaveShapingCurve(); + + let xhr = getBuffer(audioURL, () => { + ctx.decodeAudioData(xhr.response, (buffer) => { + bufferNode.buffer = buffer; + bufferNode.connect(shaperNode); + shaperNode.connect(ctx.destination); + }); + }); + + function generateWaveShapingCurve() { + let frames = 65536; + let curve = new Float32Array(frames); + let n = frames; + let n2 = n / 2; + + for (let i = 0; i < n; ++i) { + let x = (i - n2) / n2; + let y = Math.atan(5 * x) / (0.5 * Math.PI); + } + + return curve; + } + + function getBuffer (url, callback) { + let xhr = new XMLHttpRequest(); + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = callback; + xhr.send(); + return xhr; + } + </script> + </body> + +</html> |