Exemplo n.º 1
0
if("undefined"==typeof MIDI&&(MIDI={}),function(a){"use strict";var b={},c=0,d=function(a){c++;var d=document.body,e=new Audio,f=a.split(";")[0];e.id="audio",e.setAttribute("preload","auto"),e.setAttribute("audiobuffer",!0),e.addEventListener("error",function(){d.removeChild(e),b[f]=!1,c--},!1),e.addEventListener("canplaythrough",function(){d.removeChild(e),b[f]=!0,c--},!1),e.src="data:"+a,d.appendChild(e)};a.audioDetect=function(a){if(navigator.requestMIDIAccess){var e=Function.prototype.toString.call(navigator.requestMIDIAccess).indexOf("[native code]");if(e)b.webmidi=!0;else for(var f=0;navigator.plugins.length>f;f++){var g=navigator.plugins[f];g.name.indexOf("Jazz-Plugin")>=0&&(b.webmidi=!0)}}if("undefined"==typeof Audio)return a({});b.audiotag=!0,(window.AudioContext||window.webkitAudioContext)&&(b.webaudio=!0);var h=new Audio;if("undefined"==typeof h.canPlayType)return a(b);var i=h.canPlayType('audio/ogg; codecs="vorbis"');i="probably"===i||"maybe"===i;var j=h.canPlayType("audio/mpeg");if(j="probably"===j||"maybe"===j,!i&&!j)return void a(b);i&&d("audio/ogg;base64,T2dnUwACAAAAAAAAAADqnjMlAAAAAOyyzPIBHgF2b3JiaXMAAAAAAUAfAABAHwAAQB8AAEAfAACZAU9nZ1MAAAAAAAAAAAAA6p4zJQEAAAANJGeqCj3//////////5ADdm9yYmlzLQAAAFhpcGguT3JnIGxpYlZvcmJpcyBJIDIwMTAxMTAxIChTY2hhdWZlbnVnZ2V0KQAAAAABBXZvcmJpcw9CQ1YBAAABAAxSFCElGVNKYwiVUlIpBR1jUFtHHWPUOUYhZBBTiEkZpXtPKpVYSsgRUlgpRR1TTFNJlVKWKUUdYxRTSCFT1jFloXMUS4ZJCSVsTa50FkvomWOWMUYdY85aSp1j1jFFHWNSUkmhcxg6ZiVkFDpGxehifDA6laJCKL7H3lLpLYWKW4q91xpT6y2EGEtpwQhhc+211dxKasUYY4wxxsXiUyiC0JBVAAABAABABAFCQ1YBAAoAAMJQDEVRgNCQVQBABgCAABRFcRTHcRxHkiTLAkJDVgEAQAAAAgAAKI7hKJIjSZJkWZZlWZameZaouaov+64u667t6roOhIasBACAAAAYRqF1TCqDEEPKQ4QUY9AzoxBDDEzGHGNONKQMMogzxZAyiFssLqgQBKEhKwKAKAAAwBjEGGIMOeekZFIi55iUTkoDnaPUUcoolRRLjBmlEluJMYLOUeooZZRCjKXFjFKJscRUAABAgAMAQICFUGjIigAgCgCAMAYphZRCjCnmFHOIMeUcgwwxxiBkzinoGJNOSuWck85JiRhjzjEHlXNOSuekctBJyaQTAAAQ4AAAEGAhFBqyIgCIEwAwSJKmWZomipamiaJniqrqiaKqWp5nmp5pqqpnmqpqqqrrmqrqypbnmaZnmqrqmaaqiqbquqaquq6nqrZsuqoum65q267s+rZru77uqapsm6or66bqyrrqyrbuurbtS56nqqKquq5nqq6ruq5uq65r25pqyq6purJtuq4tu7Js664s67pmqq5suqotm64s667s2rYqy7ovuq5uq7Ks+6os+75s67ru2rrwi65r66os674qy74x27bwy7ouHJMnqqqnqq7rmarrqq5r26rr2rqmmq5suq4tm6or26os67Yry7aumaosm64r26bryrIqy77vyrJui67r66Ys67oqy8Lu6roxzLat+6Lr6roqy7qvyrKuu7ru+7JuC7umqrpuyrKvm7Ks+7auC8us27oxuq7vq7It/KosC7+u+8Iy6z5jdF1fV21ZGFbZ9n3d95Vj1nVhWW1b+V1bZ7y+bgy7bvzKrQvLstq2scy6rSyvrxvDLux8W/iVmqratum6um7Ksq/Lui60dd1XRtf1fdW2fV+VZd+3hV9pG8OwjK6r+6os68Jry8ov67qw7MIvLKttK7+r68ow27qw3L6wLL/uC8uq277v6rrStXVluX2fsSu38QsAABhwAAAIMKEMFBqyIgCIEwBAEHIOKQahYgpCCKGkEEIqFWNSMuakZM5JKaWUFEpJrWJMSuaclMwxKaGUlkopqYRSWiqlxBRKaS2l1mJKqcVQSmulpNZKSa2llGJMrcUYMSYlc05K5pyUklJrJZXWMucoZQ5K6iCklEoqraTUYuacpA46Kx2E1EoqMZWUYgupxFZKaq2kFGMrMdXUWo4hpRhLSrGVlFptMdXWWqs1YkxK5pyUzDkqJaXWSiqtZc5J6iC01DkoqaTUYiopxco5SR2ElDLIqJSUWiupxBJSia20FGMpqcXUYq4pxRZDSS2WlFosqcTWYoy1tVRTJ6XFklKMJZUYW6y5ttZqDKXEVkqLsaSUW2sx1xZjjqGkFksrsZWUWmy15dhayzW1VGNKrdYWY40x5ZRrrT2n1mJNMdXaWqy51ZZbzLXnTkprpZQWS0oxttZijTHmHEppraQUWykpxtZara3FXEMpsZXSWiypxNhirLXFVmNqrcYWW62ltVprrb3GVlsurdXcYqw9tZRrrLXmWFNtBQAADDgAAASYUAYKDVkJAEQBAADGMMYYhEYpx5yT0ijlnHNSKucghJBS5hyEEFLKnINQSkuZcxBKSSmUklJqrYVSUmqttQIAAAocAAACbNCUWByg0JCVAEAqAIDBcTRNFFXVdX1fsSxRVFXXlW3jVyxNFFVVdm1b+DVRVFXXtW3bFn5NFFVVdmXZtoWiqrqybduybgvDqKqua9uybeuorqvbuq3bui9UXVmWbVu3dR3XtnXd9nVd+Bmzbeu2buu+8CMMR9/4IeTj+3RCCAAAT3AAACqwYXWEk6KxwEJDVgIAGQAAgDFKGYUYM0gxphhjTDHGmAAAgAEHAIAAE8pAoSErAoAoAADAOeecc84555xzzjnnnHPOOeecc44xxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY0wAwE6EA8BOhIVQaMhKACAcAABACCEpKaWUUkoRU85BSSmllFKqFIOMSkoppZRSpBR1lFJKKaWUIqWgpJJSSimllElJKaWUUkoppYw6SimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaVUSimllFJKKaWUUkoppRQAYPLgAACVYOMMK0lnhaPBhYasBAByAwAAhRiDEEJpraRUUkolVc5BKCWUlEpKKZWUUqqYgxBKKqmlklJKKbXSQSihlFBKKSWUUkooJYQQSgmhlFRCK6mEUkoHoYQSQimhhFRKKSWUzkEoIYUOQkmllNRCSB10VFIpIZVSSiklpZQ6CKGUklJLLZVSWkqpdBJSKamV1FJqqbWSUgmhpFZKSSWl0lpJJbUSSkklpZRSSymFVFJJJYSSUioltZZaSqm11lJIqZWUUkqppdRSSiWlkEpKqZSSUmollZRSaiGVlEpJKaTUSimlpFRCSamlUlpKLbWUSkmptFRSSaWUlEpJKaVSSksppRJKSqmllFpJKYWSUkoplZJSSyW1VEoKJaWUUkmptJRSSymVklIBAEAHDgAAAUZUWoidZlx5BI4oZJiAAgAAQABAgAkgMEBQMApBgDACAQAAAADAAAAfAABHARAR0ZzBAUKCwgJDg8MDAAAAAAAAAAAAAACAT2dnUwAEAAAAAAAAAADqnjMlAgAAADzQPmcBAQA="),j&&d("audio/mpeg;base64,/+MYxAAAAANIAUAAAASEEB/jwOFM/0MM/90b/+RhST//w4NFwOjf///PZu////9lns5GFDv//l9GlUIEEIAAAgIg8Ir/JGq3/+MYxDsLIj5QMYcoAP0dv9HIjUcH//yYSg+CIbkGP//8w0bLVjUP///3Z0x5QCAv/yLjwtGKTEFNRTMuOTeqqqqqqqqqqqqq/+MYxEkNmdJkUYc4AKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq");var k=(new Date).getTime(),l=window.setInterval(function(){var d=(new Date).getTime(),e=d-k>5e3;c&&!e||(window.clearInterval(l),a(b))},1)}}(MIDI),function(a){"use strict";a.GM=function(a){var b=function(a){return a.replace(/[^a-z0-9 ]/gi,"").replace(/[ ]/g,"_").toLowerCase()},c={byName:{},byId:{},byCategory:{}};for(var d in a)for(var e=a[d],f=0,g=e.length;g>f;f++){var h=e[f];if(h){var i=parseInt(h.substr(0,h.indexOf(" ")),10);h=h.replace(i+" ",""),c.byId[--i]=c.byName[b(h)]=c.byCategory[b(d)]={id:b(h),instrument:h,number:i,category:d}}}return c}({Piano:["1 Acoustic Grand Piano","2 Bright Acoustic Piano","3 Electric Grand Piano","4 Honky-tonk Piano","5 Electric Piano 1","6 Electric Piano 2","7 Harpsichord","8 Clavinet"],"Chromatic Percussion":["9 Celesta","10 Glockenspiel","11 Music Box","12 Vibraphone","13 Marimba","14 Xylophone","15 Tubular Bells","16 Dulcimer"],Organ:["17 Drawbar Organ","18 Percussive Organ","19 Rock Organ","20 Church Organ","21 Reed Organ","22 Accordion","23 Harmonica","24 Tango Accordion"],Guitar:["25 Acoustic Guitar (nylon)","26 Acoustic Guitar (steel)","27 Electric Guitar (jazz)","28 Electric Guitar (clean)","29 Electric Guitar (muted)","30 Overdriven Guitar","31 Distortion Guitar","32 Guitar Harmonics"],Bass:["33 Acoustic Bass","34 Electric Bass (finger)","35 Electric Bass (pick)","36 Fretless Bass","37 Slap Bass 1","38 Slap Bass 2","39 Synth Bass 1","40 Synth Bass 2"],Strings:["41 Violin","42 Viola","43 Cello","44 Contrabass","45 Tremolo Strings","46 Pizzicato Strings","47 Orchestral Harp","48 Timpani"],Ensemble:["49 String Ensemble 1","50 String Ensemble 2","51 Synth Strings 1","52 Synth Strings 2","53 Choir Aahs","54 Voice Oohs","55 Synth Choir","56 Orchestra Hit"],Brass:["57 Trumpet","58 Trombone","59 Tuba","60 Muted Trumpet","61 French Horn","62 Brass Section","63 Synth Brass 1","64 Synth Brass 2"],Reed:["65 Soprano Sax","66 Alto Sax","67 Tenor Sax","68 Baritone Sax","69 Oboe","70 English Horn","71 Bassoon","72 Clarinet"],Pipe:["73 Piccolo","74 Flute","75 Recorder","76 Pan Flute","77 Blown Bottle","78 Shakuhachi","79 Whistle","80 Ocarina"],"Synth Lead":["81 Lead 1 (square)","82 Lead 2 (sawtooth)","83 Lead 3 (calliope)","84 Lead 4 (chiff)","85 Lead 5 (charang)","86 Lead 6 (voice)","87 Lead 7 (fifths)","88 Lead 8 (bass + lead)"],"Synth Pad":["89 Pad 1 (new age)","90 Pad 2 (warm)","91 Pad 3 (polysynth)","92 Pad 4 (choir)","93 Pad 5 (bowed)","94 Pad 6 (metallic)","95 Pad 7 (halo)","96 Pad 8 (sweep)"],"Synth Effects":["97 FX 1 (rain)","98 FX 2 (soundtrack)","99 FX 3 (crystal)","100 FX 4 (atmosphere)","101 FX 5 (brightness)","102 FX 6 (goblins)","103 FX 7 (echoes)","104 FX 8 (sci-fi)"],Ethnic:["105 Sitar","106 Banjo","107 Shamisen","108 Koto","109 Kalimba","110 Bagpipe","111 Fiddle","112 Shanai"],Percussive:["113 Tinkle Bell","114 Agogo","115 Steel Drums","116 Woodblock","117 Taiko Drum","118 Melodic Tom","119 Synth Drum"],"Sound effects":["120 Reverse Cymbal","121 Guitar Fret Noise","122 Breath Noise","123 Seashore","124 Bird Tweet","125 Telephone Ring","126 Helicopter","127 Applause","128 Gunshot"]}),a.getInstrument=function(b){var c=a.channels[b];return c&&c.instrument},a.setInstrument=function(b,c,d){var e=a.channels[b];return d?setTimeout(function(){e.instrument=c},d):void(e.instrument=c)},a.getMono=function(b){var c=a.channels[b];return c&&c.mono},a.setMono=function(b,c,d){var e=a.channels[b];return d?setTimeout(function(){e.mono=c},d):void(e.mono=c)},a.getOmni=function(b){var c=a.channels[b];return c&&c.omni},a.setOmni=function(b,c){var d=a.channels[b];return delay?setTimeout(function(){d.omni=c},delay):void(d.omni=c)},a.getSolo=function(b){var c=a.channels[b];return c&&c.solo},a.setSolo=function(b,c){var d=a.channels[b];return delay?setTimeout(function(){d.solo=c},delay):void(d.solo=c)},a.channels=function(){for(var a={},b=0;16>b;b++)a[b]={instrument:b,pitchBend:0,mute:!1,mono:!1,omni:!1,solo:!1};return a}(),a.keyToNote={},a.noteToKey={},function(){for(var b=21,c=108,d=["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"],e=b;c>=e;e++){var f=(e-12)/12>>0,g=d[e%12]+f;a.keyToNote[g]=e,a.noteToKey[e]=g}}()}(MIDI),"undefined"==typeof MIDI&&(MIDI={}),MIDI.Soundfont=MIDI.Soundfont||{},MIDI.Player=MIDI.Player||{},function(a){"use strict";a.DEBUG=!0,a.USE_XHR=!0,a.soundfontUrl="./soundfont/",a.loadPlugin=function(c){"function"==typeof c&&(c={onsuccess:c}),a.soundfontUrl=c.soundfontUrl||a.soundfontUrl,a.audioDetect(function(d){var e=window.location.hash,f="";if(d[c.api]?f=c.api:d[e.substr(1)]?f=e.substr(1):d.webmidi?f="webmidi":window.AudioContext?f="webaudio":window.Audio&&(f="audiotag"),b[f]){if(c.targetFormat)var g=c.targetFormat;else var g=d["audio/ogg"]?"ogg":"mp3";a.__api=f,a.__audioFormat=g,a.supports=d,a.loadResource(c)}})},a.loadResource=function(c){var d=c.instruments||c.instrument||"acoustic_grand_piano";"object"!=typeof d&&(d=d||0===d?[d]:[]);for(var e=0;e<d.length;e++){var f=d[e];f===+f&&a.GM.byId[f]&&(d[e]=a.GM.byId[f].id)}c.format=a.__audioFormat,c.instruments=d,b[a.__api](c)};var b={webmidi:function(b){a.WebMIDI.connect(b)},audiotag:function(a){c(a,"AudioTag")},webaudio:function(a){c(a,"WebAudio")}},c=function(b,c){for(var e=b.format,f=b.instruments,g=b.onprogress,h=b.onerror,i=f.length,j=i,k=function(){--j||(g&&g("load",1),a[c].connect(b))},l=0;i>l;l++){var m=f[l];MIDI.Soundfont[m]?k():d(f[l],e,function(a,b){var c=b/i,d=(i-j)/i;g&&g("load",c+d,m)},function(){k()},h)}},d=function(b,c,d,e,f){var g=a.soundfontUrl+b+"-"+c+".js";a.USE_XHR?a.util.request({url:g,format:"text",onerror:f,onprogress:d,onsuccess:function(a,b){var c=document.createElement("script");c.language="javascript",c.type="text/javascript",c.text=b,document.body.appendChild(c),e()}}):dom.loadScript.add({url:g,verify:'MIDI.Soundfont["'+b+'"]',onerror:f,onsuccess:function(){e()}})};a.setDefaultPlugin=function(b){for(var c in b)a[c]=b[c]}}(MIDI),"undefined"==typeof MIDI&&(MIDI={}),"undefined"==typeof MIDI.Player&&(MIDI.Player={}),function(){"use strict";var a=MIDI.Player;a.currentTime=0,a.endTime=0,a.restart=0,a.playing=!1,a.timeWarp=1,a.startDelay=0,a.BPM=120,a.start=a.resume=function(b){a.currentTime<-1&&(a.currentTime=-1),l(a.currentTime,null,b)},a.pause=function(){var b=a.restart;m(),a.restart=b},a.stop=function(){m(),a.restart=0,a.currentTime=0},a.addListener=function(a){g=a},a.removeListener=function(){g=void 0},a.clearAnimation=function(){a.animationFrameId&&cancelAnimationFrame(a.animationFrameId)},a.setAnimation=function(b){var c=0,d=0,e=0;a.clearAnimation();var g=function(){if(a.animationFrameId=requestAnimationFrame(g),0!==a.endTime){a.playing?(c=e===a.currentTime?d-Date.now():0,c=0===a.currentTime?0:a.currentTime-c,e!==a.currentTime&&(d=Date.now(),e=a.currentTime)):c=a.currentTime;var h=a.endTime,i=c/1e3,j=i/60,k=i-60*j,l=60*j+k,m=h/1e3;-1>m-l||b({now:l,end:m,events:f})}};requestAnimationFrame(g)},a.loadMidiFile=function(b,c,d){try{a.replayer=new Replayer(MidiFile(a.currentData),a.timeWarp,null,a.BPM),a.data=a.replayer.getData(),a.endTime=j(),MIDI.loadPlugin({onsuccess:b,onprogress:c,onerror:d})}catch(e){d&&d(e)}},a.loadFile=function(b,c,d,e){if(a.stop(),-1!==b.indexOf("base64,")){var f=window.atob(b.split(",")[1]);a.currentData=f,a.loadMidiFile(c,d,e)}else{var g=new XMLHttpRequest;g.open("GET",b),g.overrideMimeType("text/plain; charset=x-user-defined"),g.onreadystatechange=function(){if(4===this.readyState)if(200===this.status){for(var b=this.responseText||"",f=[],g=b.length,h=String.fromCharCode,i=0;g>i;i++)f[i]=h(255&b.charCodeAt(i));var j=f.join("");a.currentData=j,a.loadMidiFile(c,d,e)}else e&&e("Unable to load MIDI file")},g.send()}},a.getFileInstruments=function(){for(var b={},c={},d=0;d<a.data.length;d++){var e=a.data[d][0].event;if("channel"===e.type){var f=e.channel;switch(e.subtype){case"controller":break;case"programChange":c[f]=e.programNumber;break;case"noteOn":var g=c[f],h=MIDI.GM.byId[isFinite(g)?g:f];b[h.id]=!0}}}var i=[];for(var j in b)i.push(j);return i};var b,c,d=[],e=0,f={},g=void 0,h=function(c,e,h,i,j,k,m){return setTimeout(function(){var i={channel:c,note:e,now:h,end:a.endTime,message:j,velocity:k};128===j?delete f[e]:f[e]=i,g&&g(i),a.currentTime=h,d.shift(),d.length<1e3?l(b,!0):a.currentTime===b&&b<a.endTime&&l(b,!0)},h-i)},i=function(){return"webaudio"===MIDI.api?MIDI.WebAudio.getContext():(a.ctx={currentTime:0},a.ctx)},j=function(){for(var b=a.data,c=b.length,d=.5,e=0;c>e;e++)d+=b[e][1];return d},k=function(){return window.performance&&window.performance.now?window.performance.now():Date.now()},l=function(f,g,l){if(a.replayer){g||("undefined"==typeof f&&(f=a.restart),a.playing&&m(),a.playing=!0,a.data=a.replayer.getData(),a.endTime=j());var n,o=0,p=0,q=a.data,r=i(),s=q.length;b=.5;var t=(d[0]&&d[0].interval||0,f-a.currentTime);if("webaudio"!==MIDI.api){var u=k();c=c||u,r.currentTime=(u-c)/1e3}e=r.currentTime;for(var v=0;s>v&&100>p;v++){var w=q[v];if((b+=w[1])<=f)o=b;else{f=b-o;var x=w[0].event;if("channel"===x.type){var y=x.channel,z=MIDI.channels[y],A=r.currentTime+(f+t+a.startDelay)/1e3,B=b-o+a.startDelay;switch(x.subtype){case"controller":MIDI.setController(y,x.controllerType,x.value,A);break;case"programChange":MIDI.programChange(y,x.programNumber,A);break;case"pitchBend":MIDI.pitchBend(y,x.value,A);break;case"noteOn":if(z.mute)break;n=x.noteNumber-(a.MIDIOffset||0),d.push({event:x,time:B,source:MIDI.noteOn(y,x.noteNumber,x.velocity,A),interval:h(y,n,b+a.startDelay,o-t,144,x.velocity)}),p++;break;case"noteOff":if(z.mute)break;n=x.noteNumber-(a.MIDIOffset||0),d.push({event:x,time:B,source:MIDI.noteOff(y,x.noteNumber,A),interval:h(y,n,b,o-t,128,0)})}}}}l&&l(d)}},m=function(){var b=i();for(a.playing=!1,a.restart+=1e3*(b.currentTime-e);d.length;){var c=d.pop();window.clearInterval(c.interval),c.source&&("number"==typeof c.source?window.clearTimeout(c.source):c.source.disconnect(0))}for(var h in f){var c=f[h];144===f[h].message&&g&&g({channel:c.channel,note:c.note,now:c.now,end:c.end,message:128,velocity:c.velocity})}f={}}}(),function(a){"use strict";window.Audio&&function(){for(var b=a.AudioTag={api:"audiotag"},c={},d=127,e=-1,f=[],g=[],h={},i=0;12>i;i++)f[i]=new Audio;var j=function(b,c){if(a.channels[b]){var i=a.channels[b].instrument,j=a.GM.byId[i].id,c=h[c];if(c){var k=j+""+c.id,l=(e+1)%f.length,m=f[l];if(g[l]=k,!a.Soundfont[j])return void(a.DEBUG&&console.log("404",j));m.src=a.Soundfont[j][c.id],m.volume=d/127,m.play(),e=l}}},k=function(b,c){if(a.channels[b]){var d=a.channels[b].instrument,i=a.GM.byId[d].id,c=h[c];if(c)for(var j=i+""+c.id,k=0,l=f.length;l>k;k++){var m=(k+e+1)%l,n=g[m];if(n&&n==j)return f[m].pause(),void(g[m]=null)}}};b.audioBuffers=f,b.send=function(a,b){},b.setController=function(a,b,c,d){},b.setVolume=function(a,b){d=b},b.programChange=function(b,c){a.channels[b].instrument=c},b.pitchBend=function(a,b,c){},b.noteOn=function(a,b,d,e){var f=c[b];if(h[f])return e?setTimeout(function(){j(a,f)},1e3*e):void j(a,f)},b.noteOff=function(a,b,c){},b.chordOn=function(a,b,d,e){for(var f=0;f<b.length;f++){var g=b[f],i=c[g];if(h[i]){if(e)return setTimeout(function(){j(a,i)},1e3*e);j(a,i)}}},b.chordOff=function(a,b,d){for(var e=0;e<b.length;e++){var f=b[e],g=c[f];if(h[g]){if(d)return setTimeout(function(){k(a,g)},1e3*d);k(a,g)}}},b.stopAllNotes=function(){for(var a=0,b=f.length;b>a;a++)f[a].pause()},b.connect=function(d){a.setDefaultPlugin(b);for(var e in a.keyToNote)c[a.keyToNote[e]]=e,h[e]={id:e};d.onsuccess&&d.onsuccess()}}()}(MIDI),function(a){"use strict";window.AudioContext&&function(){function b(a,b,c){if(e){var f=new Audio;f.src=a,f.controls=!1,f.autoplay=!1,f.preload=!1,f.addEventListener("canplay",function(){b&&b(f)}),f.addEventListener("error",function(a){c&&c(a)}),document.body.appendChild(f)}else if(0===a.indexOf("data:audio")){var g=a.split(",")[1],h=Base64Binary.decodeArrayBuffer(g);d.decodeAudioData(h,b,c)}else{var i=new XMLHttpRequest;i.open("GET",a,!0),i.responseType="arraybuffer",i.onload=function(){d.decodeAudioData(i.response,b,c)},i.send()}}function c(){return new(window.AudioContext||window.webkitAudioContext)}var d,e=!1,f=a.WebAudio={api:"webaudio"},g={},h={},i=127,j={};f.audioBuffers=j,f.send=function(a,b){},f.setController=function(a,b,c,d){},f.setVolume=function(a,b,c){c?setTimeout(function(){i=b},1e3*c):i=b},f.programChange=function(b,c,d){var e=a.channels[b];e.instrument=c},f.pitchBend=function(b,c,d){var e=a.channels[b];e.pitchBend=c},f.noteOn=function(b,c,f,k){k=k||0;var l=a.channels[b],m=l.instrument,n=m+""+c,o=j[n];if(o){if(k<d.currentTime&&(k+=d.currentTime),e)var p=d.createMediaElementSource(o);else{var p=d.createBufferSource();p.buffer=o}if(h){var q=p;for(var r in h)q.connect(h[r].input),q=h[r]}var s=f/127*(i/127)*2-1;if(p.connect(d.destination),p.playbackRate.value=1,p.gainNode=d.createGain(),p.gainNode.connect(d.destination),p.gainNode.gain.value=Math.min(1,Math.max(-1,s)),p.connect(p.gainNode),e){if(k)return setTimeout(function(){o.currentTime=0,o.play()},1e3*k);o.currentTime=0,o.play()}else p.start(k||0);return g[b+""+c]=p,p}},f.noteOff=function(b,c,f){f=f||0;var h=a.channels[b],i=h.instrument,k=i+""+c,l=j[k];if(l){f<d.currentTime&&(f+=d.currentTime);var m=g[b+""+c];if(m){if(m.gainNode){var n=m.gainNode.gain;n.linearRampToValueAtTime(n.value,f),n.linearRampToValueAtTime(-1,f+.3)}return e?f?setTimeout(function(){l.pause()},1e3*f):l.pause():m.noteOff?m.noteOff(f+.5):m.stop(f+.5),delete g[b+""+c],m}}},f.chordOn=function(a,b,c,d){for(var e,g={},h=0,i=b.length;i>h;h++)g[e=b[h]]=f.noteOn(a,e,c,d);return g},f.chordOff=function(a,b,c){for(var d,e={},g=0,h=b.length;h>g;g++)e[d=b[g]]=f.noteOff(a,d,c);return e},f.stopAllNotes=function(){for(var a in g){var b=0;b<d.currentTime&&(b+=d.currentTime);var c=g[a];c.gain.linearRampToValueAtTime(1,b),c.gain.linearRampToValueAtTime(0,b+.3),c.noteOff?c.noteOff(b+.3):c.stop(b+.3),delete g[a]}},f.setEffects=function(a){if(!d.tunajs)return console.log("Effects module not installed.");for(var b=0;b<a.length;b++){var c=a[b],e=new d.tunajs[c.type](c);e.connect(d.destination),h[c.type]=e}},f.connect=function(b){a.setDefaultPlugin(f),f.setContext(d||c(),b.onsuccess)},f.getContext=function(){return d},f.setContext=function(c,e,f,g){d=c,"undefined"==typeof Tuna||d.tunajs||(d.tunajs=new Tuna(d));var h=[],i=a.keyToNote;for(var k in i)h.push(k);var l=function(a){for(var b in n)if(n[b])return;e&&(e(),e=null)},m=function(c,d,e,f){var g=c[f];g&&(n[d]++,b(g,function(b){b.id=f;var e=a.keyToNote[f];if(j[d+""+e]=b,0===--n[d]){c.isLoaded=!0,l(o)}},function(a){}))},n={};for(var o in a.Soundfont){var p=a.Soundfont[o];if(!p.isLoaded){var q=a.GM.byName[o],r=q.number;n[r]=0;for(var s=0;s<h.length;s++){var k=h[s];m(p,r,s,k)}}}setTimeout(l,1)}}()}(MIDI),function(a){"use strict";var b=null,c=null,d=a.WebMIDI={api:"webmidi"};d.send=function(a,b){c.send(a,1e3*b)},d.setController=function(a,b,d,e){c.send([a,b,d],1e3*e)},d.setVolume=function(a,b,d){c.send([176+a,7,b],1e3*d)},d.programChange=function(a,b,d){c.send([192+a,b],1e3*d)},d.pitchBend=function(a,b,d){c.send([224+a,b],1e3*d)},d.noteOn=function(a,b,d,e){c.send([144+a,b,d],1e3*e)},d.noteOff=function(a,b,d){c.send([128+a,b,0],1e3*d)},d.chordOn=function(a,b,d,e){for(var f=0;f<b.length;f++){var g=b[f];c.send([144+a,g,d],1e3*e)}},d.chordOff=function(a,b,d){for(var e=0;e<b.length;e++){var f=b[e];c.send([128+a,f,0],1e3*d)}},d.stopAllNotes=function(){c.cancel();for(var a=0;16>a;a++)c.send([176+a,123,0])},d.connect=function(e){a.setDefaultPlugin(d);var f=function(b){if(window.AudioContext)e.api="webaudio";else{if(!window.Audio)return;e.api="audiotag"}a.loadPlugin(e)};navigator.requestMIDIAccess().then(function(a){b=a;var d=b.outputs;c="function"==typeof d?d()[0]:d[0],void 0===c?f():e.onsuccess&&e.onsuccess()},f)}}(MIDI),"undefined"==typeof MIDI&&(MIDI={}),function(a){var b=a.util||(a.util={});if(b.request=function(b,d,e,f){"use strict";"string"==typeof b&&(b={url:b});var g=b.data,h=b.url,i=b.method||(b.data?"POST":"GET"),j=b.format,k=b.headers,l=b.responseType,m=b.withCredentials||!1,d=d||b.onsuccess,e=e||b.onerror,f=f||b.onprogress;if("undefined"!=typeof c&&a.loc.isLocalUrl(h))return void c.readFile(h,"utf8",function(a,b){a?e&&e(a):d&&d({responseText:b})});var n=new XMLHttpRequest;if(n.open(i,h,!0),k)for(var o in k)n.setRequestHeader(o,k[o]);else g&&n.setRequestHeader("Content-type","application/x-www-form-urlencoded");"binary"===j&&n.overrideMimeType&&n.overrideMimeType("text/plain; charset=x-user-defined"),l&&(n.responseType=l),m&&(n.withCredentials="true"),e&&"onerror"in n&&(n.onerror=e),f&&n.upload&&"onprogress"in n.upload&&(g?n.upload.onprogress=function(a){f.call(n,a,event.loaded/event.total)}:n.addEventListener("progress",function(a){var b=0;if(a.lengthComputable)b=a.total;else if(n.totalBytes)b=n.totalBytes;else{var c=parseInt(n.getResponseHeader("Content-Length-Raw"));if(!isFinite(c))return;n.totalBytes=b=c}f.call(n,a,a.loaded/b)})),n.onreadystatechange=function(b){if(4===n.readyState)if(200===n.status||304===n.status||308===n.status||0===n.status&&a.client.cordova){if(d){var c;if("xml"===j)c=b.target.responseXML;else if("text"===j)c=b.target.responseText;else if("json"===j)try{c=JSON.parse(b.target.response)}catch(f){e&&e.call(n,b)}d.call(n,b,c)}}else e&&e.call(n,b)};try{n.send(g)}catch(p){e&&e.call(n)}return n},"undefined"!=typeof module&&module.exports){var c=require("fs");XMLHttpRequest=require("xmlhttprequest").XMLHttpRequest,module.exports=a.util.request}}(MIDI),"undefined"==typeof dom)var dom={};!function(){"use strict";dom.loadScript=function(){return this.loaded={},this.loading={},this},dom.loadScript.prototype.add=function(b){var c=this;"string"==typeof b&&(b={url:b});var d=b.urls;"undefined"==typeof d&&(d=[{url:b.url,verify:b.verify}]);var e=document.getElementsByTagName("head")[0],f=function(b,d){c.loaded[b.url]||d&&a(d)===!1||(c.loaded[b.url]=!0,c.loading[b.url]&&c.loading[b.url](),delete c.loading[b.url],b.onsuccess&&b.onsuccess(),"undefined"!=typeof m&&m())},g=!1,h=[],i=function(a){if("string"==typeof a&&(a={url:a,verify:b.verify}),/([\w\d.\[\]\'\"])$/.test(a.verify)){var d=a.test=a.verify;if("object"==typeof d)for(var i=0;i<d.length;i++)h.push(d[i]);else h.push(d)}if(!c.loaded[a.url]){var k=document.createElement("script");k.onreadystatechange=function(){"loaded"!==this.readyState&&"complete"!==this.readyState||f(a)},k.onload=function(){f(a)},k.onerror=function(){if(g=!0,delete c.loading[a.url],"object"==typeof a.test)for(var b in a.test)j(a.test[b]);else j(a.test)},k.setAttribute("type","text/javascript"),k.setAttribute("src",a.url),e.appendChild(k),c.loading[a.url]=function(){}}},j=function(a){for(var b=[],c=0;c<h.length;c++)h[c]!==a&&b.push(h[c]);h=b},k=function(c){if(c)f(c,c.test);else for(var e=0;e<d.length;e++)f(d[e],d[e].test);for(var i=!0,e=0;e<h.length;e++)a(h[e])===!1&&(i=!1);!b.strictOrder&&i?g?b.error&&b.error():b.onsuccess&&b.onsuccess():setTimeout(function(){k(c)},10)};if(b.strictOrder){var l=-1,m=function(){if(l++,d[l]){var a=d[l],e=a.url;c.loading[e]?c.loading[e]=function(){a.onsuccess&&a.onsuccess(),m()}:c.loaded[e]?m():(i(a),k(a))}else g?b.error&&b.error():b.onsuccess&&b.onsuccess()};m()}else for(var l=0;l<d.length;l++)i(d[l]),k(d[l])},dom.loadScript=new dom.loadScript;var a=function(a,b){try{a=a.split('"').join("").split("'").join("").split("]").join("").split("[").join(".");for(var c=a.split("."),d=c.length,e=b||window,f=0;d>f;f++){var g=c[f];if(null==e[g])return!1;e=e[g]}return!0}catch(h){return!1}}}(),"undefined"!=typeof module&&module.exports&&(module.exports=dom.loadScript),function(){function a(a){this.message=a}var b="undefined"!=typeof exports?exports:this,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a.prototype=new Error,a.prototype.name="InvalidCharacterError",b.btoa||(b.btoa=function(b){for(var d,e,f=0,g=c,h="";b.charAt(0|f)||(g="=",f%1);h+=g.charAt(63&d>>8-f%1*8)){if(e=b.charCodeAt(f+=.75),e>255)throw new a("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");d=d<<8|e}return h}),b.atob||(b.atob=function(b){if(b=b.replace(/=+$/,""),b.length%4==1)throw new a("'atob' failed: The string to be decoded is not correctly encoded.");for(var d,e,f=0,g=0,h="";e=b.charAt(g++);~e&&(d=f%4?64*d+e:e,f++%4)?h+=String.fromCharCode(255&d>>(-2*f&6)):0)e=c.indexOf(e);return h})}();var Base64Binary={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",decodeArrayBuffer:function(a){var b=Math.ceil(3*a.length/4),c=new ArrayBuffer(b);return this.decode(a,c),c},decode:function(a,b){var c=this._keyStr.indexOf(a.charAt(a.length-1)),d=this._keyStr.indexOf(a.charAt(a.length-1)),e=Math.ceil(3*a.length/4);64==c&&e--,64==d&&e--;var f,g,h,i,j,k,l,m,n=0,o=0;for(f=b?new Uint8Array(b):new Uint8Array(e),a=a.replace(/[^A-Za-z0-9\+\/\=]/g,""),n=0;e>n;n+=3)j=this._keyStr.indexOf(a.charAt(o++)),k=this._keyStr.indexOf(a.charAt(o++)),l=this._keyStr.indexOf(a.charAt(o++)),m=this._keyStr.indexOf(a.charAt(o++)),g=j<<2|k>>4,h=(15&k)<<4|l>>2,i=(3&l)<<6|m,f[n]=g,64!=l&&(f[n+1]=h),64!=m&&(f[n+2]=i);return f}};
Exemplo n.º 2
0
if("undefined"==typeof MIDI&&(MIDI={}),function(e){"use strict";var n={},t=0,o=function(e){t++;var o=document.body,r=new Audio,i=e.split(";")[0];r.id="audio",r.setAttribute("preload","auto"),r.setAttribute("audiobuffer",!0),r.addEventListener("error",function(){o.removeChild(r),n[i]=!1,t--},!1),r.addEventListener("canplaythrough",function(){o.removeChild(r),n[i]=!0,t--},!1),r.src="data:"+e,o.appendChild(r)};e.audioDetect=function(e){if(navigator.requestMIDIAccess){var r=Function.prototype.toString.call(navigator.requestMIDIAccess).indexOf("[native code]");if(r)n.webmidi=!0;else for(var i=0;navigator.plugins.length>i;i++){var a=navigator.plugins[i];a.name.indexOf("Jazz-Plugin")>=0&&(n.webmidi=!0)}}if("undefined"==typeof Audio)return e({});n.audiotag=!0,(window.AudioContext||window.webkitAudioContext)&&(n.webaudio=!0);var u=new Audio;if(u.canPlayType===void 0)return e(n);var s=u.canPlayType('audio/ogg; codecs="vorbis"');s="probably"===s||"maybe"===s;var c=u.canPlayType("audio/mpeg");if(c="probably"===c||"maybe"===c,!s&&!c)return e(n),void 0;s&&o("audio/ogg;base64,T2dnUwACAAAAAAAAAADqnjMlAAAAAOyyzPIBHgF2b3JiaXMAAAAAAUAfAABAHwAAQB8AAEAfAACZAU9nZ1MAAAAAAAAAAAAA6p4zJQEAAAANJGeqCj3//////////5ADdm9yYmlzLQAAAFhpcGguT3JnIGxpYlZvcmJpcyBJIDIwMTAxMTAxIChTY2hhdWZlbnVnZ2V0KQAAAAABBXZvcmJpcw9CQ1YBAAABAAxSFCElGVNKYwiVUlIpBR1jUFtHHWPUOUYhZBBTiEkZpXtPKpVYSsgRUlgpRR1TTFNJlVKWKUUdYxRTSCFT1jFloXMUS4ZJCSVsTa50FkvomWOWMUYdY85aSp1j1jFFHWNSUkmhcxg6ZiVkFDpGxehifDA6laJCKL7H3lLpLYWKW4q91xpT6y2EGEtpwQhhc+211dxKasUYY4wxxsXiUyiC0JBVAAABAABABAFCQ1YBAAoAAMJQDEVRgNCQVQBABgCAABRFcRTHcRxHkiTLAkJDVgEAQAAAAgAAKI7hKJIjSZJkWZZlWZameZaouaov+64u667t6roOhIasBACAAAAYRqF1TCqDEEPKQ4QUY9AzoxBDDEzGHGNONKQMMogzxZAyiFssLqgQBKEhKwKAKAAAwBjEGGIMOeekZFIi55iUTkoDnaPUUcoolRRLjBmlEluJMYLOUeooZZRCjKXFjFKJscRUAABAgAMAQICFUGjIigAgCgCAMAYphZRCjCnmFHOIMeUcgwwxxiBkzinoGJNOSuWck85JiRhjzjEHlXNOSuekctBJyaQTAAAQ4AAAEGAhFBqyIgCIEwAwSJKmWZomipamiaJniqrqiaKqWp5nmp5pqqpnmqpqqqrrmqrqypbnmaZnmqrqmaaqiqbquqaquq6nqrZsuqoum65q267s+rZru77uqapsm6or66bqyrrqyrbuurbtS56nqqKquq5nqq6ruq5uq65r25pqyq6purJtuq4tu7Js664s67pmqq5suqotm64s667s2rYqy7ovuq5uq7Ks+6os+75s67ru2rrwi65r66os674qy74x27bwy7ouHJMnqqqnqq7rmarrqq5r26rr2rqmmq5suq4tm6or26os67Yry7aumaosm64r26bryrIqy77vyrJui67r66Ys67oqy8Lu6roxzLat+6Lr6roqy7qvyrKuu7ru+7JuC7umqrpuyrKvm7Ks+7auC8us27oxuq7vq7It/KosC7+u+8Iy6z5jdF1fV21ZGFbZ9n3d95Vj1nVhWW1b+V1bZ7y+bgy7bvzKrQvLstq2scy6rSyvrxvDLux8W/iVmqratum6um7Ksq/Lui60dd1XRtf1fdW2fV+VZd+3hV9pG8OwjK6r+6os68Jry8ov67qw7MIvLKttK7+r68ow27qw3L6wLL/uC8uq277v6rrStXVluX2fsSu38QsAABhwAAAIMKEMFBqyIgCIEwBAEHIOKQahYgpCCKGkEEIqFWNSMuakZM5JKaWUFEpJrWJMSuaclMwxKaGUlkopqYRSWiqlxBRKaS2l1mJKqcVQSmulpNZKSa2llGJMrcUYMSYlc05K5pyUklJrJZXWMucoZQ5K6iCklEoqraTUYuacpA46Kx2E1EoqMZWUYgupxFZKaq2kFGMrMdXUWo4hpRhLSrGVlFptMdXWWqs1YkxK5pyUzDkqJaXWSiqtZc5J6iC01DkoqaTUYiopxco5SR2ElDLIqJSUWiupxBJSia20FGMpqcXUYq4pxRZDSS2WlFosqcTWYoy1tVRTJ6XFklKMJZUYW6y5ttZqDKXEVkqLsaSUW2sx1xZjjqGkFksrsZWUWmy15dhayzW1VGNKrdYWY40x5ZRrrT2n1mJNMdXaWqy51ZZbzLXnTkprpZQWS0oxttZijTHmHEppraQUWykpxtZara3FXEMpsZXSWiypxNhirLXFVmNqrcYWW62ltVprrb3GVlsurdXcYqw9tZRrrLXmWFNtBQAADDgAAASYUAYKDVkJAEQBAADGMMYYhEYpx5yT0ijlnHNSKucghJBS5hyEEFLKnINQSkuZcxBKSSmUklJqrYVSUmqttQIAAAocAAACbNCUWByg0JCVAEAqAIDBcTRNFFXVdX1fsSxRVFXXlW3jVyxNFFVVdm1b+DVRVFXXtW3bFn5NFFVVdmXZtoWiqrqybduybgvDqKqua9uybeuorqvbuq3bui9UXVmWbVu3dR3XtnXd9nVd+Bmzbeu2buu+8CMMR9/4IeTj+3RCCAAAT3AAACqwYXWEk6KxwEJDVgIAGQAAgDFKGYUYM0gxphhjTDHGmAAAgAEHAIAAE8pAoSErAoAoAADAOeecc84555xzzjnnnHPOOeecc44xxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY0wAwE6EA8BOhIVQaMhKACAcAABACCEpKaWUUkoRU85BSSmllFKqFIOMSkoppZRSpBR1lFJKKaWUIqWgpJJSSimllElJKaWUUkoppYw6SimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaVUSimllFJKKaWUUkoppRQAYPLgAACVYOMMK0lnhaPBhYasBAByAwAAhRiDEEJpraRUUkolVc5BKCWUlEpKKZWUUqqYgxBKKqmlklJKKbXSQSihlFBKKSWUUkooJYQQSgmhlFRCK6mEUkoHoYQSQimhhFRKKSWUzkEoIYUOQkmllNRCSB10VFIpIZVSSiklpZQ6CKGUklJLLZVSWkqpdBJSKamV1FJqqbWSUgmhpFZKSSWl0lpJJbUSSkklpZRSSymFVFJJJYSSUioltZZaSqm11lJIqZWUUkqppdRSSiWlkEpKqZSSUmollZRSaiGVlEpJKaTUSimlpFRCSamlUlpKLbWUSkmptFRSSaWUlEpJKaVSSksppRJKSqmllFpJKYWSUkoplZJSSyW1VEoKJaWUUkmptJRSSymVklIBAEAHDgAAAUZUWoidZlx5BI4oZJiAAgAAQABAgAkgMEBQMApBgDACAQAAAADAAAAfAABHARAR0ZzBAUKCwgJDg8MDAAAAAAAAAAAAAACAT2dnUwAEAAAAAAAAAADqnjMlAgAAADzQPmcBAQA="),c&&o("audio/mpeg;base64,/+MYxAAAAANIAUAAAASEEB/jwOFM/0MM/90b/+RhST//w4NFwOjf///PZu////9lns5GFDv//l9GlUIEEIAAAgIg8Ir/JGq3/+MYxDsLIj5QMYcoAP0dv9HIjUcH//yYSg+CIbkGP//8w0bLVjUP///3Z0x5QCAv/yLjwtGKTEFNRTMuOTeqqqqqqqqqqqqq/+MYxEkNmdJkUYc4AKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq");var l=(new Date).getTime(),d=window.setInterval(function(){var o=(new Date).getTime(),r=o-l>5e3;(!t||r)&&(window.clearInterval(d),e(n))},1)}}(MIDI),function(e){"use strict";e.GM=function(e){var n=function(e){return e.replace(/[^a-z0-9 ]/gi,"").replace(/[ ]/g,"_").toLowerCase()},t={byName:{},byId:{},byCategory:{}};for(var o in e)for(var r=e[o],i=0,a=r.length;a>i;i++){var u=r[i];if(u){var s=parseInt(u.substr(0,u.indexOf(" ")),10);u=u.replace(s+" ",""),t.byId[--s]=t.byName[n(u)]=t.byCategory[n(o)]={id:n(u),instrument:u,number:s,category:o}}}return t}({Piano:["1 Acoustic Grand Piano","2 Bright Acoustic Piano","3 Electric Grand Piano","4 Honky-tonk Piano","5 Electric Piano 1","6 Electric Piano 2","7 Harpsichord","8 Clavinet"],"Chromatic Percussion":["9 Celesta","10 Glockenspiel","11 Music Box","12 Vibraphone","13 Marimba","14 Xylophone","15 Tubular Bells","16 Dulcimer"],Organ:["17 Drawbar Organ","18 Percussive Organ","19 Rock Organ","20 Church Organ","21 Reed Organ","22 Accordion","23 Harmonica","24 Tango Accordion"],Guitar:["25 Acoustic Guitar (nylon)","26 Acoustic Guitar (steel)","27 Electric Guitar (jazz)","28 Electric Guitar (clean)","29 Electric Guitar (muted)","30 Overdriven Guitar","31 Distortion Guitar","32 Guitar Harmonics"],Bass:["33 Acoustic Bass","34 Electric Bass (finger)","35 Electric Bass (pick)","36 Fretless Bass","37 Slap Bass 1","38 Slap Bass 2","39 Synth Bass 1","40 Synth Bass 2"],Strings:["41 Violin","42 Viola","43 Cello","44 Contrabass","45 Tremolo Strings","46 Pizzicato Strings","47 Orchestral Harp","48 Timpani"],Ensemble:["49 String Ensemble 1","50 String Ensemble 2","51 Synth Strings 1","52 Synth Strings 2","53 Choir Aahs","54 Voice Oohs","55 Synth Choir","56 Orchestra Hit"],Brass:["57 Trumpet","58 Trombone","59 Tuba","60 Muted Trumpet","61 French Horn","62 Brass Section","63 Synth Brass 1","64 Synth Brass 2"],Reed:["65 Soprano Sax","66 Alto Sax","67 Tenor Sax","68 Baritone Sax","69 Oboe","70 English Horn","71 Bassoon","72 Clarinet"],Pipe:["73 Piccolo","74 Flute","75 Recorder","76 Pan Flute","77 Blown Bottle","78 Shakuhachi","79 Whistle","80 Ocarina"],"Synth Lead":["81 Lead 1 (square)","82 Lead 2 (sawtooth)","83 Lead 3 (calliope)","84 Lead 4 (chiff)","85 Lead 5 (charang)","86 Lead 6 (voice)","87 Lead 7 (fifths)","88 Lead 8 (bass + lead)"],"Synth Pad":["89 Pad 1 (new age)","90 Pad 2 (warm)","91 Pad 3 (polysynth)","92 Pad 4 (choir)","93 Pad 5 (bowed)","94 Pad 6 (metallic)","95 Pad 7 (halo)","96 Pad 8 (sweep)"],"Synth Effects":["97 FX 1 (rain)","98 FX 2 (soundtrack)","99 FX 3 (crystal)","100 FX 4 (atmosphere)","101 FX 5 (brightness)","102 FX 6 (goblins)","103 FX 7 (echoes)","104 FX 8 (sci-fi)"],Ethnic:["105 Sitar","106 Banjo","107 Shamisen","108 Koto","109 Kalimba","110 Bagpipe","111 Fiddle","112 Shanai"],Percussive:["113 Tinkle Bell","114 Agogo","115 Steel Drums","116 Woodblock","117 Taiko Drum","118 Melodic Tom","119 Synth Drum"],"Sound effects":["120 Reverse Cymbal","121 Guitar Fret Noise","122 Breath Noise","123 Seashore","124 Bird Tweet","125 Telephone Ring","126 Helicopter","127 Applause","128 Gunshot"]}),e.getInstrument=function(n){var t=e.channels[n];return t&&t.instrument},e.setInstrument=function(n,t,o){var r=e.channels[n];return o?setTimeout(function(){r.instrument=t},o):(r.instrument=t,void 0)},e.getMono=function(n){var t=e.channels[n];return t&&t.mono},e.setMono=function(n,t,o){var r=e.channels[n];return o?setTimeout(function(){r.mono=t},o):(r.mono=t,void 0)},e.getOmni=function(n){var t=e.channels[n];return t&&t.omni},e.setOmni=function(n,t){var o=e.channels[n];return delay?setTimeout(function(){o.omni=t},delay):(o.omni=t,void 0)},e.getSolo=function(n){var t=e.channels[n];return t&&t.solo},e.setSolo=function(n,t){var o=e.channels[n];return delay?setTimeout(function(){o.solo=t},delay):(o.solo=t,void 0)},e.channels=function(){for(var e={},n=0;16>n;n++)e[n]={instrument:n,pitchBend:0,mute:!1,mono:!1,omni:!1,solo:!1};return e}(),e.keyToNote={},e.noteToKey={},function(){for(var n=21,t=108,o=["C","Db","D","Eb","E","F","Gb","G","Ab","A","Bb","B"],r=n;t>=r;r++){var i=(r-12)/12>>0,a=o[r%12]+i;e.keyToNote[a]=r,e.noteToKey[r]=a}}()}(MIDI),"undefined"==typeof MIDI&&(MIDI={}),MIDI.Soundfont=MIDI.Soundfont||{},MIDI.Player=MIDI.Player||{},function(e){"use strict";e.DEBUG=!0,e.USE_XHR=!0,e.soundfontUrl="./soundfont/",e.loadPlugin=function(t){"function"==typeof t&&(t={onsuccess:t}),e.soundfontUrl=t.soundfontUrl||e.soundfontUrl,e.audioDetect(function(o){var r=window.location.hash,i="";if(o[t.api]?i=t.api:o[r.substr(1)]?i=r.substr(1):o.webmidi?i="webmidi":window.AudioContext?i="webaudio":window.Audio&&(i="audiotag"),n[i]){if(t.targetFormat)var a=t.targetFormat;else var a=o["audio/ogg"]?"ogg":"mp3";e.__api=i,e.__audioFormat=a,e.supports=o,e.loadResource(t)}})},e.loadResource=function(t){var o=t.instruments||t.instrument||"acoustic_grand_piano";"object"!=typeof o&&(o=o||0===o?[o]:[]);for(var r=0;o.length>r;r++){var i=o[r];i===+i&&e.GM.byId[i]&&(o[r]=e.GM.byId[i].id)}t.format=e.__audioFormat,t.instruments=o,n[e.__api](t)};var n={webmidi:function(n){e.WebMIDI.connect(n)},audiotag:function(e){t(e,"AudioTag")},webaudio:function(e){t(e,"WebAudio")}},t=function(n,t){for(var r=n.format,i=n.instruments,a=n.onprogress,u=n.onerror,s=i.length,c=s,l=function(){--c||(a&&a("load",1),e[t].connect(n))},d=0;s>d;d++){var f=i[d];MIDI.Soundfont[f]?l():o(i[d],r,function(e,n){var t=n/s,o=(s-c)/s;a&&a("load",t+o,f)},function(){l()},u)}},o=function(n,t,o,r,i){var a=e.soundfontUrl+n+"-"+t+".js";e.USE_XHR?e.util.request({url:a,format:"text",onerror:i,onprogress:o,onsuccess:function(e,n){var t=document.createElement("script");t.language="javascript",t.type="text/javascript",t.text=n,document.body.appendChild(t),r()}}):dom.loadScript.add({url:a,verify:'MIDI.Soundfont["'+n+'"]',onerror:i,onsuccess:function(){r()}})};e.setDefaultPlugin=function(n){for(var t in n)e[t]=n[t]}}(MIDI),"undefined"==typeof MIDI&&(MIDI={}),MIDI.Player===void 0&&(MIDI.Player={}),MIDI.Players===void 0&&(MIDI.Players={}),function(){"use strict";MIDI.Players.PlayInstance=function(){var e=this;e.currentTime=0,e.endTime=0,e.restart=0,e.playing=!1,e.timeWarp=1,e.startDelay=0,e.BPM=120,e.start=e.resume=function(n){-1>e.currentTime&&(e.currentTime=-1),e.startAudio(e.currentTime,null,n)},e.pause=function(){var n=e.restart;e.stopAudio(),e.restart=n},e.stop=function(){e.stopAudio(),e.restart=0,e.currentTime=0},e.addListener=function(n){e.onMidiEvent=n},e.removeListener=function(){e.onMidiEvent=void 0},e.clearAnimation=function(){e.animationFrameId&&cancelAnimationFrame(e.animationFrameId)},e.setAnimation=function(n){var t=0,o=0,r=0;e.clearAnimation(),e.frame=function(){if(e.animationFrameId=requestAnimationFrame(e.frame),0!==e.endTime){e.playing?(t=r===e.currentTime?o-Date.now():0,t=0===e.currentTime?0:e.currentTime-t,r!==e.currentTime&&(o=Date.now(),r=e.currentTime)):t=e.currentTime;var i=e.endTime,a=t/1e3,u=a/60,s=a-60*u,c=60*u+s,l=i/1e3;-1>l-c||n({now:c,end:l,events:e.noteRegistrar})}},requestAnimationFrame(e.frame)},e.loadMidiFile=function(n,t,o){try{e.replayer=new Replayer(MidiFile(e.currentData),e.timeWarp,null,e.BPM),e.data=e.replayer.getData(),e.endTime=e.getLength(),MIDI.loadPlugin({onsuccess:n,onprogress:t,onerror:o})}catch(r){o&&o(r)}},e.loadFile=function(n,t,o,r){if(e.stop(),-1!==n.indexOf("base64,")){var i=window.atob(n.split(",")[1]);e.currentData=i,e.loadMidiFile(t,o,r)}else{var a=new XMLHttpRequest;a.open("GET",n),a.overrideMimeType("text/plain; charset=x-user-defined"),a.onreadystatechange=function(){if(4===this.readyState)if(200===this.status){for(var n=this.responseText||"",i=[],a=n.length,u=String.fromCharCode,s=0;a>s;s++)i[s]=u(255&n.charCodeAt(s));var c=i.join("");e.currentData=c,e.loadMidiFile(t,o,r)}else r&&r("Unable to load MIDI file")},a.send()}},e.getFileInstruments=function(){for(var n={},t={},o=0;e.data.length>o;o++){var r=e.data[o][0].event;if("channel"===r.type){var i=r.channel;switch(r.subtype){case"controller":break;case"programChange":t[i]=r.programNumber;break;case"noteOn":var a=t[i],u=MIDI.GM.byId[isFinite(a)?a:i];n[u.id]=!0}}}var s=[];for(var c in n)s.push(c);return s},e.eventQueue=[],e.queuedTime,e.startTime=0,e.noteRegistrar={},e.onMidiEvent=void 0,e.scheduleTracking=function(n,t,o,r,i,a){return setTimeout(function(){var r={channel:n,note:t,now:o,end:e.endTime,message:i,velocity:a};128===i?delete e.noteRegistrar[t]:e.noteRegistrar[t]=r,e.onMidiEvent&&e.onMidiEvent(r),e.currentTime=o,e.eventQueue.shift(),1e3>e.eventQueue.length?e.startAudio(e.queuedTime,!0):e.currentTime===e.queuedTime&&e.queuedTime<e.endTime&&e.startAudio(e.queuedTime,!0)},o-r)},e.getContext=function(){return"webaudio"===MIDI.api?MIDI.WebAudio.getContext():(e.ctx={currentTime:0},e.ctx)},e.getLength=function(){for(var n=e.data,t=n.length,o=.5,r=0;t>r;r++)o+=n[r][1];return o},e.__now=void 0,e.getNow=function(){return window.performance&&window.performance.now?window.performance.now():Date.now()},e.startAudio=function(n,t,o){if(e.replayer){t||(n===void 0&&(n=e.restart),e.playing&&e.stopAudio(),e.playing=!0,e.data=e.replayer.getData(),e.endTime=e.getLength());var r,i=0,a=0,u=e.data,s=e.getContext(),c=u.length;e.queuedTime=.5,e.eventQueue[0]&&e.eventQueue[0].interval||0;var l=n-e.currentTime;if("webaudio"!==MIDI.api){var d=e.getNow();e.__now=e.__now||d,s.currentTime=(d-e.__now)/1e3}e.startTime=s.currentTime;for(var f=0;c>f&&100>a;f++){var A=u[f];if(n>=(e.queuedTime+=A[1]))i=e.queuedTime;else{n=e.queuedTime-i;var p=A[0].event;if("channel"===p.type){var m=p.channel,v=MIDI.channels[m],q=s.currentTime+(n+l+e.startDelay)/1e3,g=e.queuedTime-i+e.startDelay;switch(p.subtype){case"controller":MIDI.setController(m,p.controllerType,p.value,q);break;case"programChange":MIDI.programChange(m,p.programNumber,q);break;case"pitchBend":MIDI.pitchBend(m,p.value,q);break;case"noteOn":if(v.mute)break;r=p.noteNumber-(e.MIDIOffset||0),e.eventQueue.push({event:p,time:g,source:MIDI.noteOn(m,p.noteNumber,p.velocity,q),interval:e.scheduleTracking(m,r,e.queuedTime+e.startDelay,i-l,144,p.velocity)}),a++;break;case"noteOff":if(v.mute)break;r=p.noteNumber-(e.MIDIOffset||0),e.eventQueue.push({event:p,time:g,source:MIDI.noteOff(m,p.noteNumber,q),interval:e.scheduleTracking(m,r,e.queuedTime,i-l,128,0)});break;default:}}}}o&&o(e.eventQueue)}},e.stopAudio=function(){var n=e.getContext();for(e.playing=!1,e.restart+=1e3*(n.currentTime-e.startTime);e.eventQueue.length;){var t=e.eventQueue.pop();window.clearInterval(t.interval),t.source&&("number"==typeof t.source?window.clearTimeout(t.source):t.source.disconnect(0))}for(var o in e.noteRegistrar){var t=e.noteRegistrar[o];144===e.noteRegistrar[o].message&&e.onMidiEvent&&e.onMidiEvent({channel:t.channel,note:t.note,now:t.now,end:t.end,message:128,velocity:t.velocity})}e.noteRegistrar={}}},MIDI.Player=new MIDI.Players.PlayInstance}(),function(e){"use strict";window.Audio&&function(){for(var n=e.AudioTag={api:"audiotag"},t={},o=127,r=-1,i=[],a=[],u={},s=0;12>s;s++)i[s]=new Audio;var c=function(n,t){if(e.channels[n]){var s=e.channels[n].instrument,c=e.GM.byId[s].id,t=u[t];if(t){var l=c+""+t.id,d=(r+1)%i.length,f=i[d];if(a[d]=l,!e.Soundfont[c])return e.DEBUG&&console.log("404",c),void 0;f.src=e.Soundfont[c][t.id],f.volume=o/127,f.play(),r=d}}},l=function(n,t){if(e.channels[n]){var o=e.channels[n].instrument,s=e.GM.byId[o].id,t=u[t];if(t)for(var c=s+""+t.id,l=0,d=i.length;d>l;l++){var f=(l+r+1)%d,A=a[f];if(A&&A==c)return i[f].pause(),a[f]=null,void 0}}};n.audioBuffers=i,n.send=function(){},n.setController=function(){},n.setVolume=function(e,n){o=n},n.programChange=function(n,t){e.channels[n].instrument=t},n.pitchBend=function(){},n.noteOn=function(e,n,o,r){var i=t[n];if(u[i])return r?setTimeout(function(){c(e,i)},1e3*r):(c(e,i),void 0)},n.noteOff=function(){},n.chordOn=function(e,n,o,r){for(var i=0;n.length>i;i++){var a=n[i],s=t[a];if(u[s]){if(r)return setTimeout(function(){c(e,s)},1e3*r);c(e,s)}}},n.chordOff=function(e,n,o){for(var r=0;n.length>r;r++){var i=n[r],a=t[i];if(u[a]){if(o)return setTimeout(function(){l(e,a)},1e3*o);l(e,a)}}},n.stopAllNotes=function(){for(var e=0,n=i.length;n>e;e++)i[e].pause()},n.connect=function(o){e.setDefaultPlugin(n);for(var r in e.keyToNote)t[e.keyToNote[r]]=r,u[r]={id:r};o.onsuccess&&o.onsuccess()}}()}(MIDI),function(e){"use strict";window.AudioContext&&function(){function n(e,n,t){if(r){var i=new Audio;i.src=e,i.controls=!1,i.autoplay=!1,i.preload=!1,i.addEventListener("canplay",function(){n&&n(i)}),i.addEventListener("error",function(e){t&&t(e)}),document.body.appendChild(i)}else if(0===e.indexOf("data:audio")){var a=e.split(",")[1],u=Base64Binary.decodeArrayBuffer(a);o.decodeAudioData(u,n,t)}else{var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onload=function(){o.decodeAudioData(s.response,n,t)},s.send()}}function t(){return new(window.AudioContext||window.webkitAudioContext)}var o,r=!1,i=e.WebAudio={api:"webaudio"},a={},u={},s=127,c={};i.audioBuffers=c,i.send=function(){},i.setController=function(){},i.setVolume=function(e,n,t){t?setTimeout(function(){s=n},1e3*t):s=n},i.programChange=function(n,t){var o=e.channels[n];o.instrument=t},i.pitchBend=function(n,t){var o=e.channels[n];o.pitchBend=t},i.noteOn=function(n,t,i,l){l=l||0;var d=e.channels[n],f=d.instrument,A=f+""+t,p=c[A];if(p){if(o.currentTime>l&&(l+=o.currentTime),r)var m=o.createMediaElementSource(p);else{var m=o.createBufferSource();m.buffer=p}if(u){var v=m;for(var q in u)v.connect(u[q].input),v=u[q]}var g=2*i/127*(s/127)-1;if(m.connect(o.destination),m.playbackRate.value=1,m.gainNode=o.createGain(),m.gainNode.connect(o.destination),m.gainNode.gain.value=Math.min(1,Math.max(-1,g)),m.connect(m.gainNode),r){if(l)return setTimeout(function(){p.currentTime=0,p.play()},1e3*l);p.currentTime=0,p.play()}else m.start(l||0);return a[n+""+t]=m,m}},i.noteOff=function(n,t,i){i=i||0;var u=e.channels[n],s=u.instrument,l=s+""+t,d=c[l];if(d){o.currentTime>i&&(i+=o.currentTime);var f=a[n+""+t];if(f){if(f.gainNode){var A=f.gainNode.gain;A.linearRampToValueAtTime(A.value,i),A.linearRampToValueAtTime(-1,i+.3)}return r?i?setTimeout(function(){d.pause()},1e3*i):d.pause():f.noteOff?f.noteOff(i+.5):f.stop(i+.5),delete a[n+""+t],f}}},i.chordOn=function(e,n,t,o){for(var r,a={},u=0,s=n.length;s>u;u++)a[r=n[u]]=i.noteOn(e,r,t,o);return a},i.chordOff=function(e,n,t){for(var o,r={},a=0,u=n.length;u>a;a++)r[o=n[a]]=i.noteOff(e,o,t);return r},i.stopAllNotes=function(){for(var e in a){var n=0;o.currentTime>n&&(n+=o.currentTime);var t=a[e];t.gain.linearRampToValueAtTime(1,n),t.gain.linearRampToValueAtTime(0,n+.3),t.noteOff?t.noteOff(n+.3):t.stop(n+.3),delete a[e]}},i.setEffects=function(e){if(!o.tunajs)return console.log("Effects module not installed.");for(var n=0;e.length>n;n++){var t=e[n],r=new o.tunajs[t.type](t);r.connect(o.destination),u[t.type]=r}},i.connect=function(n){e.setDefaultPlugin(i),i.setContext(o||t(),n.onsuccess)},i.getContext=function(){return o},i.setContext=function(t,r){o=t,"undefined"==typeof Tuna||o.tunajs||(o.tunajs=new Tuna(o));var i=[],a=e.keyToNote;for(var u in a)i.push(u);var s=function(){for(var e in d)if(d[e])return;r&&(r(),r=null)},l=function(t,o,r,i){var a=t[i];a&&(d[o]++,n(a,function(n){n.id=i;var r=e.keyToNote[i];c[o+""+r]=n,0===--d[o]&&(t.isLoaded=!0,s(f))},function(){}))},d={};for(var f in e.Soundfont){var A=e.Soundfont[f];if(!A.isLoaded){var p=e.GM.byName[f],m=p.number;d[m]=0;for(var v=0;i.length>v;v++){var u=i[v];l(A,m,v,u)}}}setTimeout(s,1)}}()}(MIDI),function(e){"use strict";var n=null,t=null,o=e.WebMIDI={api:"webmidi"};o.send=function(e,n){t.send(e,1e3*n)},o.setController=function(e,n,o,r){t.send([e,n,o],1e3*r)},o.setVolume=function(e,n,o){t.send([176+e,7,n],1e3*o)},o.programChange=function(e,n,o){t.send([192+e,n],1e3*o)},o.pitchBend=function(e,n,o){t.send([224+e,n],1e3*o)},o.noteOn=function(e,n,o,r){t.send([144+e,n,o],1e3*r)},o.noteOff=function(e,n,o){t.send([128+e,n,0],1e3*o)},o.chordOn=function(e,n,o,r){for(var i=0;n.length>i;i++){var a=n[i];t.send([144+e,a,o],1e3*r)}},o.chordOff=function(e,n,o){for(var r=0;n.length>r;r++){var i=n[r];t.send([128+e,i,0],1e3*o)}},o.stopAllNotes=function(){t.cancel();for(var e=0;16>e;e++)t.send([176+e,123,0])},o.connect=function(r){e.setDefaultPlugin(o);var i=function(){if(window.AudioContext)r.api="webaudio";else{if(!window.Audio)return;r.api="audiotag"}e.loadPlugin(r)};navigator.requestMIDIAccess().then(function(e){n=e;var o=n.outputs;t="function"==typeof o?o()[0]:o[0],void 0===t?i():r.onsuccess&&r.onsuccess()},i)}}(MIDI),"undefined"==typeof MIDI&&(MIDI={}),function(e){var n=e.util||(e.util={});if(n.request=function(n,o,r,i){"use strict";"string"==typeof n&&(n={url:n});var a=n.data,u=n.url,s=n.method||(n.data?"POST":"GET"),c=n.format,l=n.headers,d=n.responseType,f=n.withCredentials||!1,o=o||n.onsuccess,r=r||n.onerror,i=i||n.onprogress;if(t!==void 0&&e.loc.isLocalUrl(u))return t.readFile(u,"utf8",function(e,n){e?r&&r(e):o&&o({responseText:n})}),void 0;var A=new XMLHttpRequest;if(A.open(s,u,!0),l)for(var p in l)A.setRequestHeader(p,l[p]);else a&&A.setRequestHeader("Content-type","application/x-www-form-urlencoded");return"binary"===c&&A.overrideMimeType&&A.overrideMimeType("text/plain; charset=x-user-defined"),d&&(A.responseType=d),f&&(A.withCredentials="true"),r&&"onerror"in A&&(A.onerror=r),i&&A.upload&&"onprogress"in A.upload&&(a?A.upload.onprogress=function(e){i.call(A,e,event.loaded/event.total)}:A.addEventListener("progress",function(e){var n=0;if(e.lengthComputable)n=e.total;else if(A.totalBytes)n=A.totalBytes;else{var t=parseInt(A.getResponseHeader("Content-Length-Raw"));if(!isFinite(t))return;A.totalBytes=n=t}i.call(A,e,e.loaded/n)})),A.onreadystatechange=function(n){if(4===A.readyState)if(200===A.status||304===A.status||308===A.status||0===A.status&&e.client.cordova){if(o){var t;if("xml"===c)t=n.target.responseXML;else if("text"===c)t=n.target.responseText;else if("json"===c)try{t=JSON.parse(n.target.response)}catch(i){r&&r.call(A,n)}o.call(A,n,t)}}else r&&r.call(A,n)},A.send(a),A},"undefined"!=typeof module&&module.exports){var t=require("fs");XMLHttpRequest=require("xmlhttprequest").XMLHttpRequest,module.exports=e.util.request}}(MIDI),dom===void 0)var dom={};(function(){"use strict";dom.loadScript=function(){return this.loaded={},this.loading={},this},dom.loadScript.prototype.add=function(n){var t=this;"string"==typeof n&&(n={url:n});var o=n.urls;o===void 0&&(o=[{url:n.url,verify:n.verify}]);var r=document.getElementsByTagName("head")[0],i=function(n,o){t.loaded[n.url]||o&&e(o)===!1||(t.loaded[n.url]=!0,t.loading[n.url]&&t.loading[n.url](),delete t.loading[n.url],n.onsuccess&&n.onsuccess(),f!==void 0&&f())},a=!1,u=[],s=function(e){if("string"==typeof e&&(e={url:e,verify:n.verify}),/([\w\d.\[\]\'\"])$/.test(e.verify)){var o=e.test=e.verify;if("object"==typeof o)for(var s=0;o.length>s;s++)u.push(o[s]);else u.push(o)}if(!t.loaded[e.url]){var l=document.createElement("script");l.onreadystatechange=function(){("loaded"===this.readyState||"complete"===this.readyState)&&i(e)},l.onload=function(){i(e)},l.onerror=function(){if(a=!0,delete t.loading[e.url],"object"==typeof e.test)for(var n in e.test)c(e.test[n]);else c(e.test)},l.setAttribute("type","text/javascript"),l.setAttribute("src",e.url),r.appendChild(l),t.loading[e.url]=function(){}}},c=function(e){for(var n=[],t=0;u.length>t;t++)u[t]!==e&&n.push(u[t]);u=n},l=function(t){if(t)i(t,t.test);else for(var r=0;o.length>r;r++)i(o[r],o[r].test);for(var s=!0,r=0;u.length>r;r++)e(u[r])===!1&&(s=!1);!n.strictOrder&&s?a?n.error&&n.error():n.onsuccess&&n.onsuccess():setTimeout(function(){l(t)},10)};if(n.strictOrder){var d=-1,f=function(){if(d++,o[d]){var e=o[d],r=e.url;t.loading[r]?t.loading[r]=function(){e.onsuccess&&e.onsuccess(),f()}:t.loaded[r]?f():(s(e),l(e))}else a?n.error&&n.error():n.onsuccess&&n.onsuccess()};f()}else for(var d=0;o.length>d;d++)s(o[d]),l(o[d])},dom.loadScript=new dom.loadScript;var e=function(e,n){try{e=e.split('"').join("").split("'").join("").split("]").join("").split("[").join(".");for(var t=e.split("."),o=t.length,r=n||window,i=0;o>i;i++){var a=t[i];if(null==r[a])return!1;r=r[a]}return!0}catch(u){return!1}}})(),"undefined"!=typeof module&&module.exports&&(module.exports=dom.loadScript);