diff options
| author | pepper <pepper@chimecrisis.com> | 2014-05-15 19:06:59 -0700 |
|---|---|---|
| committer | pepper <pepper@chimecrisis.com> | 2014-05-15 19:06:59 -0700 |
| commit | 93e654a02cef3d5913a2088d4c397418dc0cee2f (patch) | |
| tree | bfad328857e5bcc10906a594470ccc12875d936b /index.html | |
doing this
Diffstat (limited to 'index.html')
| -rw-r--r-- | index.html | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/index.html b/index.html new file mode 100644 index 0000000..c14deb6 --- /dev/null +++ b/index.html @@ -0,0 +1,74 @@ +<!DOCTYPE HTML> +<html> + <head> + <script src="stream.js"></script> + <script src="midifile.js"></script> + <script src="replayer.js"></script> + <script src="synth.js"></script> + <script src="audio.js"></script> + <script> + function loadRemote(path, callback) { + var fetch = new XMLHttpRequest(); + fetch.open('GET', path); + fetch.overrideMimeType("text/plain; charset=x-user-defined"); + fetch.onreadystatechange = function() { + if(this.readyState == 4 && this.status == 200) { + /* munge response into a binary string */ + var t = this.responseText || "" ; + var ff = []; + var mx = t.length; + var scc= String.fromCharCode; + for (var z = 0; z < mx; z++) { + ff[z] = scc(t.charCodeAt(z) & 255); + } + callback(ff.join("")); + } + } + fetch.send(); + } + + function play(file) { + loadRemote(file, function(data) { + midiFile = MidiFile(data); + synth = Synth(44100); + replayer = Replayer(midiFile, synth); + audio = AudioPlayer(replayer); + }) + } + + if(FileReader){ + function cancelEvent(e){ + e.stopPropagation(); + e.preventDefault(); + } + document.addEventListener('dragenter', cancelEvent, false); + document.addEventListener('dragover', cancelEvent, false); + document.addEventListener('drop', function(e){ + cancelEvent(e); + for(var i=0;i<e.dataTransfer.files.length;++i){ + var + file = e.dataTransfer.files[i] + ; + if(file.type != 'audio/midi'){ + continue; + } + var + reader = new FileReader() + ; + reader.onload = function(e){ + midiFile = MidiFile(e.target.result); + synth = Synth(44100); + replayer = Replayer(midiFile, synth); + audio = AudioPlayer(replayer); + }; + reader.readAsBinaryString(file); + } + }, false); + } + </script> + </head> + <body> + <a href="javascript:void(play('minute_waltz.mid'))">Chopin - Waltz Op.61 (Minute Waltz)</a> | + <a href="javascript:void(play('rachmaninov3.mid'))">Rachmaninov - Piano Concerto No.3 (First movement)</a> + </body> +</html> |
