From 23acddf594afbe289d429396078e20539c9f8171 Mon Sep 17 00:00:00 2001 From: Stephanie Chung Date: Sat, 10 May 2014 07:17:04 -0700 Subject: [PATCH] javascript for midi --- js/libs/midi/AudioDetect.js | 57 ++++ js/libs/midi/LoadPlugin.js | 167 +++++++++++ js/libs/midi/Player.js | 267 +++++++++++++++++ js/libs/midi/Plugin.js | 569 ++++++++++++++++++++++++++++++++++++ 4 files changed, 1060 insertions(+) create mode 100755 js/libs/midi/AudioDetect.js create mode 100755 js/libs/midi/LoadPlugin.js create mode 100755 js/libs/midi/Player.js create mode 100755 js/libs/midi/Plugin.js diff --git a/js/libs/midi/AudioDetect.js b/js/libs/midi/AudioDetect.js new file mode 100755 index 0000000..16d8c0a --- /dev/null +++ b/js/libs/midi/AudioDetect.js @@ -0,0 +1,57 @@ +if (typeof(MIDI) === "undefined") var MIDI = {}; + +(function() { "use strict"; + +var supports = {}; +var pending = 0; +var canPlayThrough = function (src) { + pending ++; + var audio = new Audio(); + var mime = src.split(";")[0]; + audio.id = "audio"; + audio.setAttribute("preload", "auto"); + audio.setAttribute("audiobuffer", true); + audio.addEventListener("error", function() { + supports[mime] = false; + pending --; + }, false); + audio.addEventListener("canplaythrough", function() { + supports[mime] = true; + pending --; + }, false); + audio.src = "data:" + src; + document.body.appendChild(audio); +}; + +MIDI.audioDetect = function(callback) { + // check whether