if(typeof Color=="undefined")var Color={};typeof Color.Space=="undefined"&&(Color.Space={}),function(){"use strict";var useEval=!1,functions={},shortcuts={"HEX24>HSL":"HEX24>RGB>HSL","HEX32>HSLA":"HEX32>RGBA>HSLA","HEX24>CMYK":"HEX24>RGB>CMY>CMYK","RGB>CMYK":"RGB>CMY>CMYK"},root=Color.Space=function(color,route){shortcuts[route]&&(route=shortcuts[route]);var r=route.split(">");if(typeof color=="object"&&color[0]>=0){var type=r[0],tmp={};for(var i=0;i1&&(key=key.substr(key.indexOf("_")+1)),key+=(pos===0?"":"_")+r[pos],color=root[key](color),useEval&&(f="Color.Space."+key+"("+f+")");return useEval&&(functions[route]=eval("(function(color) { return "+f+" })")),color};root.RGB_W3=function(e){return"rgb("+(e.R>>0)+","+(e.G>>0)+","+(e.B>>0)+")"},root.RGBA_W3=function(e){var t=typeof e.A=="number"?e.A/255:1;return"rgba("+(e.R>>0)+","+(e.G>>0)+","+(e.B>>0)+","+t+")"},root.W3_RGB=function(e){var e=e.substr(4,e.length-5).split(",");return{R:parseInt(e[0]),G:parseInt(e[1]),B:parseInt(e[2])}},root.W3_RGBA=function(e){var e=e.substr(5,e.length-6).split(",");return{R:parseInt(e[0]),G:parseInt(e[1]),B:parseInt(e[2]),A:parseFloat(e[3])*255}},root.HSL_W3=function(e){return"hsl("+(e.H+.5>>0)+","+(e.S+.5>>0)+"%,"+(e.L+.5>>0)+"%)"},root.HSLA_W3=function(e){var t=typeof e.A=="number"?e.A/255:1;return"hsla("+(e.H+.5>>0)+","+(e.S+.5>>0)+"%,"+(e.L+.5>>0)+"%,"+t+")"},root.W3_HSL=function(e){var e=e.substr(4,e.length-5).split(",");return{H:parseInt(e[0]),S:parseInt(e[1]),L:parseInt(e[2])}},root.W3_HSLA=function(e){var e=e.substr(5,e.length-6).split(",");return{H:parseInt(e[0]),S:parseInt(e[1]),L:parseInt(e[2]),A:parseFloat(e[3])*255}},root.W3_HEX=root.W3_HEX24=function(e){return e.substr(0,1)==="#"&&(e=e.substr(1)),e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),parseInt("0x"+e)},root.W3_HEX32=function(e){return e.substr(0,1)==="#"&&(e=e.substr(1)),e.length===6?parseInt("0xFF"+e):parseInt("0x"+e)},root.HEX_W3=root.HEX24_W3=function(e,t){t||(t=6),e||(e=0);var n=e.toString(16),r=n.length;while(rt)n=n.substr(1),r--;return"#"+n},root.HEX32_W3=function(e){return root.HEX_W3(e,8)},root.HEX_RGB=root.HEX24_RGB=function(e){return{R:e>>16,G:e>>8&255,B:e&255}},root.HEX32_RGBA=function(e){return{R:e>>>16&255,G:e>>>8&255,B:e&255,A:e>>>24}},root.RGBA_HEX32=function(e){return(e.A<<24|e.R<<16|e.G<<8|e.B)>>>0},root.RGB_HEX24=root.RGB_HEX=function(e){return e.R<0&&(e.R=0),e.G<0&&(e.G=0),e.B<0&&(e.B=0),e.R>255&&(e.R=255),e.G>255&&(e.G=255),e.B>255&&(e.B=255),e.R<<16|e.G<<8|e.B},root.RGB_CMY=function(e){return{C:1-e.R/255,M:1-e.G/255,Y:1-e.B/255}},root.RGBA_HSLA=root.RGB_HSL=function(e){var t=e.R/255,n=e.G/255,r=e.B/255,i=Math.min(t,n,r),s=Math.max(t,n,r),o=s-i,u,a,f=(s+i)/2;if(o===0)u=0,a=0;else{f<.5?a=o/(s+i):a=o/(2-s-i);var l=((s-t)/6+o/2)/o,c=((s-n)/6+o/2)/o,h=((s-r)/6+o/2)/o;t===s?u=h-c:n===s?u=1/3+l-h:r===s&&(u=2/3+c-l),u<0&&(u+=1),u>1&&(u-=1)}return{H:u*360,S:a*100,L:f*100,A:e.A}},root.RGBA_HSVA=root.RGB_HSV=function(e){var t=e.R/255,n=e.G/255,r=e.B/255,i=Math.min(t,n,r),s=Math.max(t,n,r),o=s-i,u,a,f=s;if(o===0)u=0,a=0;else{a=o/s;var l=((s-t)/6+o/2)/o,c=((s-n)/6+o/2)/o,h=((s-r)/6+o/2)/o;t===s?u=h-c:n===s?u=1/3+l-h:r===s&&(u=2/3+c-l),u<0&&(u+=1),u>1&&(u-=1)}return{H:u*360,S:a*100,V:f*100,A:e.A}},root.CMY_RGB=function(e){return{R:Math.max(0,(1-e.C)*255),G:Math.max(0,(1-e.M)*255),B:Math.max(0,(1-e.Y)*255)}},root.CMY_CMYK=function(e){var t=e.C,n=e.M,r=e.Y,i=Math.min(r,Math.min(n,Math.min(t,1)));return t=Math.round((t-i)/(1-i)*100),n=Math.round((n-i)/(1-i)*100),r=Math.round((r-i)/(1-i)*100),i=Math.round(i*100),{C:t,M:n,Y:r,K:i}},root.CMYK_CMY=function(e){return{C:e.C*(1-e.K)+e.K,M:e.M*(1-e.K)+e.K,Y:e.Y*(1-e.K)+e.K}},root.HSLA_RGBA=root.HSL_RGB=function(e){var t=e.H/360,n=e.S/100,r=e.L/100,i,s,o,u,a,f;return n===0?i=s=o=r:(r<.5?a=r*(1+n):a=r+n-n*r,u=2*r-a,f=t+1/3,f<0&&(f+=1),f>1&&(f-=1),6*f<1?i=u+(a-u)*6*f:2*f<1?i=a:3*f<2?i=u+(a-u)*(2/3-f)*6:i=u,f=t,f<0&&(f+=1),f>1&&(f-=1),6*f<1?s=u+(a-u)*6*f:2*f<1?s=a:3*f<2?s=u+(a-u)*(2/3-f)*6:s=u,f=t-1/3,f<0&&(f+=1),f>1&&(f-=1),6*f<1?o=u+(a-u)*6*f:2*f<1?o=a:3*f<2?o=u+(a-u)*(2/3-f)*6:o=u),{R:i*255,G:s*255,B:o*255,A:e.A}},root.HSVA_RGBA=root.HSV_RGB=function(e){var t=e.H/360,n=e.S/100,r=e.V/100,i,s,o,u,a,f;if(n===0)i=s=o=Math.round(r*255);else{t>=1&&(t=0),t=6*t,u=t-Math.floor(t),a=Math.round(255*r*(1-n)),o=Math.round(255*r*(1-n*u)),f=Math.round(255*r*(1-n*(1-u))),r=Math.round(255*r);switch(Math.floor(t)){case 0:i=r,s=f,o=a;break;case 1:i=o,s=r,o=a;break;case 2:i=a,s=r,o=f;break;case 3:i=a,s=o,o=r;break;case 4:i=f,s=a,o=r;break;case 5:i=r,s=a,o=o}}return{R:i,G:s,B:o,A:e.A}}}();if(typeof MIDI=="undefined")var MIDI={};(function(){"use strict";var e={},t=function(t){var n=new Audio,r=t.split(";")[0];n.id="audio",n.setAttribute("preload","auto"),n.setAttribute("audiobuffer",!0),n.addEventListener("canplaythrough",function(){e[r]=!0},!1),n.src="data:"+t,document.body.appendChild(n)};MIDI.audioDetect=function(n){if(typeof Audio=="undefined")return n({});var r=new Audio;if(typeof r.canPlayType=="undefined")return n(e);var i=r.canPlayType('audio/ogg; codecs="vorbis"');i=i==="probably"||i==="maybe";var s=r.canPlayType("audio/mpeg");s=s==="probably"||s==="maybe";if(!i&&!s){n(e);return}i&&t("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="),s&&t("audio/mpeg;base64,/+MYxAAAAANIAUAAAASEEB/jwOFM/0MM/90b/+RhST//w4NFwOjf///PZu////9lns5GFDv//l9GlUIEEIAAAgIg8Ir/JGq3/+MYxDsLIj5QMYcoAP0dv9HIjUcH//yYSg+CIbkGP//8w0bLVjUP///3Z0x5QCAv/yLjwtGKTEFNRTMuOTeqqqqqqqqqqqqq/+MYxEkNmdJkUYc4AKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq");var o=(new Date).getTime(),u=window.setInterval(function(){for(var t in e);var r=(new Date).getTime(),i=r-o>5e3;if(t||i)window.clearInterval(u),n(e)},1)}})();if(typeof MIDI=="undefined")var MIDI={};typeof MIDI.Soundfont=="undefined"&&(MIDI.Soundfont={}),function(){"use strict";MIDI.loadPlugin=function(n){typeof n=="function"&&(n={callback:n});var r=n.instruments||n.instrument||"acoustic_grand_piano";typeof r!="object"&&(r=[r]),r.map(function(e){return typeof e=="number"&&(e=MIDI.GeneralMIDI.byId[e]),MIDI.Soundfont[e]=!0,e}),MIDI.audioDetect(function(i){var s="";typeof s=="undefined"&&(t[window.location.hash]?s=window.location.hash.substr(1):s=""),s===""&&(window.webkitAudioContext?s="webaudio":window.Audio?s="audiotag":s="flash");if(!e[s])return;var o=i["audio/ogg"]?"ogg":"mp3";e[s](o,r,n.callback)})};var e={};e.java=function(e,t,n){if(typeof r=="undefined")var r;r&&r.message("Soundfont (500KB)
Java Interface..."),MIDI.Java.connect(n)},e.flash=function(e,t,n){if(typeof r=="undefined")var r;r&&r.message("Soundfont (2MB)
Flash Interface..."),DOMLoader.script.add({src:"./inc/SoundManager2/script/soundmanager2.js",verify:"SoundManager",callback:function(){MIDI.Flash.connect(n)}})},e.audiotag=function(e,t,r){if(typeof i=="undefined")var i;var s=n({items:t,getNext:function(t){DOMLoader.sendRequest({url:"./soundfont/"+t+"-"+e+".js",onload:function(e){MIDI.Soundfont[t]=JSON.parse(e.responseText),i&&i.message("Downloading",100),s.getNext()},onprogress:function(e){var t=Math.round(e.loaded/e.total*100);i&&i.message("Downloading",t)}})},onComplete:function(){MIDI.AudioTag.connect(r)}})},e.webaudio=function(e,t,r){var i=n({items:t,getNext:function(t){DOMLoader.sendRequest({url:"./soundfont/"+t+"-"+e+".js",onload:function(e){MIDI.Soundfont[t]=JSON.parse(e.responseText),loader&&loader.message("Downloading",100),i.getNext()},onprogress:function(e){var t=Math.round(e.loaded/e.total*100);loader&&loader.message("Downloading",t)}})},onComplete:function(){MIDI.WebAudioAPI.connect(r)}})};var t={"#webaudio":!0,"#audiotag":!0,"#java":!0,"#flash":!0},n=function(e){var t={};t.queue=[];for(var n in e.items)t.queue.push(e.items[n]);return t.getNext=function(){if(!t.queue.length)return e.onComplete();e.getNext(t.queue.shift())},setTimeout(t.getNext,1),t}}();if(typeof MIDI=="undefined")var MIDI={};typeof MIDI.Player=="undefined"&&(MIDI.Player={}),function(){"use strict";var e=MIDI.Player;e.callback=undefined,e.currentTime=0,e.endTime=0,e.restart=0,e.playing=!1,e.timeWarp=1,e.start=e.resume=function(){e.currentTime<-1&&(e.currentTime=-1),f(e.currentTime)},e.pause=function(){var t=e.restart;l(),e.restart=t},e.stop=function(){l(),e.restart=0,e.currentTime=0},e.addListener=function(e){s=e},e.removeListener=function(){s=undefined},e.clearAnimation=function(){e.interval&&window.clearInterval(e.interval)},e.setAnimation=function(t){var n=typeof t=="function"?t:t.callback,r=t.interval||30,s=0,o=0,u=0;e.clearAnimation(),e.interval=window.setInterval(function(){if(e.endTime===0)return;e.playing?(s=u===e.currentTime?o-(new Date).getTime():0,e.currentTime===0?s=0:s=e.currentTime-s,u!==e.currentTime&&(o=(new Date).getTime(),u=e.currentTime)):s=e.currentTime;var t=e.endTime,r=s/t,a=s/1e3,f=a/60,l=a-f*60,c=f*60+l,h=t/1e3;if(h-c<-1)return;n({now:c,end:h,events:i})},r)},e.loadMidiFile=function(){e.replayer=new Replayer(MidiFile(e.currentData),e.timeWarp),e.data=e.replayer.getData(),e.endTime=a()},e.loadFile=function(t,n){e.stop();if(t.indexOf("base64,")!==-1){var r=window.atob(t.split(",")[1]);e.currentData=r,e.loadMidiFile(),n&&n(r);return}var i=t.split(" - ")[1]||t;document.getElementById("playback-title").innerHTML=i.replace(".mid","");var s=new XMLHttpRequest;s.open("GET",t),s.overrideMimeType("text/plain; charset=x-user-defined"),s.onreadystatechange=function(){if(this.readyState===4&&this.status===200){var t=this.responseText||"",r=[],i=t.length,s=String.fromCharCode;for(var o=0;oProcessing: "+(r/87*100>>0)+"%
"+l),n.id=f,i[r]=n;if(i.length===t.length){while(i.length){n=i.pop();if(!n)continue;var c=MIDI.keyToNote[n.id];s[a+""+c]=n}o(e)}})};t.setVolume=function(e){i=e},t.programChange=function(e,t){MIDI.channels[e].instrument=t},t.noteOn=function(e,t,o,u){if(!MIDI.channels[e])return;var a=MIDI.channels[e].instrument;if(!s[a+""+t])return;u>0,s=n[r%12]+i;MIDI.keyToNote[s]=r,MIDI.noteToKey[r]=s}}()}();var invertObject=function(e){if(e.length){var t={};for(var n=0;n1&&(n.indexOf(t[i][0])!=-1||n.indexOf(t[i][1])!=-1?r>0?t[i]=t[i][0]+"#":t[i]=t[i][1]+"b":t[i]=t[i][0]+"#");Piano.keySignature=t},e.tempoFromTap=function(e){function t(e){var t={200:"Prestissimo",168:"Presto",140:"Vivace",120:"Allegro",112:"Allegretto",101:"Moderato",76:"Andante",66:"Adagio",60:"Larghetto",40:"Lento",0:"Larghissimo"};for(var n=0,r="";n<250;n++){t[n]&&(r=t[n]);if(e>0)+"bmp "+t(r)}e.tap=(new Date).getTime()},e.findChord=function(e){function t(e){var t={};for(var n in e){var r={};for(var i in e[n])r[e[n][i]]=1;t[n]=r}return t}var n={},r="0 3".split(" "),i=t(Piano.chords);for(var s in i)for(var o=0,u=r.length;o0&&(i+="-"+(e[u]-a));var a=e[u],f=Piano.calculateNote(a)%12,l=Piano.keySignature[f],c=Piano.Color[Piano.HSL].english[f];s+=", "+MusicTheory.Solfege[l].syllable,o+=", "+a,n+=", "+l,r+=", "+t[a]}console.log("notes: "+n.substr(2)+"
"+"solfege: "+s.substr(2)+"
"+"intervals: "+r.substr(2)+"
"+"keys: "+o.substr(2)+"
"+"gaps: "+i.substr(1))}}();if(typeof MusicTheory=="undefined")var MusicTheory={};typeof MusicTheory.Synesthesia=="undefined"&&(MusicTheory.Synesthesia={}),function(e){e.data={"Isaac Newton (1704)":{ref:"Gerstner, p.167",english:["red",null,"orange",null,"yellow","green",null,"blue",null,"indigo",null,"violet"],0:[0,96,51],1:[0,0,0],2:[29,94,52],3:[0,0,0],4:[60,90,60],5:[135,76,32],6:[0,0,0],7:[248,82,28],8:[0,0,0],9:[302,88,26],10:[0,0,0],11:[325,84,46]},"Louis Bertrand Castel (1734)":{ref:"Peacock, p.400",english:["blue","blue-green","green","olive green","yellow","yellow-orange","orange","red","crimson","violet","agate","indigo"],0:[248,82,28],1:[172,68,34],2:[135,76,32],3:[79,59,36],4:[60,90,60],5:[49,90,60],6:[29,94,52],7:[360,96,51],8:[1,89,33],9:[325,84,46],10:[273,80,27],11:[302,88,26]},"George Field (1816)":{ref:"Klein, p.69",english:["blue",null,"purple",null,"red","orange",null,"yellow",null,"yellow green",null,"green"],0:[248,82,28],1:[0,0,0],2:[302,88,26],3:[0,0,0],4:[360,96,51],5:[29,94,52],6:[0,0,0],7:[60,90,60],8:[0,0,0],9:[79,59,36],10:[0,0,0],11:[135,76,32]},"D. D. Jameson (1844)":{ref:"Jameson, p.12",english:["red","red-orange","orange","orange-yellow","yellow","green","green-blue","blue","blue-purple","purple","purple-violet","violet"],0:[360,96,51],1:[14,91,51],2:[29,94,52],3:[49,90,60],4:[60,90,60],5:[135,76,32],6:[172,68,34],7:[248,82,28],8:[273,80,27],9:[302,88,26],10:[313,78,37],11:[325,84,46]},"Theodor Seemann (1881)":{ref:"Klein, p.86",english:["carmine","scarlet","orange","yellow-orange","yellow","green","green blue","blue","indigo","violet","brown","black"],0:[0,58,26],1:[360,96,51],2:[29,94,52],3:[49,90,60],4:[60,90,60],5:[135,76,32],6:[172,68,34],7:[248,82,28],8:[302,88,26],9:[325,84,46],10:[0,58,26],11:[0,0,3]},"A. Wallace Rimington (1893)":{ref:"Peacock, p.402",english:["deep red","crimson","orange-crimson","orange","yellow","yellow-green","green","blueish green","blue-green","indigo","deep blue","violet"],0:[360,96,51],1:[1,89,33],2:[14,91,51],3:[29,94,52],4:[60,90,60],5:[79,59,36],6:[135,76,32],7:[163,62,40],8:[172,68,34],9:[302,88,26],10:[248,82,28],11:[325,84,46]},"Bainbridge Bishop (1893)":{ref:"Bishop, p.11",english:["red","orange-red or scarlet","orange","gold or yellow-orange","yellow or green-gold","yellow-green","green","greenish-blue or aquamarine","blue","indigo or violet-blue","violet","violet-red","red"],0:[360,96,51],1:[1,89,33],2:[29,94,52],3:[50,93,52],4:[60,90,60],5:[73,73,55],6:[135,76,32],7:[163,62,40],8:[302,88,26],9:[325,84,46],10:[343,79,47],11:[360,96,51]},"H. von Helmholtz (1910)":{ref:"Helmholtz, p.22",english:["yellow","green","greenish blue","cayan-blue","indigo blue","violet","end of red","red","red","red","red orange","orange"],0:[60,90,60],1:[135,76,32],2:[172,68,34],3:[211,70,37],4:[302,88,26],5:[325,84,46],6:[330,84,34],7:[360,96,51],8:[10,91,43],9:[10,91,43],10:[8,93,51],11:[28,89,50]},"Alexander Scriabin (1911)":{ref:"Jones, p.104",english:["red","violet","yellow","steely with the glint of metal","pearly blue the shimmer of moonshine","dark red","bright blue","rosy orange","purple","green","steely with a glint of metal","pearly blue the shimmer of moonshine"],0:[360,96,51],1:[325,84,46],2:[60,90,60],3:[245,21,43],4:[211,70,37],5:[1,89,33],6:[248,82,28],7:[29,94,52],8:[302,88,26],9:[135,76,32],10:[245,21,43],11:[211,70,37]},"Adrian Bernard Klein (1930)":{ref:"Klein, p.209",english:["dark red","red","red orange","orange","yellow","yellow green","green","blue-green","blue","blue violet","violet","dark violet"],0:[0,91,40],1:[360,96,51],2:[14,91,51],3:[29,94,52],4:[60,90,60],5:[73,73,55],6:[135,76,32],7:[172,68,34],8:[248,82,28],9:[292,70,31],10:[325,84,46],11:[330,84,34]},"August Aeppli (1940)":{ref:"Gerstner, p.169",english:["red",null,"orange",null,"yellow",null,"green","blue-green",null,"ultramarine blue","violet","purple"],0:[0,96,51],1:[0,0,0],2:[29,94,52],3:[0,0,0],4:[60,90,60],5:[0,0,0],6:[135,76,32],7:[172,68,34],8:[0,0,0],9:[211,70,37],10:[273,80,27],11:[302,88,26]},"I. J. Belmont (1944)":{ref:"Belmont, p.226",english:["red","red-orange","orange","yellow-orange","yellow","yellow-green","green","blue-green","blue","blue-violet","violet","red-violet"],0:[360,96,51],1:[14,91,51],2:[29,94,52],3:[50,93,52],4:[60,90,60],5:[73,73,55],6:[135,76,32],7:[172,68,34],8:[248,82,28],9:[313,78,37],10:[325,84,46],11:[338,85,37]},"Steve Zieverink (2004)":{ref:"Cincinnati Contemporary Art Center",english:["yellow-green","green","blue-green","blue","indigo","violet","ultra violet","infra red","red","orange","yellow-white","yellow"],0:[73,73,55],1:[135,76,32],2:[172,68,34],3:[248,82,28],4:[302,88,26],5:[325,84,46],6:[326,79,24],7:[1,89,33],8:[360,96,51],9:[29,94,52],10:[62,78,74],11:[60,90,60]},"Circle of Fifths (2012)":{ref:"Stuart Wheatman",english:[],data:["#122400","#2E002E","#002914","#470000","#002142","#2E2E00","#290052","#003D00","#520029","#003D3D","#522900","#000080","#244700","#570057","#004D26","#7A0000","#003B75","#4C4D00","#47008F","#006100","#850042","#005C5C","#804000","#0000C7","#366B00","#80007F","#00753B","#B80000","#0057AD","#6B6B00","#6600CC","#008A00","#B8005C","#007F80","#B35900","#2424FF","#478F00","#AD00AD","#00994D","#F00000","#0073E6","#8F8F00","#8A14FF","#00AD00","#EB0075","#00A3A3","#E07000","#6B6BFF","#5CB800","#DB00DB","#00C261","#FF5757","#3399FF","#ADAD00","#B56BFF","#00D600","#FF57AB","#00C7C7","#FF9124","#9999FF","#6EDB00","#FF29FF","#00E070","#FF9999","#7ABDFF","#D1D100","#D1A3FF","#00FA00","#FFA3D1","#00E5E6","#FFC285","#C2C2FF","#80FF00","#FFA8FF","#00E070","#FFCCCC","#C2E0FF","#F0F000","#EBD6FF","#ADFFAD","#FFD6EB","#8AFFFF","#FFEBD6","#EBEBFF","#E0FFC2","#FFEBFF","#E5FFF2","#FFF5F5"]}},e.map=function(t){var n={},r=function(e,t){return[e[0]*.5+t[0]*.5+.5>>0,e[1]*.5+t[1]*.5+.5>>0,e[2]*.5+t[2]*.5+.5>>0]},i=e.data,s=i[t]||i["D. D. Jameson (1844)"];for(var o=0;o<=88;o++)if(s.data)n[o]={hsl:s.data[o],hex:s.data[o]};else{var u=s[(o+9)%12],a=u.H||u[0],f=u.S||u[1],l=u.L||u[2];a==f&&f==l&&(u=r(d,s[(o+10)%12]));var c=l/10,h=o/12>>0,p=l+c*h-3*c;n[o]={hsl:"hsla("+a+","+f+"%,"+p+"%, 1)",hex:Color.Space({H:a,S:f,L:p},"HSL>RGB>HEX>W3")};var d=u}return n}}(MusicTheory.Synesthesia),function(e){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.btoa||(e.btoa=function(n){n=escape(n);var r="",i,s,o="",u,a,f,l="",c=0;do i=n.charCodeAt(c++),s=n.charCodeAt(c++),o=n.charCodeAt(c++),u=i>>2,a=(i&3)<<4|s>>4,f=(s&15)<<2|o>>6,l=o&63,isNaN(s)?f=l=64:isNaN(o)&&(l=64),r=r+t.charAt(u)+t.charAt(a)+t.charAt(f)+t.charAt(l),i=s=o="",u=a=f=l="";while(c\r\nFunction IEBinaryToArray_ByteStr(Binary)\r\n IEBinaryToArray_ByteStr = CStr(Binary)\r\nEnd Function\r\nFunction IEBinaryToArray_ByteStr_Last(Binary)\r\n Dim lastIndex\r\n lastIndex = LenB(Binary)\r\n if lastIndex mod 2 Then\r\n IEBinaryToArray_ByteStr_Last = Chr( AscB( MidB( Binary, lastIndex, 1 ) ) )\r\n Else\r\n IEBinaryToArray_ByteStr_Last = \"\"\r\n End If\r\nEnd Function\r\n\r\n";document.write(IEBinaryToArray_ByteStr_Script),DOMLoader.sendRequest=function(e){function t(e){var t={};for(var n=0;n<256;n++)for(var r=0;r<256;r++)t[String.fromCharCode(n+r*256)]=String.fromCharCode(n)+String.fromCharCode(r);var i=IEBinaryToArray_ByteStr(e),s=IEBinaryToArray_ByteStr_Last(e);return i.replace(/[\s\S]/g,function(e){return t[e]})+s}var n=XMLHttpRequest();return n.open("GET",e.url,!0),e.responseType&&(n.responseType=e.responseType),e.onerror&&(n.onerror=e.onerror),e.onprogress&&(n.onprogress=e.onprogress),n.onreadystatechange=function(r){n.readyState===4&&(n.status===200?n.responseText=t(n.responseBody):n=!1,e.onload&&e.onload(n))},n.setRequestHeader("Accept-Charset","x-user-defined"),n.send(null),n}}else DOMLoader.sendRequest=function(e){var t=new XMLHttpRequest;return t.open(e.data?"POST":"GET",e.url,!0),t.overrideMimeType&&t.overrideMimeType("text/plain; charset=x-user-defined"),e.data&&t.setRequestHeader("Content-type","application/x-www-form-urlencoded"),e.responseType&&(t.responseType=e.responseType),e.onerror&&(t.onerror=e.onerror),e.onprogress&&(t.onprogress=e.onprogress),t.onreadystatechange=function(n){if(t.readyState===4){if(t.status!==200&&t.status!=304){e.onerror&&e.onerror(n,!1);return}e.onload&&e.onload(t)}},t.send(e.data),t};if(typeof Event=="undefined")var Event={};Event=function(e){"use strict";e.modifyEventListener=!1,e.modifySelectors=!1,e.add=function(e,n,r,i){return t(e,n,r,i,"add")},e.remove=function(e,n,r,i){return t(e,n,r,i,"remove")},e.stop=function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0,e.bubble=0},e.prevent=function(e){e.preventDefault&&e.preventDefault(),e.returnValue=!1},e.cancel=function(t){e.stop(t),e.prevent(t)},e.supports=function(e,t){typeof e=="string"&&(t=e,e=window),t="on"+t;if(t in e)return!0;e.setAttribute||(e=document.createElement("div"));if(e.setAttribute&&e.removeAttribute){e.setAttribute(t,"");var n=typeof e[t]=="function";return typeof e[t]!="undefined"&&(e[t]=undefined),e.removeAttribute(t),n}};var t=function(o,l,c,h,p){h=h||{};if(typeof o=="string"&&l==="ready"){var d=(new Date).getTime(),v=h.timeout,m=h.interval||1e3/60,g=setInterval(function(){(new Date).getTime()-d>v&&clearInterval(g),document.querySelector(o)&&(clearInterval(g),c())},m);return}if(typeof o=="string"){o=document.querySelectorAll(o);if(o.length===0)return r("Missing target on listener!");o.length===1&&(o=o[0])}if(o.length>0){var y={};for(var b=0,w=o.length;b=r.maxFingers){var h=[];for(var c in r.tracker)h.push(c);return n.identifier=h.join(","),s}var p=0;for(var d in o){if(o[d].up){delete o[d],i(l,c),r.cancel=!0;break}p++}if(o[c])continue;i(l,c)}else o=r.tracker={},n.bbox=r.bbox=e.getBoundingBox(r.target),r.fingers=0,r.cancel=!1,i(l,c)}var h=[];for(var c in r.tracker)h.push(c);return n.identifier=h.join(","),s},e.pointerEnd=function(e,t,n,r){var i=e.touches||[],s=i.length,o={};for(var u=0;u1)return;var s=n.changedTouches||e.getCoords(n),o=s[0],u=t.bbox,a=e.getBoundingBox(t.target);if(t.position==="relative")var f=(o.pageX+u.scrollLeft-u.x1)*u.scaleX,l=(o.pageY+u.scrollTop-u.y1)*u.scaleY;else var f=o.pageX-u.x1,l=o.pageY-u.y1;f>0&&f0&&l0&&l0&&c1)&&(a.state=t.gesture,t.listener(o,a)),clearTimeout(s),r=i=0)};var a=e.pointerSetup(t);return a.state="dblclick",Event.add(t.target,"mousedown",t.onPointerDown),a},Event.Gesture=Event.Gesture||{},Event.Gesture._gestureHandlers=Event.Gesture._gestureHandlers||{},Event.Gesture._gestureHandlers.dbltap=e.dbltap,Event.Gesture._gestureHandlers.dblclick=e.dblclick,e}(Event.proxy);if(typeof Event=="undefined")var Event={};typeof Event.proxy=="undefined"&&(Event.proxy={}),Event.proxy=function(e){"use strict";return e.dragElement=function(t,n){e.drag({event:n,target:t,position:"move",listener:function(e,n){t.style.left=n.x+"px",t.style.top=n.y+"px"}})},e.drag=function(t){t.gesture="drag",t.onPointerDown=function(r){e.pointerStart(r,n,t)&&(Event.add(t.doc,"mousemove",t.onPointerMove),Event.add(t.doc,"mouseup",t.onPointerUp)),t.onPointerMove(r,"down")},t.onPointerMove=function(r,i){var s=t.bbox,o=r.changedTouches||e.getCoords(r),u=o.length;for(var a=0;a0?x:-x,typeof c.DEG2!="undefined"&&(x>0?c.rotation+=c.DEG1-c.DEG2:c.rotation-=c.DEG1-c.DEG2,v+=c.rotation),a.push(c.move)}r.touches=a,r.fingers=n.fingers,r.scale=d/n.fingers,r.rotation=v/n.fingers,r.state="change",n.listener(i,r)},n.onPointerUp=function(t){var i=n.fingers;e.pointerEnd(t,r,n)&&(Event.remove(n.doc,"mousemove",n.onPointerMove),Event.remove(n.doc,"mouseup",n.onPointerUp)),i===n.minFingers&&n.fingersn){var w=p*g/b,E=Math.abs(w+y.value);y.value&&En.threshold&&(r.angle=-(((u/n.snap+.5>>0)*n.snap||360)-360),r.velocity=s,r.fingers=n.gestureFingers,r.state="swipe",n.listener(i,r))}};var r=e.pointerSetup(n);return Event.add(n.target,"mousedown",n.onPointerDown),r},Event.Gesture=Event.Gesture||{},Event.Gesture._gestureHandlers=Event.Gesture._gestureHandlers||{},Event.Gesture._gestureHandlers.swipe=e.swipe,e}(Event.proxy);if(typeof Event=="undefined")var Event={};typeof Event.proxy=="undefined"&&(Event.proxy={}),Event.proxy=function(e){"use strict";return e.tap=e.longpress=function(t){t.delay=t.delay||500,t.timeout=t.timeout||250;var n,r;t.onPointerDown=function(s){if(e.pointerStart(s,i,t)){n=(new Date).getTime(),Event.add(t.doc,"mousemove",t.onPointerMove).listener(s),Event.add(t.doc,"mouseup",t.onPointerUp);if(t.gesture!=="longpress")return;r=setTimeout(function(){if(s.cancelBubble&&++s.bubble>1)return;var e=0;for(var n in t.tracker){if(t.tracker[n].end===!0)return;if(t.cancel)return;e++}i.state="start",i.fingers=e,t.listener(s,i)},t.delay)}},t.onPointerMove=function(n){var r=t.bbox,i=n.changedTouches||e.getCoords(n),s=i.length;for(var o=0;o0&&l0&&c1)return;if(t.gesture==="longpress"){i.state==="start"&&(i.state="end",t.listener(s,i));return}if(t.cancel)return;if((new Date).getTime()-n>t.timeout)return;i.state="tap",i.fingers=t.gestureFingers,t.listener(s,i)}};var i=e.pointerSetup(t);return Event.add(t.target,"mousedown",t.onPointerDown),i},Event.Gesture=Event.Gesture||{},Event.Gesture._gestureHandlers=Event.Gesture._gestureHandlers||{},Event.Gesture._gestureHandlers.tap=e.tap,Event.Gesture._gestureHandlers.longpress=e.longpress,e}(Event.proxy);if(typeof Event=="undefined")var Event={};typeof Event.proxy=="undefined"&&(Event.proxy={}),Event.proxy=function(e){"use strict";return e.wheel=function(e){var t,n=e.timeout||150,r=0,i={gesture:"wheel",state:"start",wheelDelta:0,target:e.target,listener:e.listener,remove:function(){e.target[u](a,s,!1)}},s=function(s){s=s||window.event,i.state=r++?"change":"start",i.wheelDelta=s.detail?s.detail*-40:s.wheelDelta,e.listener(s,i),clearTimeout(t),t=setTimeout(function(){r=0,i.state="end",i.wheelDelta=0,e.listener(s,i)},n)},o=document.addEventListener?"addEventListener":"attachEvent",u=document.removeEventListener?"removeEventListener":"detachEvent",a=Event.supports("mousewheel")?"mousewheel":"DOMMouseScroll";return e.target[o](a,s,!1),i},Event.Gesture=Event.Gesture||{},Event.Gesture._gestureHandlers=Event.Gesture._gestureHandlers||{},Event.Gesture._gestureHandlers.wheel=e.wheel,e}(Event.proxy);