// SoundScribeWeb.js
(function($){
Type.registerNamespace('SoundScribe');SoundScribe.AudioReadyState=function(){};SoundScribe.AudioReadyState.prototype = {nothing:0,metadata:1,current:2,future:3,enough:4}
SoundScribe.AudioReadyState.registerEnum('SoundScribe.AudioReadyState',false);SoundScribe.AudioMixer=function(){this.$1=[];this.$2=40;}
SoundScribe.AudioMixer.prototype={$0:null,$1:null,$2:0,$3:0,$4:false,$5:null,get_isPlaying:function(){return this.$4;},get_isRecording:function(){return this.$4&&(this.$5!=null);},get_tracks:function(){return this.$1;},get_selectedTrack:function(){var $enum1=ss.IEnumerator.getEnumerator(this.get_tracks());while($enum1.moveNext()){var $0=$enum1.current;if($0.$9){return $0;}}return null;},get_syncWidth:function(){return this.$2;},set_syncWidth:function(value){this.$2=value;return value;},mixTracks:function(){this.$0=new SoundScribe.AudioTrack(null,null);for(var $0=0;$0<this.$1.length;$0++){if(this.$1[$0].$6){this.$5=this.$1[$0];}else{this.$0.$13(this.$1[$0]);}}this.$0.normalize(0);this.$0.$14(this.$2);},capture:function(e){if(this.$5!=null){e.segment.setVolume(this.$5.$C);e.segment.play();this.$5.capture(e);}},play:function(){if(this.$5!=null){SoundScribe.AudioTrack.$1A(this.$5);}if(this.$0!=null){this.$0.play();}this.$3=SoundScribe.Tools.getTimeStamp();SoundScribe.Tools.getClock().start();this.$4=true;},stop:function(){SoundScribe.Tools.getClock().stop();this.$4=false;if(this.$0!=null){this.$0.stop();}if(this.$5!=null){SoundScribe.AudioTrack.$15(this.$5);this.$5.normalize(this.$3);this.$5.updateLength();this.$5=null;}},reset:function(){if(this.$0!=null){this.$0.reset();}SoundScribe.Tools.getClock().set_currentTime(0);},$6:function($p0){var $0=Math.floor($p0/2);var $enum1=ss.IEnumerator.getEnumerator(this.$0.$E);while($enum1.moveNext()){var $1=$enum1.current;var $2=$1.timeStamp%$p0;if($2<$0){$1.timeStamp-=$2;}else{$1.timeStamp+=($p0-$2);}}}}
SoundScribe.AudioTrack=function(type,name){this.$E=[];this.$0=SoundScribe.Tools.getClock();this.$2=0;if(type!=null&&name!=null){this.$F=$('<div class=\"track\">'+'<div class=\"type\">'+type+'</div>'+'<div class=\"name\">'+name+'</div>'+'<div class=\"ctlMute\">MUTE</div>'+'<div class=\"ctlSolo\">SOLO</div>'+'<div class=\"delete\"></div>'+'<div class=\"length\">Empty</div>'+'</div>');this.$F.click(ss.Delegate.create(this,function($p1_0){
SoundScribe.AudioTrack.$1A(this);}));this.$F.find('.name').click(ss.Delegate.create(this,function($p1_0){
$p1_0.stopPropagation();SoundScribe.AudioTrack.$1B(this);}));this.$F.find('.ctlMute').click(ss.Delegate.create(this,function($p1_0){
SoundScribe.AudioTrack.$16(this);}));this.$F.find('.ctlSolo').click(ss.Delegate.create(this,function($p1_0){
SoundScribe.AudioTrack.$17(this);}));this.$F.find('.delete').click(ss.Delegate.create(this,function($p1_0){
SoundScribe.AudioTrack.$18(this);}));this.$10=$('<div class=\"fader\">'+'<div class=\"name\">'+name+'</div>'+'<div class=\"ctlRecord\">RECORD</div>'+'<div class=\"ctlVolume\">'+'<div class=\"plus10\">+10 dB -</div>'+'<div class=\"zeroDb\">0 dB -</div>'+'<div class=\"minus10\">-10 dB -</div>'+'<div class=\"knob\"></div>'+'</div>'+'</div>');this.$10.click(ss.Delegate.create(this,function($p1_0){
SoundScribe.AudioTrack.$1A(this);}));this.$10.find('.ctlRecord').click(ss.Delegate.create(this,function($p1_0){
SoundScribe.AudioTrack.$15(this);}));this.$10.find('.knob').mousedown(ss.Delegate.create(this,function($p1_0){
SoundScribe.AudioTrack.$19(this,$p1_0.pageY);}));this.$10.find('.knob').bind('dragstart',function($p1_0){
$p1_0.preventDefault();});}}
SoundScribe.AudioTrack.$15=function($p0){if(SoundScribe.Tools.getMixer().get_isPlaying()){return;}var $0=false;var $1=null;var $enum1=ss.IEnumerator.getEnumerator(SoundScribe.Tools.getMixer().get_tracks());while($enum1.moveNext()){var $2=$enum1.current;if($2.$6){$1=$2;}if($2===$p0){if($2.$6){$2.$6=false;$2.$10.find('.ctlRecord').css('background-image','url(\'Images/record_off.png\')');}else{$2.$6=true;$0=true;$2.$10.find('.ctlRecord').css('background-image','url(\'Images/record_on.png\')');}}}if($0&&$1!=null){$1.$6=false;$1.$10.find('.ctlRecord').css('background-image','url(\'Images/record_off.png\')');}}
SoundScribe.AudioTrack.$16=function($p0){$p0.$7=!$p0.$7;$p0.$F.find('.ctlMute').css('background-image','url(\'Images/mute_'+(($p0.$7)?'on':'off')+'.png\')');}
SoundScribe.AudioTrack.$17=function($p0){$p0.$8=!$p0.$8;$p0.$F.find('.ctlSolo').css('background-image','url(\'Images/solo_'+(($p0.$8)?'on':'off')+'.png\')');if($p0.$8){SoundScribe.AudioTrack.$B=true;}else{var $enum1=ss.IEnumerator.getEnumerator(SoundScribe.Tools.getMixer().get_tracks());while($enum1.moveNext()){var $0=$enum1.current;if($0.$8){return;}}SoundScribe.AudioTrack.$B=false;}}
SoundScribe.AudioTrack.$18=function($p0){if(SoundScribe.Tools.getMixer().get_isPlaying()){return;}$p0.$F.fadeOut();$p0.$10.fadeOut();window.setTimeout(function(){
$p0.remove();},400);}
SoundScribe.AudioTrack.$19=function($p0,$p1){var $0=$p0.$10.find('.knob');var $1=parseInt($0.css('top').replaceAll('px',''));$0.bind('mousemove',function($p1_0){
var $1_0=($1-($p1-$p1_0.pageY));if($1_0>-4&&$1_0<112){$0.css('top',($1-($p1-$p1_0.pageY))+'px');}});$(document).mouseup(function($p1_0){
$0.unbind('mousemove');var $1_0=parseInt($0.css('top').replaceAll('px',''));var $1_1=(Math.abs($1_0-111)/114);if($1_1>1){$1_1=1;}else if($1_1<0){$1_1=0;}$p0.$C=$1_1;$(document).unbind($p1_0);});}
SoundScribe.AudioTrack.$1A=function($p0){var $0=SoundScribe.Tools.getMixer();if($0==null){return;}if(!$0.get_isRecording()){var $enum1=ss.IEnumerator.getEnumerator($0.get_tracks());while($enum1.moveNext()){var $1=$enum1.current;$1.$F.removeClass('selected');$1.$10.removeClass('selected');$1.$9=false;}$p0.$F.addClass('selected');$p0.$10.addClass('selected');$p0.$9=true;SoundScribe.Instrument.set_current($p0.$D);}}
SoundScribe.AudioTrack.$1B=function($p0){if(SoundScribe.Tools.getMixer().get_isPlaying()){return;}if($p0.$A){return;}$p0.$A=true;var $0=$p0.$F.find('.name');var $1=$0.html();var $2=$('<input type=\"text\" value=\"'+$1+'\" class=\"nameInput\" />');var $3=function($p1_0){
var $1_0=$2.val();if($1_0==null||$1_0.trim()===''){$1_0=$1;}$0.empty();$0.html($1_0);var $1_1=$p0.$10.find('.name');$1_1.empty();$1_1.html($1_0);$p0.$A=false;};$2.keydown(function($p1_0){
$p1_0.stopPropagation();});$2.blur(function($p1_0){
$p1_0.stopPropagation();$3($p1_0);});$2.keypress(function($p1_0){
$p1_0.stopPropagation();var $1_0=parseInt($p1_0.which);if($1_0===13||$1_0===9){$3($p1_0);}});$(document).click(function($p1_0){
if($p1_0.target===$0[0]||$p1_0.target===$0[0].childNodes[0]){return;}$3($p1_0);$(document).unbind($p1_0);});$0.empty();$0.append($2);$2.focus();}
SoundScribe.AudioTrack.prototype={$0:null,$1:false,$2:0,$3:0,$4:0,$5:false,$6:false,$7:false,$8:false,$9:false,$A:false,$C:0,$D:null,$E:null,$F:null,$10:null,display:function(){SoundScribe.PageBinding.$0.append(this.$F);SoundScribe.PageBinding.$1.append(this.$10);},remove:function(){if(this.$F!=null){this.$F.remove();}if(this.$10!=null){this.$10.remove();}SoundScribe.Tools.getMixer().get_tracks().remove(this);},capture:function(audioEvent){audioEvent.original=this;this.$E.add(audioEvent);},normalize:function(refTime){if(this.$E.length<1){return;}this.$E.sort(function($p1_0,$p1_1){
return ($p1_0.timeStamp-$p1_1.timeStamp);});for(var $0=0;$0<this.$E.length;$0++){this.$E[$0].timeStamp-=refTime;}},play:function(){if(this.$1||(this.$2>=this.$E.length-1)){return;}this.$1=true;this.$3=this.$E[this.$2].timeStamp;this.$4=SoundScribe.Tools.getTimeStamp();this.$0.add_tick(ss.Delegate.create(this,this.$11));this.$5=true;},stop:function(){this.$1=false;if(this.$5){this.$0.remove_tick(ss.Delegate.create(this,this.$11));this.$5=false;}},reset:function(){this.$2=0;},updateLength:function(){var $0='Empty';if(this.$E.length>0){var $1=this.$E[this.$E.length-1];var $2=($1.timeStamp+$1.segment.get_duration())/1000;var $3=Math.floor($2%60);$2/=60;var $4=Math.floor($2%60);$0=$4+'m '+$3+'s';}this.$F.find('.length').html($0);},$11:function($p0){if(!this.$1){return;}var $0=this.$E[this.$2];if($0==null){this.stop();return;}if($p0.timeStamp>$0.timeStamp){if(($p0.timeStamp-10)<=$0.timeStamp){this.$12($0);}else if($p0.timeStamp>($0.timeStamp+$0.segment.get_duration())){this.$2++;}else{var $1=$0.timeStamp-$p0.timeStamp;$0.segment.set_currentTime($1);this.$12($0);}}else{if(($p0.timeStamp+10)>=$0.timeStamp){this.$12($0);}}},$12:function($p0){if(!$p0.original.$7){if($p0.original.$8||!SoundScribe.AudioTrack.$B){$p0.segment.setVolume($p0.original.$C);$p0.instrument.onEventPlaying($p0);$p0.segment.play();}}this.$2++;if(this.$2>=this.$E.length){this.stop();}while((this.$2<this.$E.length)&&(this.$E[this.$2].timeStamp-10)<=this.$E[this.$2-1].timeStamp){var $0=this.$E[this.$2];if(!$0.original.$7){if($0.original.$8||!SoundScribe.AudioTrack.$B){$0.instrument.onEventPlaying($0);$0.segment.play();}}this.$2++;}},$13:function($p0){for(var $0=0;$0<$p0.$E.length;$0++){this.$E.add($p0.$E[$0]);}},$14:function($p0){if(this.$E.length<2){return;}var $0=this.$E[0];var $1=this.$E[1];for(var $2=2;$2<this.$E.length;$2++){if(($1.timeStamp-$0.timeStamp)<=$p0){$1.timeStamp=$0.timeStamp;}$0=$1;$1=this.$E[$2];}}}
SoundScribe.AudioEvent=function(){}
SoundScribe.AudioEvent.prototype={segment:null,timeStamp:0,original:null,instrument:null}
SoundScribe.KeyBinding=function(){}
SoundScribe.KeyBinding.prototype={keyCode:null,displayName:null,displayValue:null,segment:null}
SoundScribe.Instrument=function(){this._segments=[];}
SoundScribe.Instrument.get_current=function(){return SoundScribe.Instrument.$0;}
SoundScribe.Instrument.set_current=function(value){SoundScribe.Instrument.$0=value;var $0=SoundScribe.PageBinding.$F;$0.empty();var $enum1=ss.IEnumerator.getEnumerator(SoundScribe.Instrument.$0.get_keyBindings());while($enum1.moveNext()){var $1=$enum1.current;$('<div>'+$1.displayName+' :: '+$1.displayValue+'</div>').appendTo($0);}return value;}
SoundScribe.Instrument.prototype={$1:null,_baseUrl:'http://www.soundscribe.com/instruments/',_segments:null,$2:0,add_ready:function(value){this.$3=ss.Delegate.combine(this.$3,value);},remove_ready:function(value){this.$3=ss.Delegate.remove(this.$3,value);},$3:null,createEvent:function(keyCode,timeStamp){if(this.$1==null){this.$5();}var $0=this.$1[keyCode];if($0==null){return null;}var $1=new SoundScribe.AudioEvent();$1.timeStamp=timeStamp;$1.instrument=this;$1.segment=$0;return $1;},play:function(keyCode){if(this.$1==null){this.$5();}var $0=this.$1[keyCode];if($0==null){return;}var $1=SoundScribe.Tools.getMixer().get_selectedTrack();if($1!=null){$0.setVolume($1.$C);}this.onEventPlaying(this.createEvent(keyCode,0));$0.play();},onEventPlaying:function(e){},monitorLoading:function(){if(this.$2>0){window.clearInterval(this.$2);}this.$2=window.setInterval(ss.Delegate.create(this,this.$4),200);},$4:function(){var $0=true;var $enum1=ss.IEnumerator.getEnumerator(this._segments);while($enum1.moveNext()){var $1=$enum1.current;if(!$1.get_isLoaded()){$0=false;break;}}if($0){window.clearInterval(this.$2);if(this.$3!=null){this.$3();}}},$5:function(){this.$1={};var $0=this.get_keyBindings();if($0==null||$0.length===0){return;}var $enum1=ss.IEnumerator.getEnumerator($0);while($enum1.moveNext()){var $1=$enum1.current;for(var $2=0;$2<$1.keyCode.length;$2++){this.$1[$1.keyCode[$2]]=$1.segment;}}}}
SoundScribe.DrumSet=function(){SoundScribe.DrumSet.initializeBase(this);this.$6=this._baseUrl+'DrumSet/';this.$7=new SoundScribe.AudioSegment();this.$7.initialize(this.$6,'kick');this._segments.add(this.$7);this.$8=new SoundScribe.AudioSegment();this.$8.initialize(this.$6,'hihat');this._segments.add(this.$8);this.$9=new SoundScribe.AudioSegment();this.$9.initialize(this.$6,'snare');this._segments.add(this.$9);this.$A=new SoundScribe.AudioSegment();this.$A.initialize(this.$6,'ride');this._segments.add(this.$A);var $0=new SoundScribe.KeyBinding();$0.keyCode=new Array(1);$0.keyCode[0]=32;$0.displayName='Kick Drum';$0.displayValue='Space';$0.segment=this.$7;var $1=new SoundScribe.KeyBinding();$1.keyCode=new Array(3);$1.keyCode[0]=68;$1.keyCode[1]=83;$1.keyCode[2]=70;$1.displayName='Snare Drum';$1.displayValue='S, D, or F';$1.segment=this.$9;var $2=new SoundScribe.KeyBinding();$2.keyCode=new Array(3);$2.keyCode[0]=74;$2.keyCode[1]=75;$2.keyCode[2]=76;$2.displayName='Hi-Hat';$2.displayValue='J, K, or L';$2.segment=this.$8;var $3=new SoundScribe.KeyBinding();$3.keyCode=new Array(3);$3.keyCode[0]=85;$3.keyCode[1]=73;$3.keyCode[2]=79;$3.displayName='Ride';$3.displayValue='U, I, or O';$3.segment=this.$A;this.$B=[];this.$B.add($0);this.$B.add($1);this.$B.add($2);this.$B.add($3);this.monitorLoading();SoundScribe.DrumSet.$C[12]=1;SoundScribe.DrumSet.$C[13]=2;SoundScribe.DrumSet.$C[14]=3;SoundScribe.DrumSet.$C[15]=4;SoundScribe.DrumSet.$D[0]=4;SoundScribe.DrumSet.$D[1]=3;SoundScribe.DrumSet.$D[2]=2;SoundScribe.DrumSet.$D[3]=1;SoundScribe.DrumSet.$E[4]=1;SoundScribe.DrumSet.$E[5]=2;SoundScribe.DrumSet.$E[6]=3;SoundScribe.DrumSet.$E[7]=4;SoundScribe.DrumSet.$E[8]=4;SoundScribe.DrumSet.$E[9]=3;SoundScribe.DrumSet.$E[10]=2;SoundScribe.DrumSet.$E[11]=1;}
SoundScribe.DrumSet.prototype={$6:null,$7:null,$8:null,$9:null,$A:null,$B:null,get_name:function(){return 'Drums';},get_keyBindings:function(){return this.$B;},onEventPlaying:function(e){}}
SoundScribe.Bass=function(){SoundScribe.Bass.initializeBase(this);this.$6=this._baseUrl+'Bass/';this._c=new SoundScribe.AudioSegment();this._c.initialize(this.$6,'Bass-C');this._segments.add(this._c);this._d=new SoundScribe.AudioSegment();this._d.initialize(this.$6,'Bass-D');this._segments.add(this._d);this._e=new SoundScribe.AudioSegment();this._e.initialize(this.$6,'Bass-E');this._segments.add(this._e);this._f=new SoundScribe.AudioSegment();this._f.initialize(this.$6,'Bass-F');this._segments.add(this._f);this._g=new SoundScribe.AudioSegment();this._g.initialize(this.$6,'Bass-G');this._segments.add(this._g);this._a=new SoundScribe.AudioSegment();this._a.initialize(this.$6,'Bass-A');this._segments.add(this._a);this._b=new SoundScribe.AudioSegment();this._b.initialize(this.$6,'Bass-B');this._segments.add(this._b);var $0=new SoundScribe.KeyBinding();$0.keyCode=new Array(1);$0.keyCode[0]=65;$0.displayName='C Note';$0.displayValue='A';$0.segment=this._c;var $1=new SoundScribe.KeyBinding();$1.keyCode=new Array(1);$1.keyCode[0]=83;$1.displayName='D Note';$1.displayValue='S';$1.segment=this._d;var $2=new SoundScribe.KeyBinding();$2.keyCode=new Array(1);$2.keyCode[0]=68;$2.displayName='E Note';$2.displayValue='D';$2.segment=this._e;var $3=new SoundScribe.KeyBinding();$3.keyCode=new Array(1);$3.keyCode[0]=70;$3.displayName='F Note';$3.displayValue='F';$3.segment=this._f;var $4=new SoundScribe.KeyBinding();$4.keyCode=new Array(1);$4.keyCode[0]=71;$4.displayName='G Note';$4.displayValue='G';$4.segment=this._g;var $5=new SoundScribe.KeyBinding();$5.keyCode=new Array(1);$5.keyCode[0]=72;$5.displayName='A Note';$5.displayValue='H';$5.segment=this._a;var $6=new SoundScribe.KeyBinding();$6.keyCode=new Array(1);$6.keyCode[0]=74;$6.displayName='B Note';$6.displayValue='J';$6.segment=this._b;this.$7=[];this.$7.add($0);this.$7.add($1);this.$7.add($2);this.$7.add($3);this.$7.add($4);this.$7.add($5);this.$7.add($6);this.monitorLoading();}
SoundScribe.Bass.prototype={$6:null,_c:null,_d:null,_e:null,_f:null,_g:null,_a:null,_b:null,$7:null,get_name:function(){return 'Bass';},get_keyBindings:function(){return this.$7;},onEventPlaying:function(e){}}
SoundScribe.Synth=function(){SoundScribe.Synth.initializeBase(this);this.$6=this._baseUrl+'Synth/';this._c=new SoundScribe.AudioSegment();this._c.initialize(this.$6,'Synth1');this._segments.add(this._c);this._d=new SoundScribe.AudioSegment();this._d.initialize(this.$6,'Synth2');this._segments.add(this._d);this._e=new SoundScribe.AudioSegment();this._e.initialize(this.$6,'Synth3');this._segments.add(this._e);this._f=new SoundScribe.AudioSegment();this._f.initialize(this.$6,'Synth4');this._segments.add(this._f);this._g=new SoundScribe.AudioSegment();this._g.initialize(this.$6,'Synth5');this._segments.add(this._g);this._a=new SoundScribe.AudioSegment();this._a.initialize(this.$6,'Synth6');this._segments.add(this._a);this._b=new SoundScribe.AudioSegment();this._b.initialize(this.$6,'Synth7');this._segments.add(this._b);var $0=new SoundScribe.KeyBinding();$0.keyCode=new Array(1);$0.keyCode[0]=65;$0.displayName='Synth 1';$0.displayValue='A';$0.segment=this._c;var $1=new SoundScribe.KeyBinding();$1.keyCode=new Array(1);$1.keyCode[0]=83;$1.displayName='Synth 2';$1.displayValue='S';$1.segment=this._d;var $2=new SoundScribe.KeyBinding();$2.keyCode=new Array(1);$2.keyCode[0]=68;$2.displayName='Synth 3';$2.displayValue='D';$2.segment=this._e;var $3=new SoundScribe.KeyBinding();$3.keyCode=new Array(1);$3.keyCode[0]=70;$3.displayName='Synth 4';$3.displayValue='F';$3.segment=this._f;var $4=new SoundScribe.KeyBinding();$4.keyCode=new Array(1);$4.keyCode[0]=71;$4.displayName='Synth 5';$4.displayValue='G';$4.segment=this._g;var $5=new SoundScribe.KeyBinding();$5.keyCode=new Array(1);$5.keyCode[0]=72;$5.displayName='Synth 6';$5.displayValue='H';$5.segment=this._a;var $6=new SoundScribe.KeyBinding();$6.keyCode=new Array(1);$6.keyCode[0]=74;$6.displayName='Synth 7';$6.displayValue='J';$6.segment=this._b;this.$7=[];this.$7.add($0);this.$7.add($1);this.$7.add($2);this.$7.add($3);this.$7.add($4);this.$7.add($5);this.$7.add($6);this.monitorLoading();}
SoundScribe.Synth.prototype={$6:null,_c:null,_d:null,_e:null,_f:null,_g:null,_a:null,_b:null,$7:null,get_name:function(){return 'Synth';},get_keyBindings:function(){return this.$7;}}
SoundScribe.Fx=function(){SoundScribe.Fx.initializeBase(this);this.$6=this._baseUrl+'FX/';this.$7=new SoundScribe.AudioSegment();this.$7.initialize(this.$6,'rewind');this._segments.add(this.$7);var $0=new SoundScribe.KeyBinding();$0.keyCode=new Array(1);$0.keyCode[0]=68;$0.displayName='Rewind';$0.displayValue='D';$0.segment=this.$7;this.$8=[];this.$8.add($0);this.monitorLoading();}
SoundScribe.Fx.prototype={$6:null,$7:null,$8:null,get_name:function(){return 'FX';},get_keyBindings:function(){return this.$8;}}
SoundScribe.MasterClock=function(){this.$7=500;this.$1=10;}
SoundScribe.MasterClock.prototype={$0:0,$1:0,$2:false,$3:0,$4:0,$5:0,$6:0,$7:0,$8:0,get_resolution:function(){return this.$1;},set_resolution:function(value){if(!this.$2){this.$1=value;}return value;},get_BPM:function(){return Math.floor((60/this.$7)*1000);},set_BPM:function(value){this.$7=Math.floor((60/value)*1000);return value;},get_isRunning:function(){return this.$2;},get_currentTime:function(){return this.$5;},set_currentTime:function(value){if(!this.$2){this.$5=value;}return value;},add_tick:function(value){this.$9=ss.Delegate.combine(this.$9,value);},remove_tick:function(value){this.$9=ss.Delegate.remove(this.$9,value);},$9:null,add_beat:function(value){this.$A=ss.Delegate.combine(this.$A,value);},remove_beat:function(value){this.$A=ss.Delegate.remove(this.$A,value);},$A:null,start:function(){if(this.$2){return;}this.$C(this.$5,0,0);this.$2=true;this.$4=0;this.$8=Math.floor(this.$7-(this.$5%this.$7));this.$6=SoundScribe.Tools.getTimeStamp();this.$3=this.$6+this.$1;this.$0=window.setInterval(ss.Delegate.create(this,this.$B),this.$1);},stop:function(){if(!this.$2){return;}this.$2=false;window.clearInterval(this.$0);},$B:function(){var $0=SoundScribe.Tools.getTimeStamp();var $1=$0-this.$3;this.$3+=this.$1;this.$5=$0-this.$6;this.$4++;this.$C(this.$5,this.$4,$1);},$C:function($p0,$p1,$p2){if(this.$9!=null){this.$9({ 'timeStamp':$p0, 'tickNumber':$p1, 'drift':$p2 });}if($p0>this.$8){this.$8+=this.$7;if(this.$A!=null){this.$A({ 'timeStamp':$p0, 'tickNumber':$p1, 'drift':$p2 });}}}}
SoundScribe.PageBinding=function(){}
SoundScribe.PageBinding.$12=function(){SoundScribe.PageBinding.$0=$('#trackList .children');SoundScribe.PageBinding.$1=$('#faderList');SoundScribe.PageBinding.$2=$('#instrument');SoundScribe.PageBinding.$5=$('#inst-drums');SoundScribe.PageBinding.$6=$('#inst-bass');SoundScribe.PageBinding.$7=$('#inst-synth');SoundScribe.PageBinding.$8=$('#inst-fx');SoundScribe.PageBinding.$9=$('#tempo');SoundScribe.PageBinding.$A=$('#rewind');SoundScribe.PageBinding.$B=$('#play');SoundScribe.PageBinding.$C=$('#stop');SoundScribe.PageBinding.$D=$('#metronome');SoundScribe.PageBinding.$E=$('#timer');SoundScribe.PageBinding.$F=SoundScribe.PageBinding.$2.find('.bindings');SoundScribe.PageBinding.$3=SoundScribe.PageBinding.$2.find('.levels');var $0=SoundScribe.Tools.getMixer();SoundScribe.PageBinding.$5.click(function($p1_0){
var $1_0=new SoundScribe.AudioTrack(SoundScribe.PageBinding.$5.html(),'Track '+SoundScribe.PageBinding.$10++);$1_0.$D=SoundScribe.Tools.getDrumSet();$1_0.$C=0.6;$0.get_tracks().add($1_0);$1_0.display();SoundScribe.AudioTrack.$1A($1_0);if(SoundScribe.PageBinding.$0.children().length===1){SoundScribe.AudioTrack.$1A($1_0);}});SoundScribe.PageBinding.$6.click(function($p1_0){
var $1_0=new SoundScribe.AudioTrack(SoundScribe.PageBinding.$6.html(),'Track '+SoundScribe.PageBinding.$10++);$1_0.$D=SoundScribe.Tools.getBassGuitar();$1_0.$C=0.6;$0.get_tracks().add($1_0);$1_0.display();SoundScribe.AudioTrack.$1A($1_0);if(SoundScribe.PageBinding.$0.children().length===1){SoundScribe.AudioTrack.$1A($1_0);}});SoundScribe.PageBinding.$7.click(function($p1_0){
var $1_0=new SoundScribe.AudioTrack(SoundScribe.PageBinding.$7.html(),'Track '+SoundScribe.PageBinding.$10++);$1_0.$D=SoundScribe.Tools.getSynth();$1_0.$C=0.6;$0.get_tracks().add($1_0);$1_0.display();SoundScribe.AudioTrack.$1A($1_0);if(SoundScribe.PageBinding.$0.children().length===1){SoundScribe.AudioTrack.$1A($1_0);}});SoundScribe.PageBinding.$8.click(function($p1_0){
var $1_0=new SoundScribe.AudioTrack(SoundScribe.PageBinding.$8.html(),'Track '+SoundScribe.PageBinding.$10++);$1_0.$D=SoundScribe.Tools.getFx();$1_0.$C=0.6;$0.get_tracks().add($1_0);$1_0.display();SoundScribe.AudioTrack.$1A($1_0);if(SoundScribe.PageBinding.$0.children().length===1){SoundScribe.AudioTrack.$1A($1_0);}});SoundScribe.PageBinding.$A.click(function($p1_0){
var $1_0=SoundScribe.PageBinding.$A.css('background-image').indexOf('_disabled')>0;if(!$1_0){SoundScribe.PageBinding.$E.html('0:0:0');$0.reset();}});SoundScribe.PageBinding.$B.click(function($p1_0){
var $1_0=SoundScribe.PageBinding.$B.css('background-image').indexOf('_disabled')>0;if(!$1_0){SoundScribe.PageBinding.$B.css('background-image','url(Images/play_disabled.png)');SoundScribe.PageBinding.$C.css('background-image','url(Images/stop_enabled.png)');SoundScribe.PageBinding.$A.css('background-image','url(Images/rewind_disabled.png)');$0.mixTracks();$0.play();}});SoundScribe.PageBinding.$C.click(function($p1_0){
var $1_0=SoundScribe.PageBinding.$C.css('background-image').indexOf('_disabled')>0;if(!$1_0){SoundScribe.PageBinding.$B.css('background-image','url(Images/play_enabled.png)');SoundScribe.PageBinding.$C.css('background-image','url(Images/stop_disabled.png)');SoundScribe.PageBinding.$A.css('background-image','url(Images/rewind_enabled.png)');$0.stop();}});SoundScribe.PageBinding.$D.click(function($p1_0){
SoundScribe.PageBinding.$11=!SoundScribe.PageBinding.$11;var $1_0=SoundScribe.PageBinding.$D.css('background-image').indexOf('_disabled')>0;if($1_0){SoundScribe.PageBinding.$D.css('background-image','url(Images/click_enabled.png)');}else{SoundScribe.PageBinding.$D.css('background-image','url(Images/click_disabled.png)');}SoundScribe.PageBinding.$D.children()[0].innerHTML=(SoundScribe.PageBinding.$11)?'ON':'OFF';});var $1=function($p1_0){
var $1_0=SoundScribe.PageBinding.$9.find('.value');var $1_1=parseInt($1_0.html());$1_1=$1_1+(($p1_0)?1:-1);if($1_1<40){$1_1=40;}if($1_1>240){$1_1=240;}SoundScribe.Tools.getClock().set_BPM($1_1);$1_0.html($1_1.toString());};SoundScribe.Tools.clickAndHold(SoundScribe.PageBinding.$9.find('.plus'),function(){
$1(true);});SoundScribe.Tools.clickAndHold(SoundScribe.PageBinding.$9.find('.minus'),function(){
$1(false);});SoundScribe.Tools.noSelect(SoundScribe.PageBinding.$9.find('.plus'));SoundScribe.Tools.noSelect(SoundScribe.PageBinding.$9.find('.minus'));SoundScribe.Tools.getClock().add_tick(function($p1_0){
var $1_0=$p1_0.timeStamp/1000;var $1_1=Math.floor(($1_0-Math.floor($1_0))*10);var $1_2=Math.floor($1_0%60);$1_0/=60;var $1_3=Math.floor($1_0%60);SoundScribe.PageBinding.$E.html($1_3+':'+$1_2+':'+$1_1);});SoundScribe.Tools.getClock().add_beat(function($p1_0){
if(SoundScribe.PageBinding.$11){SoundScribe.Tools.playClick();}});$(document).keydown(function($p1_0){
var $1_0=SoundScribe.Instrument.get_current();if($1_0==null){return;}if(!$0.get_isRecording()){$1_0.play(parseInt($p1_0.which));}else{var $1_1=$1_0.createEvent(parseInt($p1_0.which),$p1_0.timeStamp);if($1_1!=null){$1_0.onEventPlaying($1_1);$0.capture($1_1);}}});}
SoundScribe.Tools=function(){}
SoundScribe.Tools.playClick=function(){SoundScribe.Tools.$6.play();}
SoundScribe.Tools.getTimeStamp=function(){return Date.now();}
SoundScribe.Tools.getClock=function(){if(SoundScribe.Tools.$0==null){SoundScribe.Tools.$0=new SoundScribe.MasterClock();}return SoundScribe.Tools.$0;}
SoundScribe.Tools.getMixer=function(){if(SoundScribe.Tools.$1==null){SoundScribe.Tools.$1=new SoundScribe.AudioMixer();}return SoundScribe.Tools.$1;}
SoundScribe.Tools.getDrumSet=function(){if(SoundScribe.Tools.$2==null){SoundScribe.Tools.$2=new SoundScribe.DrumSet();}return SoundScribe.Tools.$2;}
SoundScribe.Tools.getBassGuitar=function(){if(SoundScribe.Tools.$3==null){SoundScribe.Tools.$3=new SoundScribe.Bass();}return SoundScribe.Tools.$3;}
SoundScribe.Tools.getSynth=function(){if(SoundScribe.Tools.$4==null){SoundScribe.Tools.$4=new SoundScribe.Synth();}return SoundScribe.Tools.$4;}
SoundScribe.Tools.getFx=function(){if(SoundScribe.Tools.$5==null){SoundScribe.Tools.$5=new SoundScribe.Fx();}return SoundScribe.Tools.$5;}
SoundScribe.Tools.canPlayAudioType=function(type){var $0=new Audio();var $1=$0.canPlayType(type);if($1==null){return false;}if($1===''){return false;}if($1==='no'){return false;}if($1==='probably'){return true;}if($1==='maybe'){return true;}return false;}
SoundScribe.Tools.noSelect=function(element){if($.browser.mozilla){element.css('MozUserSelect','none');}else if($.browser.msie){element.bind('selectstart',function($p1_0){
$p1_0.preventDefault();return false;;});}else{element.mousedown(function($p1_0){
$p1_0.preventDefault();return false;;});}}
SoundScribe.Tools.clickAndHold=function(element,action){var $0=0;var $1=0;element.mousedown(function($p1_0){
action();$0=window.setTimeout(function(){
$1=window.setInterval(action,50);},500);});element.mouseup(function($p1_0){
window.clearInterval($1);window.clearTimeout($0);});element.mouseout(function($p1_0){
window.clearInterval($1);window.clearTimeout($0);});}
SoundScribe.AudioTypes=function(){}
SoundScribe.AudioSegment=function(){}
SoundScribe.AudioSegment.prototype={$0:null,$1:null,$2:null,$3:null,$4:null,$5:false,$6:0,get_baseUrl:function(){return this.$0;},get_name:function(){return this.$1;},get_loadedUrl:function(){return (this.get_isLoaded())?this.$2:null;},add_loadingComplete:function(value){this.$7=ss.Delegate.combine(this.$7,value);},remove_loadingComplete:function(value){this.$7=ss.Delegate.remove(this.$7,value);},$7:null,get_isLoaded:function(){return this.$6===2;},get_duration:function(){if(this.$3==null||this.$3.readyState<1){return 0;}else{return parseInt((this.$3.duration*1000));}},get_currentTime:function(){return parseInt(((this.$5)?this.$3.currentTime:this.$4.currentTime))*1000;},set_currentTime:function(value){var $0=(this.$5)?this.$3:this.$4;if($0!=null&&$0.readyState>0){$0.currentTime=value;}return value;},setVolume:function(value){if(this.$3.volume!==value){this.$3.volume=value;}if(this.$4.volume!==value){this.$4.volume=value;}},initialize:function(baseUrl,name){this.$0=baseUrl;this.$1=name;var $0=baseUrl+name;if(SoundScribe.Tools.canPlayAudioType('audio/mpeg')){$0+='.mp3';}else if(SoundScribe.Tools.canPlayAudioType('audio/ogg')){$0+='.ogg';}else{throw Error.createError('Unable to find suitable audio type.',null);}this.$2=$0;this.$3=new Audio($0);this.$4=new Audio($0);this.$3.addEventListener('canplaythrough',ss.Delegate.create(this,this.$8),false);this.$4.addEventListener('canplaythrough',ss.Delegate.create(this,this.$8),false);this.$3._next=this.$4;this.$4._next=this.$3;this.$3.load();this.$4.load();},play:function(){var $0=(this.$5)?this.$3:this.$4;var $1=$0._next;$1.pause();$1.currentTime=0;$1.play();this.$5=!this.$5;},stop:function(){this.$3.pause();this.$4.pause();this.$3.currentTime=0;this.$4.currentTime=0;},$8:function($p0){this.$6++;if(this.$6===2&&this.$7!=null){this.$7(this);}}}
SoundScribe.AudioMixer.registerClass('SoundScribe.AudioMixer');SoundScribe.AudioTrack.registerClass('SoundScribe.AudioTrack');SoundScribe.AudioEvent.registerClass('SoundScribe.AudioEvent');SoundScribe.KeyBinding.registerClass('SoundScribe.KeyBinding');SoundScribe.Instrument.registerClass('SoundScribe.Instrument');SoundScribe.DrumSet.registerClass('SoundScribe.DrumSet',SoundScribe.Instrument);SoundScribe.Bass.registerClass('SoundScribe.Bass',SoundScribe.Instrument);SoundScribe.Synth.registerClass('SoundScribe.Synth',SoundScribe.Instrument);SoundScribe.Fx.registerClass('SoundScribe.Fx',SoundScribe.Instrument);SoundScribe.MasterClock.registerClass('SoundScribe.MasterClock');SoundScribe.PageBinding.registerClass('SoundScribe.PageBinding');SoundScribe.Tools.registerClass('SoundScribe.Tools');SoundScribe.AudioTypes.registerClass('SoundScribe.AudioTypes');SoundScribe.AudioSegment.registerClass('SoundScribe.AudioSegment');SoundScribe.AudioTrack.$B=false;SoundScribe.Instrument.$0=null;SoundScribe.DrumSet.$C=new Array(16);SoundScribe.DrumSet.$D=new Array(16);SoundScribe.DrumSet.$E=new Array(16);SoundScribe.PageBinding.$0=null;SoundScribe.PageBinding.$1=null;SoundScribe.PageBinding.$2=null;SoundScribe.PageBinding.$3=null;SoundScribe.PageBinding.$4=null;SoundScribe.PageBinding.$5=null;SoundScribe.PageBinding.$6=null;SoundScribe.PageBinding.$7=null;SoundScribe.PageBinding.$8=null;SoundScribe.PageBinding.$9=null;SoundScribe.PageBinding.$A=null;SoundScribe.PageBinding.$B=null;SoundScribe.PageBinding.$C=null;SoundScribe.PageBinding.$D=null;SoundScribe.PageBinding.$E=null;SoundScribe.PageBinding.$F=null;SoundScribe.PageBinding.$10=1;SoundScribe.PageBinding.$11=false;(function(){$(SoundScribe.PageBinding.$12);})();
SoundScribe.Tools.$0=null;SoundScribe.Tools.$1=null;SoundScribe.Tools.$2=null;SoundScribe.Tools.$3=null;SoundScribe.Tools.$4=null;SoundScribe.Tools.$5=null;SoundScribe.Tools.$6=null;(function(){$(function(){
SoundScribe.Tools.$6=new SoundScribe.AudioSegment();SoundScribe.Tools.$6.initialize('http://www.soundscribe.com/instruments/','click');});})();
SoundScribe.AudioTypes.mP3='audio/mpeg';SoundScribe.AudioTypes.ogg='audio/ogg';})(jQuery);// This script was generated using Script# v0.7.0.0

