Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <script>
  5. var c = new webkitAudioContext();
  6. var s = c.createBufferSource();
  7. var g = c.createGainNode();
  8. var p = c.createPanner();
  9. s.connect(g);
  10. g.connect(p);
  11. p.connect(c.destination);
  12.  
  13. function play(e) {
  14. var fr = new FileReader();
  15. var file = document.getElementById("file").files[0];
  16. fr.onload = function(e) {
  17. c.decodeAudioData(e.target.result,
  18. function (buf) {
  19. s.buffer = buf;
  20. g.gain.value = 0.5;
  21. s.noteOn(0)
  22. },
  23. function () {
  24. console.error('decodeAudioData failed.');
  25. }
  26. );
  27. };
  28. fr.readAsArrayBuffer(file);
  29. }
  30.  
  31. function pan(range) {
  32. var x = Math.sin(range.value * (Math.PI / 180));
  33. p.setPosition(x, 0, 0);
  34. }
  35. </script>
  36. </head>
  37. <body>
  38. Choose your MP3 file:<br>
  39. <input type="file" id="file" name="file" /><br>
  40. <input type="submit" id="go" onclick="play()" value="Play" /><br>
  41. L<input type="range" min="-45" max="45" value="0" onchange="pan(this);">R
  42. </body>
  43. </html>
  44.  
  45. function pan(range) {
  46. var xDeg = parseInt(range.value);
  47. var zDeg = xDeg + 90;
  48. if (zDeg > 90) {
  49. zDeg = 180 - zDeg;
  50. }
  51. var x = Math.sin(xDeg * (Math.PI / 180));
  52. var z = Math.sin(zDeg * (Math.PI / 180));
  53. p.setPosition(x, 0, z);
  54. }
  55.  
  56. <input type="range" name="pan" id="pan" min="-1" max="1" step="any" />
  57. <script>
  58. var panner = context.createPanner();
  59. panner.panningModel = 'equalpower';
  60.  
  61. function pan(event) {
  62. var x = this.valueAsNumber,
  63. y = 0,
  64. z = 1 - Math.abs(x);
  65. panner.setPosition(x,y,z);
  66. }
  67.  
  68. document.getElementById('pan').addEventListener(pan);
  69. </script>
  70.  
  71. var panner = context.createPanner();
  72. panner.panningModel = "equalpower";
  73. panner.setPosition(1,0,0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement