|
5 | 5 | <script type="text/javascript" src="modplayer.js"></script>
|
6 | 6 | <script type="text/javascript" src="dynamicaudio-min.js"></script>
|
7 | 7 |
|
8 |
| - <script type="text/javascript" src="mods/ambpower.mod.js"></script> |
9 |
| - |
10 | 8 | <script type="text/javascript">
|
11 |
| - var modFile = new ModFile(mod); |
12 |
| - //console.log(modFile); |
13 |
| - var modPlayer = new ModPlayer(modFile, 44100); |
| 9 | + var modPlayer; |
14 | 10 | var dynamicAudio;
|
15 | 11 |
|
16 | 12 | function init() {
|
|
20 | 16 | var playing = false;
|
21 | 17 | function play() {
|
22 | 18 | playing = true;
|
| 19 | + // initially buffer 10 seconds (44100 * 2(stereo) * 10) |
23 | 20 | dynamicAudio.write(modPlayer.getSamples(882000));
|
24 | 21 | bufferMoreData();
|
25 | 22 | }
|
|
34 | 31 | function stop() {
|
35 | 32 | playing = false;
|
36 | 33 | }
|
| 34 | + |
| 35 | + function loadRemote(path) { |
| 36 | + var fetch = new XMLHttpRequest(); |
| 37 | + fetch.open('GET', path); |
| 38 | + fetch.overrideMimeType("text/plain; charset=x-user-defined"); |
| 39 | + fetch.onreadystatechange = function() { |
| 40 | + if(this.readyState == 4 && this.status == 200) { |
| 41 | + /* munge response into a binary string */ |
| 42 | + var t = this.responseText || "" ; |
| 43 | + var ff = []; |
| 44 | + var mx = t.length; |
| 45 | + var scc= String.fromCharCode; |
| 46 | + for (var z = 0; z < mx; z++) { |
| 47 | + ff[z] = scc(t.charCodeAt(z) & 255); |
| 48 | + } |
| 49 | + var binString = ff.join(""); |
| 50 | + |
| 51 | + var modFile = new ModFile(binString); |
| 52 | + //console.log(modFile); |
| 53 | + //var modFile = new ModFile(mod); |
| 54 | + modPlayer = new ModPlayer(modFile, 44100); |
| 55 | + play(); |
| 56 | + document.getElementById('status').innerText = ''; |
| 57 | + } |
| 58 | + } |
| 59 | + document.getElementById('status').innerText = 'loading...'; |
| 60 | + fetch.send(); |
| 61 | + } |
37 | 62 | </script>
|
38 | 63 | </head>
|
39 | 64 | <body onload="init()">
|
40 |
| - <button onclick="play()">play</button> |
| 65 | + <ul> |
| 66 | + <li><a href="javascript:loadRemote('mods/ambpower.mod')">Ambient Power (Vogue / Triton)</a></li> |
| 67 | + <li><a href="javascript:loadRemote('mods/dope.mod')">Dope / Onward Ride (Jugi / Complex)</a></li> |
| 68 | + <li><a href="javascript:loadRemote('mods/mindkick.mod')">Mindkick (Mindfuck / Mentasm)</a></li> |
| 69 | + <li><a href="javascript:loadRemote('mods/sundance.mod')">Sundance (Purple Motion / Future Crew)</a></li> |
| 70 | + </ul> |
41 | 71 | <button onclick="stop()">stop</button>
|
| 72 | + <div id="status"></div> |
42 | 73 | </body>
|
43 | 74 | </html>
|
0 commit comments