pixelbox
Version:
A framework to fast-prototype pixel-based games
13 lines (12 loc) • 32.7 kB
JavaScript
/**
* Copyright (C) 2016-2020 Cedric Stoquer
*
* This file is part of the Pixelbox SDK.
*
* This file is subject to the terms and conditions defined in
* file "LICENSE.txt", which is part of this source code package.
*/
var __EXPORT__ = null;
!function(){function t(s,i,e){function h(o,a){if(!i[o]){if(!s[o]){var r=null;if(!a&&r)return r(o,!0);if(n)return n(o,!0);var _=new Error("Cannot find module '"+o+"'");throw _.code="MODULE_NOT_FOUND",_}var l=i[o]={exports:{}};s[o][0].call(l.exports,function(t){var i=s[o][1][t];return h(i||t)},l,l.exports,t,s,i,e)}return i[o].exports}for(var n=null,o=0;o<e.length;o++)h(e[o]);return h}return t}()({1:[function(t,s,i){s.exports=function(t,s){t.prototype=Object.create(s.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}},{}],2:[function(t,s,i){function e(t){this.color=0,this.steps=[],this.frozen=!1;for(var s=0;s<t;s++){var i=new h(s);this.steps.push(i)}}var h=t("./Step");s.exports=e;var n=e.prototype;n.$15=function(){for(var t=null,s=this.steps.length-1;s>=0;s--){var i=this.steps[s];if(i.$1i){var e=new h(i.index);e.note=-1,e.$1g=i.$1i,e.next=t,i.next=e}else i.next=t;i.$26||(t=i)}},n.$14=function(t){this.color=t.c||0;for(var s=t.s,i=0,e=0;e<this.steps.length;e++)i=this.steps[e].$14(s,i);this.$15()}},{"./Step":4}],3:[function(t,s,i){function e(t,s){this.album=t,this.index=s,this.name="untitled",this.author="",this.infos="",this.bpm=130,this.$k=32,this.speed=4,this.groove=[],this.highlight=16,this.loop=0,this.length=0,this.tracks=[],this.effects=[],this.$t=null;for(var i=t.trackCount,e=0;e<i;e++){var h=new n(this,e);this.tracks.push(h)}}var h=t("./Pattern"),n=t("./Track");s.exports=e;var o=e.prototype;o.$14=function(t){this.name=t.n||"",this.author=t.a||"",this.infos=t.i||"",this.bpm=t.b,this.$k=t.l,this.speed=t.s,this.groove=t.g,this.highlight=t.h,this.loop=t.o||0,this.$t=new h(this.$k),this.$t.frozen=!0;var s=t.t;this.length=0;for(var i=0;i<s.length;i++){var e=this.tracks[i];e.$14(s[i]),this.length=Math.max(this.length,e.sequence.length)}var n=t.e||[];this.effects=[];for(var i=0;i<4;i++){var o=n[i];o?this.effects.push({id:o.i||0,params:o.p||{}}):this.effects.push(null)}}},{"./Pattern":2,"./Track":5}],4:[function(t,s,i){function e(t,s){return u[t]*l.length+u[s]}function h(t,s,i,h){var n=e(t,s);i["fx"+h]=n%p,i["fv"+h]=~~(n/p)}function n(t,s,i,e){this.id=t,this.value=s,this.x=i,this.y=e}function o(t){this.index=t,this.$26=!0,this.next=null,this.note=null,this.inst=null,this.vol=null,this.fx1=null,this.fx2=null,this.fv1=0,this.fv2=0,this.$2n=[],this.$2o=[],this.$1g=0,this.$1i=0}var a=t("../constants"),r=a.$1s,_=t("./encoding"),l=_.$1v,u=_.$25,p=_.$i;s.exports=o;var c=o.prototype;c.$x=function(t,s){if(t===r.$1c)return void(this.$1g=s/256);if(t===r.$1d)return void(this.$1i=s/256);var i=s>>4,e=15&s,h=new n(t,s,i,e);t===r.$2s?this.$2n.push(h):this.$2o.push(h)},c.$1e=function(){this.$26=!(null!==this.note||null!==this.inst||null!==this.vol||null!==this.fx1||null!==this.fx2),this.$2n=[],this.$2o=[],this.$1g=0,this.$1i=0,null!==this.fx2&&this.$x(this.fx2,this.fv2),null!==this.fx1&&this.$x(this.fx1,this.fv1)},c.$14=function(t,s){this.note=null,this.inst=null,this.vol=null,this.fx1=null,this.fx2=null;var i=u[t[s++]],n=1&i,o=i>>1&1,a=i>>2&1,r=i>>3&1,_=i>>4&1;if(n){var l=i>>5&1;l?this.note=-1:this.note=e(t[s++],t[s++])}return o&&(this.inst=u[t[s++]]),a&&(this.vol=u[t[s++]]),r&&h(t[s++],t[s++],this,1),_&&h(t[s++],t[s++],this,2),this.$1e(),s}},{"../constants":13,"./encoding":6}],5:[function(t,s,i){function e(t,s){this.index=s,this.song=t,this.synthId=0,this.patterns=[],this.sequence=[]}var h=t("./Pattern");s.exports=e;var n=e.prototype;n.$2=function(t){var s=this.song.length;if(t>=s){var i=this.song.loop;t=(t-i)%(s-i)+i}if(t>this.sequence.length)return this.song.$t;var e=this.sequence[t];return e===-1?this.song.$t:this.patterns[e]},n.$js=function(){return this.song.album.instruments[this.synthId]},n.$14=function(t){this.synthId=t.y||0,this.sequence=t.s,this.patterns=[];for(var s=t.p,i=this.song.$k,e=0;e<s.length;e++){var n=new h(i);n.$14(s[e]),this.patterns.push(n)}}},{"./Pattern":2}],6:[function(t,s,i){for(var e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#$%&'()*+,-~/:;<=>?@[]^_`{|}. !",h={},n=0;n<e.length;n++)h[e[n]]=n;i.$1v=e,i.$25=h,i.$i=32},{}],7:[function(t,s,i){function e(){this.version=0,this.trackCount=8,this.instruments={},this.songs=[],this.samples=[],this.path=""}var h=t("./Song");s.exports=e;var n=e.prototype;n.$14=function(t){var s=t.v||0,i=t.s||[];this.version=s,this.trackCount=t.t,this.songs=[],this.instruments=t.i,this.samples=t.a;for(var e=0;e<i.length;e++){var n=new h(this,e);n.$14(i[e]),this.songs.push(n)}}},{"./Song":3}],8:[function(t,s,i){function e(t,s){this.index=t,this.sequencer=s,this.effector=null,this.params=null,this.buffL=new Float32Array(o),this.buffR=new Float32Array(o)}var h=t("../constants"),n=t("../synths").getEffector,o=h.$h;s.exports=e;var a=e.prototype;a.loadEffect=function(t){if(!t)return void(this.effector=null);this.effector=n(t.id,this.sequencer);var s=t.params;for(var i in s)this.effector[i]=s[i]},a.clearBuffer=function(){if(this.effector)for(var t=0;t<o;t++)this.buffL[t]=0,this.buffR[t]=0},a.process=function(t){this.effector&&this.effector.process(this.buffL,this.buffR,this.sequencer.buffL,this.sequencer.buffR,t)}},{"../constants":13,"../synths":27}],9:[function(t,s,i){function e(t,s){this.index=t,this.sequencer=s,this.muted=!1,this.synth=null,this.data=null,this.$u=0,this.$1w=null,this.$1f=0,this.output=this.sequencer}var h=t("../synths").getSynth,n=t("../constants"),o=n.$1s;s.exports=e;var a=e.prototype;a.restart=function(t){this.synth&&(this.synth.$27(),this.$u=t||0,this.$1w=this.data.$2(this.$u).steps[0],this.$3())},a.loadData=function(t){this.data=t,this.synth=h(t.synthId,this.sequencer),this.output=this.sequencer,this.restart()},a.$y=function(t){if(t){null!==t.vol&&this.synth.$1q(t.vol),null!==t.inst&&this.synth.$n(this.sequencer.$j(this.index,t.inst));for(var s=0;s<t.$2n.length;s++){var i=t.$2n[s];this.synth.$2t(i.id,i.value,i.x,i.y)}null!==t.note&&(t.note===-1?this.synth.$27():this.synth.$2m(t.note));for(var s=0;s<t.$2o.length;s++){var i=t.$2o[s];i.id===o.$12?this.output=this.sequencer.effects[i.value]||this.sequencer:this.synth.$2t(i.id,i.value,i.x,i.y)}}},a.$3=function(){var t=this.sequencer,s=this.$1w,i=t.$w[s.index%t.$w.length];this.$1f=this.$u*t.$1y+(s.index+s.$1g)*t.$1z+i},a.$b=function(){this.$1w=this.$1w.next,this.$1w||(this.$u+=1,this.$1w=this.data.$2(this.$u).steps[0]),this.$3()},a.$1x=function(t){if(this.synth&&!this.muted){var s=this.sequencer.t;this.$1f<=s&&(this.$y(this.$1w),this.$b());for(var i=0,e=s+t;this.$1f<e;){var h=~~(this.$1f-s);h<0&&(h=0),this.synth.$1x(this.output.buffL,this.output.buffR,i,h),i=h,this.$y(this.$1w),this.$b()}this.synth.$1x(this.output.buffL,this.output.buffR,i,t)}}},{"../constants":13,"../synths":27}],10:[function(t,s,i){function e(){this.tracks=[],this.effects=[],this.buffers=[],this.album=null,this.song=null,this.$1z=0,this.$1y=0,this.$w=[0],this.synth=null,this.t=0,this.stopped=!0,this.$1r=null,this.$16=null,this.$2kLength=0,this.buffL=null,this.buffR=null,this.effects.push(this);for(var t=0;t<l;t++)this.effects.push(new r(t,this));this.$4=[]}var h=t("./loadAudioBuffer"),n=t("../constants"),o=t("../audioContext"),a=t("./Track"),r=t("./Effect"),_=n.$11,l=4;s.exports=e;var u=e.prototype;u.$e=function(){this.$16||(this.$1r=o.createGain(),this.$1r.connect(o.destination),this.$1r.gain.value=.5,this.createScriptProcessor())},e.prototype.createScriptProcessor=function(){if(this.$2kLength!==n.$h){this.$2kLength=n.$h,this.$16&&this.$16.disconnect(this.$1r);var t=o.createScriptProcessor(n.$h,0,2);t.onaudioprocess=this.onAudioProcess.bind(this),t.connect(this.$1r),this.$16=t}},u.onAudioProcess=function(t){var s,i=t.outputBuffer,e=this.buffL=i.getChannelData(0),h=this.buffR=i.getChannelData(1);for(s=0;s<n.$h;s++)e[s]=0,h[s]=0;for(s=0;s<this.$4.length;s++)this.$4[s].clearBuffer();if(!this.stopped){for(s=0;s<this.tracks.length;s++)this.tracks[s].$1x(n.$h);for(s=0;s<this.$4.length;s++)this.$4[s].process(n.$h);this.t+=n.$h}},u.$13=function(){for(var t=0;t<this.tracks.length;t++){var s=this.tracks[t].synth;s&&s.reset()}},u.play=function(){this.$q(0)},u.$q=function(t){if(this.song){this.t=t*this.$1y;for(var s=0;s<this.tracks.length;s++)this.tracks[s].restart(t);this.stopped=!1}},u.stop=function(){this.stopped=!0,this.$13()},u.$j=function(t,s){var i=this.song.tracks[t].synthId,e=this.album.instruments[i];return e[s%e.length]},u.loadAlbum=function(t,s){this.stop(),this.album=t,this.song=null,this.tracks=[];for(var i=t.trackCount,e=0;e<i;e++){var h=new a(e,this);this.tracks.push(h)}this.loadAudioBuffers(s)},u.loadAudioBuffers=function(t){var s=this.album.samples;this.buffers=[];for(var i=0;i<s.length;i++)this.buffers.push(null),this.loadAudioBufferInIndex(s[i],i)},u.loadAudioBufferInIndex=function(t,s){var i=this.buffers;h(t,function(t,e){return t?void console.error(t):void(i[s]=e.getChannelData(0))},this.album.path)},u.$d=function(t){if(!this.album)return console.error("No album loaded");var s=this.album.songs[t];if(!s)return console.error("No song at index");this.song=s,this.$1b();for(var i=0;i<this.tracks.length;i++){var e=this.tracks[i];e.loadData(s.tracks[i])}for(var i=1;i<this.effects.length;i++){var h=this.effects[i];h.loadEffect(s.effects[i-1])}this.$p(),this.synth=this.tracks[0].synth,this.$13()},u.$p=function(){this.$4=[];for(var t=1;t<this.effects.length;t++){var s=this.effects[t];s.effector&&this.$4.push(s)}},u.$1b=function(){this.$1z=60*_/this.song.bpm/this.song.speed,this.$1y=this.$1z*this.song.$k,this.$v()},u.$v=function(){this.$w=[0];var t=this.song.groove;if(t&&!(t.length<2)){for(var s=0,i=0;i<t.length;i++)s+=t[i];for(var e=s/t.length,h=t[0],i=1;i<t.length;i++){var n=(h-e*i)/e*this.$1z;this.$w.push(n),h+=t[i]}}}},{"../audioContext":12,"../constants":13,"./Effect":8,"./Track":9,"./loadAudioBuffer":11}],11:[function(t,s,i){function e(t,s){this.uri=t,this.buffer=null,this.error=null,this.loading=!1,this.onLoad=[],this.albumPath=s}var h=t("../audioContext"),n={};e.prototype.load=function(t){return this.error||this.buffer?t(this.error,this.buffer):(this.onLoad.push(t),void(this.loading||this.initiateLoad()))},e.prototype.initiateLoad=function(){this.loading=!0;var t,s=this,t=new XMLHttpRequest;t.responseType="arraybuffer",t.onreadystatechange=function(){if(4===~~t.readyState)return 200!==~~t.status&&0!==~~t.status?s.completeLoad("xhrError:"+t.status):void h.decodeAudioData(t.response,function(t){return s.completeLoad(null,t)},s.completeLoad.bind(s))},t.open("GET",this.uri,!0),t.send()},e.prototype.completeLoad=function(t,s){this.buffer=s,this.error=t;for(var i=0;i<this.onLoad.length;i++)this.onLoad[i](t,s);this.onLoad=[]},s.exports=function(t,s,i){var h=n[t];h||(h=n[t]=new e(t,i)),h.load(s)}},{"../audioContext":12}],12:[function(t,s,i){var e=t("./constants"),h=window.AudioContext,n=new h({sampleRate:e.$11});s.exports=n},{"./constants":13}],13:[function(t,s,i){i.$h=1024,i.$11=44100,i.$r=i.$11/64,i.$1s={$1t:0,$23:1,$24:2,$2v:3,$2s:4,$8:5,$g:6,$1c:7,$1d:8,$12:9,PANORAMIC:10},i.$1u=1,i.$5=2,i.$9=32,i.$6=4,i.TAU=2*Math.PI},{}],14:[function(t,s,i){function e(t){return 440*Math.pow(2,(t-69)/12)}for(var h=[],n=0;n<128;n++)h.push(e(n));i.$a=h,i.$1h=function(t){t<0&&(t=0),t>127&&(t=127);var s=~~t,i=t-s,e=h[s],n=h[s+1];return e+i*(n-e)}},{}],15:[function(t,s,i){var e=t("./audioContext"),h=t("./Album"),n=t("./Sequencer"),o=new h,a=new n;a.$e();var r={};__EXPORT__={context:e,output:a.$1r,loadData:function(t){o.$14(t),a.loadAlbum(o),r={};for(var s=0;s<o.songs.length;s++){var i=o.songs[s];r[i.name]=s}},playSong:function(t){r[t]&&(t=r[t]),a.$d(~~t),a.play()},stop:function(){a.stop()},$1q:function(t){a.$1r.gain.value=Math.max(0,Math.min(t,1))}}},{"./Album":7,"./Sequencer":10,"./audioContext":12}],16:[function(t,s,i){function e(){this._time=11025,this.f=.4,this.c=.6,this.$2kL=new Float32Array(h),this.$2kR=new Float32Array(h),this.$21=0,this._filterStateL=0,this._filterStateR=0}var h=44100;s.exports=e;var n=e.prototype;e.getDefaultParams=function(){return{t:.25,f:.4,c:.6,p:!1}},n.process=function(t,s,i,e,n){for(var o=0;o<n;o++){var a=this.$2kR[this.$21]*this.f,r=this.$2kL[this.$21]*this.f;this._filterStateL=r*this.c+this._filterStateL*(1-this.c),r=t[o]+this._filterStateL,this._filterStateR=a*this.c+this._filterStateR*(1-this.c),a=s[o]+this._filterStateR,this.p?(this.$2kR[(this.$21+this._time)%h]=r,this.$2kL[(this.$21+this._time)%h]=a):(this.$2kL[(this.$21+this._time)%h]=r,this.$2kR[(this.$21+this._time)%h]=a),this.$21+=1,this.$21>=h&&(this.$21=0),i[o]+=r,e[o]+=a}},Object.defineProperty(n,"t",{set:function(t){this._time=Math.max(100,~~(t*h))}})},{}],17:[function(t,s,i){function e(t){this.synth=t,this.$2p=0,this.$2l=g,this.$2c=0,this.out=0,this.instrument=null}function h(){this.note=0,this.volume=0,this.playing=!1,this.$2q=0,this.$m=0,this.instrument=null,this.$2w=0,this._panL=1,this._panR=1,this.$2wL=this.$2w,this.$2wR=this.$2w,this.$1m=null,this.$1p=0,this.$1n=0,this.$1o=0,this.$2e=0,this.$2f=0,this.$2g=0,this.$2j=0,this.$2h=0,this.$2i=0,this.$19=!1,this.$2d=0,this.$1l=null,this.$20=0,this._damping=!1,this._dampVal=0,this._lastOut=0,this.$1j=[new e(this),new e(this),new e(this),new e(this)],this.$n(this.$1())}var n=t("../constants"),o=t("../noteUtils"),a=n.$1s,r=n.$11,_=r/60,l=(n.$1u,n.TAU),u=n.$5,p=n.$6,c=n.$9,f=4,d=3,m=2,v=1,g=0,P=e.prototype;P.$n=function(t){this.instrument=t},P.$28=function(){this.$2c=0,this.$2l=f,this.$2p=0},P.$1x=function(){switch(this.$2l){case g:return;case m:break;case f:this.$2c+=this.instrument.a/64,this.$2c>=1&&(this.$2c=1,this.$2l=d);break;case d:this.$2c-=this.instrument.d/64,this.$2c<=this.instrument.s&&(this.$2c=this.instrument.s,1===this.synth.instrument.c?this.$2l=v:this.$2l=m);break;case v:this.$2c-=this.instrument.r/64,this.$2c<=0&&(this.$2c=0,this.$2l=g,this.out=0)}var t=this.synth.$1j,s=this.instrument.c,i=0;i+=s[0]*t[0].out,i+=s[1]*t[1].out,i+=s[2]*t[2].out,i+=s[3]*t[3].out,this.$2p+=this.synth.$2q*this.instrument.m,this.$2p>=1&&(this.$2p=this.$2p%1),this.out=this.$2c*Math.sin(l*(this.$2p+i))},s.exports=h;var b=h.prototype;b.$1=function(){return{n:"",l:{},p:0,c:1,o:[{m:1,a:.25,d:.00225,s:.5,r:.00225,c:[0,0,0,0],v:0},{m:1,a:.25,d:.00225,s:.5,r:.00225,c:[0,0,0,0],v:0},{m:1,a:.25,d:.00225,s:.5,r:.00225,c:[0,0,0,0],v:0},{m:1,a:.25,d:.00225,s:.5,r:.00225,c:[0,0,0,0],v:1}]}},b.$n=function(t){this.instrument=t,this.$1j[0].$n(t.o[0]),this.$1j[1].$n(t.o[1]),this.$1j[2].$n(t.o[2]),this.$1j[3].$n(t.o[3])},b.reset=function(){this.$27(),this.$1q(15),this.$19=!1,this.$1l=null,this.$20=0,this.$2g=0,this.$2i=0,this.$17(),this.$18()},b.$2m=function(t){null!==this.$1m?(this.note+=this.$1n,this.$1o=0,this.$1n=t-this.note,this.$1p=this.$1n/(this.$1m+1)/u,this.$1m=null):(this.note=t,this.$1n=0,this.$1p=0,this.$1o=0),this.playing=!0,this.$m=0,this.$2d=0,this.$1j[0].$28(),this.$1j[1].$28(),this.$1j[2].$28(),this.$1j[3].$28(),this.$17(),this._damping=!1},b.$27=function(){this.playing&&(0===this.instrument.c?(this.$1j[0].$2l=v,this.$1j[1].$2l=v,this.$1j[2].$2l=v,this.$1j[3].$2l=v):(this.playing=!1,this._damping=!0,this._dampVal=this._lastOut))},b.$17=function(){var t=0;this.$2f>0&&(t=this.$2g*Math.sin(this.$2e*l));var s=this.note+this.instrument.p+this.$20+this.$1o+t;this.$2q=o.$1h(s)/r},b._updatePannoramic=function(t,s){this._panL=t/15,this._panR=s/15,this.$2wL=this.$2w*this._panL,this.$2wR=this.$2w*this._panR},b.$18=function(){var t=1;this.$2h>0&&(t=1-this.$2i*(Math.sin(this.$2j*l)+1)),this.$2w=this.volume*t,this.$2wL=this.$2w*this._panL,this.$2wR=this.$2w*this._panR},b.$c=function(){var t=!1,s=!1;this.$19&&(this.$2d=(this.$2d+1)%this.$1l.length,this.$20=this.$1l[this.$2d],s=!0),0!==this.$1p&&(this.$1o+=this.$1p,s=!0,(this.$1p>0&&this.$1o>=this.$1n||this.$1p<0&&this.$1o<=this.$1n)&&(this.$1o=this.$1n,this.$1p=0)),this.$2f>0&&(this.$2e+=this.$2f,this.$2e>1&&(this.$2e-=1),s=!0),this.$2h>0&&(this.$2j+=this.$2h,this.$2j>1&&(this.$2j-=1),t=!0),s&&this.$17(),t&&this.$18()},b.$1q=function(t){this.volume=t/40,this.$18()},b.$2t=function(t,s,i,e){var h=!1,n=!1;switch(t){case a.$1t:this.$20=0,this.$2d=0,0===s?(this.$19=!1,this.$1l=null,h=!0):(this.$19=!0,this.$1l=0===e?[0,i]:[0,i,e]);break;case a.$24:this.$2f=i/64,this.$2g=e/16,0===e&&(h=!0);break;case a.$23:this.$2h=i/64,this.$2i=e/c,n=!0;break;case a.$2s:this.$1m=s/p;break;case a.$g:this.note+=this.$1n,this.$1o=0,this.$1n=e,this.$1p=e/(i+1)/u;break;case a.$8:this.note+=this.$1n,this.$1o=0,this.$1n=-e,this.$1p=-e/(i+1)/u;break;case a.PANORAMIC:this._updatePannoramic(i,e)}h&&this.$17(),n&&this.$18()},b.$1x=function(t,s,i,e){if(this._damping){for(var h=i;h<e;h++)if(this._dampVal*=.98,t[h]+=this._dampVal,s[h]+=this._dampVal,this._dampVal>-.01&&this._dampVal<.01)return void(this._damping=!1)}else if(this.playing){for(var h=i;h<e;h++){if(++this.$m>=_){if(this.$m-=_,this.$1j[0].$2l===g&&this.$1j[1].$2l===g&&this.$1j[2].$2l===g&&this.$1j[3].$2l===g)return void(this.playing=!1);this.$c()}this.$1j[0].$1x(),this.$1j[1].$1x(),this.$1j[2].$1x(),this.$1j[3].$1x();var n=0;n+=this.$1j[0].instrument.v*this.$1j[0].out,n+=this.$1j[1].instrument.v*this.$1j[1].out,n+=this.$1j[2].instrument.v*this.$1j[2].out,n+=this.$1j[3].instrument.v*this.$1j[3].out,t[h]+=n*this.$2wL,s[h]+=n*this.$2wR}this._lastOut=n}}},{"../constants":13,"../noteUtils":14}],18:[function(t,s,i){function e(t){this.feedback=0,this.$2k=new Float32Array(t),this._bufsize=t,this._index=0,this._filtered=0,this._damp1=0,this._damp2=0}function h(t){this.$2k=new Float32Array(t),this._bufsize=t,this._index=0}function n(){this._roomSize=0,this._roomSize1=0,this._damp=0,this._damp1=0,this._wet=0,this._wet1=0,this._wet2=0,this._dry=0,this._width=0,this.combL=[],this.combR=[],this.allpassL=[],this.allpassR=[];for(var t=0;t<_;t++)this.combL.push(new e(u[t])),this.combR.push(new e(u[t]+r));for(var s=0;s<l;s++)this.allpassL.push(new h(p[s])),this.allpassR.push(new h(p[s]+r))}var o=e.prototype;o.setDamp=function(t){this._damp1=t,this._damp2=1-t},o.mute=function(){for(var t=0;t<this._bufsize;t++)this.$2k[t]=0},o.process=function(t){var s=this.$2k[this._index];return this._filtered=s*this._damp2+this._filtered*this._damp1,this.$2k[this._index]=t+this._filtered*this.feedback,++this._index>=this._bufsize&&(this._index=0),s};var a=h.prototype;a.mute=function(){for(var t=0;t<this._bufsize;t++)this.$2k[t]=0},a.process=function(t){var s=this.$2k[this._index];return this.$2k[this._index]=t+.5*s,++this._index>=this._bufsize&&(this._index=0),s-t};var r=23,_=8,l=4,u=[1116,1188,1277,1356,1422,1491,1557,1617],p=[556,441,341,225];s.exports=n;var c=n.prototype;n.getDefaultParams=function(){return{d:.8,w:.3,z:.8,a:.5,i:.8}},c.process=function(t,s,i,e,h){for(var n,o=0;o<h;o++){var a=0,r=0;for(n=0;n<_;n++)a+=this.combL[n].process(t[o]),r+=this.combR[n].process(s[o]);for(n=0;n<l;n++)a=this.allpassL[n].process(a),r=this.allpassR[n].process(r);i[o]+=a*this._wet1+r*this._wet2+t[o]*this._dry,e[o]+=r*this._wet1+a*this._wet2+s[o]*this._dry}},c.mute=function(){for(var t=0;t<_;t++)this.combL[t].mute(),this.combR[t].mute();for(var t=0;t<l;t++)this.allpassL[t].mute(),this.allpassR[t].mute()},c.update=function(){this._wet1=this._wet*(this._width/2+.5),this._wet2=this._wet*((1-this._width)/2),this._roomSize1=this._roomSize,this._damp1=this._damp;for(var t=0;t<_;t++)this.combL[t].feedback=this._roomSize1,this.combR[t].feedback=this._roomSize1,this.combL[t].setDamp(this._damp1),this.combR[t].setDamp(this._damp1)},Object.defineProperty(c,"d",{set:function(t){this._dry=1*t}}),Object.defineProperty(c,"w",{set:function(t){this._wet=.06*t,this.update()}}),Object.defineProperty(c,"z",{set:function(t){this._roomSize=.28*t+.7,this.update()}}),Object.defineProperty(c,"a",{set:function(t){this._damp=.4*t,this.update()}}),Object.defineProperty(c,"i",{set:function(t){this._width=t,this.update()}})},{}],19:[function(t,s,i){function e(){this.note=0,this.volume=0,this.playing=!1,this.$m=0,this.$2w=_,this._panL=1,this._panR=1,this.$2wL=this.$2w,this.$2wR=this.$2w,this.$29=0,this.$2a=0,this.$1k=1,this.$2b=0,this.$2u=p[0],this.$2j=0,this.$2h=0,this.$2i=0,this.$1a=new n(1,15),this.$o=new n(0,1),this.$10=new n(0,1)}var h=t("../constants"),n=t("./TableEnvelope"),o=h.$1s,a=h.$11,r=a/60,_=1.4,l=2*Math.PI,u=[.01,.02,.04,.053,.08,.105,.15,.2,.25,.3,.35,.4,.45,.5,.7,.9],p=[8192,256,6144,4480];s.exports=e;var c=e.prototype;c.$1=function(){return{n:""}},c.$n=function(t){this.$1a.set(t.a),this.$o.set(t.p),this.$10.set(t.d)},c.reset=function(){this.$27(),this.$1q(15),this.$29=0,this.$2i=0,this.$17(),this.$18()},c.$2m=function(t){this.note=t,this.$m=0,this.$1a.$2r(),this.$o.$2r(),this.$10.$2r(),this.$17(),this.$18(),this.playing=!0},c.$27=function(){this.playing=!1},c.$1q=function(t){this.volume=t/30,this.$18()},c.$2t=function(t,s,i,e){var h=!1;switch(t){case o.$23:this.$2h=i/64,this.$2i=e/32,h=!0;break;case o.$2v:this.$2u=p[s%p.length];break;case o.PANORAMIC:this._updatePannoramic(i,e)}h&&this.$18()},c._updatePannoramic=function(t,s){this._panL=t/15,this._panR=s/15,this.$2wL=this.$2w*this._panL,this.$2wR=this.$2w*this._panR},c.$18=function(){var t=1;this.$2h>0&&(t=1-this.$2i*(Math.sin(this.$2j*l)+1)),this.$2w=_*this.volume*t,this.$2w*=this.$1a.value,this.$2wL=this.$2w*this._panL,this.$2wR=this.$2w*this._panR},c.$17=function(){var t=~~(this.note+this.$o.value);this.$2a=u[t%16]},c.$c=function(){var t=!1,s=!1;this.$2h>0&&(this.$2j+=this.$2h,this.$2j>1&&(this.$2j-=1),t=!0),this.$1a.enabled&&this.$1a.clock()&&(t=!0),this.$o.enabled&&this.$o.clock()&&(s=!0),this.$10.enabled&&this.$10.clock()&&(this.$2u=p[~~this.$10.value%p.length]),s&&this.$17(),t&&this.$18()},c.$1x=function(t,s,i,e){if(this.playing)for(var h=i;h<e;h++){if(++this.$m>=r&&(this.$m-=r,this.$c()),this.$29+=this.$2a,this.$29>1){this.$29=this.$29%1;var n=!(16384&this.$1k)^!(this.$1k&this.$2u);this.$1k=32767&(this.$1k<<1|n),this.$2b=(16384&this.$1k)>>14}var o=this.$2b-.5;t[h]+=o*this.$2wL,s[h]+=o*this.$2wR}}},{"../constants":13,"./TableEnvelope":25}],20:[function(t,s,i){function e(){o.call(this),this.$2w=.25,this.$2u=.25,this.$10=new n(0,1)}for(var h=t("../constants"),n=t("./TableEnvelope"),o=t("./SimpleOscillator"),a=t("pixelbox/inherits"),r=h.$11,_=r/60,l=[1/8,.25,.5,.75],u=1;u<63;u++)l.push(u/64);a(e,o),s.exports=e;var p=e.prototype;p.$n=function(t){o.prototype.$n.call(this,t),this.$10.set(t.d)},p.$2m=function(t){o.prototype.$2m.call(this,t),this.$10.$2r()},p.$1q=function(t){this.volume=t/60,this.$18()},p._updateDuty=function(t){this.$2u=l[t%l.length]},p.$c=function(){o.prototype.$c.call(this),this.$10.enabled&&this.$10.clock()&&(this.$2u=l[~~this.$10.value])},p.$1x=function(t,s,i,e){if(this.playing)for(var h=i;h<e;h++){++this.$m>=_&&(this.$m-=_,this.$c()),this.$29+=this.$2a,this.$29>1&&(this.$29=this.$29%1);var n=this.$29>this.$2u?1:-1;t[h]+=n*this.$2wL,s[h]+=n*this.$2wR}}},{"../constants":13,"./SimpleOscillator":24,"./TableEnvelope":25,"pixelbox/inherits":1}],21:[function(t,s,i){function e(){h.call(this),this._damping=!1,this._dampVal=0}var h=t("./SimpleOscillator"),n=t("../constants"),o=t("pixelbox/inherits"),a=n.$11,r=a/60,_=[0,.12,.25,.37,.5,.62,.75,.87,.87,.75,.62,.5,.37,.25,.12,0,-.12,-.25,-.37,-.5,-.62,-.75,-.87,-1,-1,-.87,-.75,-.62,-.5,-.37,-.25,-.12];o(e,h),s.exports=e;var l=e.prototype;l.$2m=function(t){h.prototype.$2m.call(this,t),this._damping=!1},l.$27=function(){this.playing&&(this._damping=!0,this._dampVal=_[~~(32*this.$29)]),this.playing=!1},l.$1x=function(t,s,i,e){if(this._damping){for(var h=i;h<e;h++)if(this._dampVal*=.98,t[h]+=this._dampVal*this.$2wL,s[h]+=this._dampVal*this.$2wR,this._dampVal>-.01&&this._dampVal<.01)return this._damping=!1,void(this.$29=0)}else if(this.playing)for(var h=i;h<e;h++){++this.$m>=r&&(this.$m-=r,this.$c()),this.$29+=this.$2a,this.$29>1&&(this.$29=this.$29%1);var n=_[~~(32*this.$29)];t[h]+=n*this.$2wL,s[h]+=n*this.$2wR}}},{"../constants":13,"./SimpleOscillator":24,"pixelbox/inherits":1}],22:[function(t,s,i){function e(t){this._sequencer=t,this.$2k=null,this._instrument=this.$1(),this.note=0,this.volume=0,this.playing=!1,this.$21=0,this.$22=0,this.$f=0,this.$m=0,this.$2w=1,this._panL=1,this._panR=1,this.$2wL=this.$2w,this.$2wR=this.$2w,this.$1m=null,this.$1p=0,this.$1n=0,this.$1o=0,this.$2e=0,this.$2f=0,this.$2g=0,this.$2j=0,this.$2h=0,this.$2i=0,this.$2l=g,this.$2c=0}var h=t("../constants"),n=t("../noteUtils"),o=(h.$1u,h.$1s),a=h.$11,r=a/60,_=n.$a[60],l=h.TAU,u=h.$5,p=h.$6,c=h.$9,f=4,d=3,m=2,v=1,g=0;s.exports=e;var P=e.prototype;P.$1=function(){return{n:"",a:0,s:0,e:0,l:0,p:0,v:[1,1,1,1,0]}},P.$n=function(t){this._instrument=t;var s=t.a||0;this.$2k=this._sequencer.buffers[s],this.$21=t.s},P.reset=function(){this.playing=!1,this.$1q(15),this.$17(),this.$18()},P.$2m=function(t){null!==this.$1m?(this.note+=this.$1n,this.$1o=0,this.$1n=t-this.note,this.$1p=this.$1n/(this.$1m+1)/u,this.$1m=null):(this.note=t,this.$1n=0,this.$1p=0,this.$1o=0),this.$m=0,this.$21=this._instrument.s,this.$17(),this.$18(),this.$2c=0,this.$2l=f,this.$2k&&(this.playing=!0)},P.$27=function(){0===this._instrument.v[4]?this.$2l=v:this.playing=!1},P.$1q=function(t){this.volume=t/20,this.$18()},P.$2t=function(t,s,i,e){var h=!1,n=!1;switch(t){case o.$24:this.$2f=i/64,this.$2g=e/16,0===e&&(h=!0);break;case o.$23:this.$2h=i/64,this.$2i=e/c,n=!0;break;case o.$2s:this.$1m=s/p;break;case o.$g:this.note+=this.$1n,this.$1o=0,this.$1n=e,this.$1p=e/(i+1)/u;break;case o.$8:this.note+=this.$1n,this.$1o=0,this.$1n=-e,this.$1p=-e/(i+1)/u;break;case o.PANORAMIC:this._updatePannoramic(i,e)}h&&this.$17(),n&&this.$18()},P._updatePannoramic=function(t,s){this._panL=t/15,this._panR=s/15,this.$2wL=this.$2w*this._panL,this.$2wR=this.$2w*this._panR},P.$18=function(){var t=1;this.$2h>0&&(t=1-this.$2i*(Math.sin(this.$2j*l)+1)),this.$2w=this.volume*t,this.$2wL=this.$2w*this._panL,this.$2wR=this.$2w*this._panR},P.$17=function(){var t=0;this.$2f>0&&(t=this.$2g*Math.sin(this.$2e*l));var s=this.note+this._instrument.p+this.$1o+t;this.$22=n.$1h(s)/_},P.$c=function(){var t=!1,s=!1;0!==this.$1p&&(this.$1o+=this.$1p,s=!0,(this.$1p>0&&this.$1o>=this.$1n||this.$1p<0&&this.$1o<=this.$1n)&&(this.$1o=this.$1n,this.$1p=0)),this.$2f>0&&(this.$2e+=this.$2f,this.$2e>1&&(this.$2e-=1),s=!0),this.$2h>0&&(this.$2j+=this.$2h,this.$2j>1&&(this.$2j-=1),t=!0),s&&this.$17(),t&&this.$18()},P.$7=function(){if(this.$2l!==g){var t=this._instrument.v;switch(this.$2l){case m:break;case f:this.$2c+=t[0],this.$2c>=1&&(this.$2c=1,this.$2l=d);break;case d:this.$2c-=t[1],this.$2c<=t[2]&&(this.$2c=t[2],1===t[4]?this.$2l=v:this.$2l=m);break;case v:this.$2c-=t[3],this.$2c<=0&&(this.$2c=0,this.$2l=g,this.playing=!1)}}},P.$1x=function(t,s,i,e){if(this.playing)for(var h=i;h<e;h++){if(++this.$f>=64&&(this.$f=0,this.$7()),++this.$m>=r&&(this.$m-=r,this.$c()),this.$21+=this.$22,this.$21>=this._instrument.e){if(0===this._instrument.l)return void(this.playing=!1);this.$21-=this._instrument.l}var n=this.$2k[~~this.$21]*this.$2c;t[h]+=n*this.$2wL,s[h]+=n*this.$2wR}}},{"../constants":13,"../noteUtils":14}],23:[function(t,s,i){function e(){h.call(this)}var h=t("./SimpleOscillator"),n=t("../constants"),o=t("pixelbox/inherits"),a=n.$11,r=a/60;o(e,h),s.exports=e,e.prototype.$1x=function(t,s,i,e){if(this.playing)for(var h=i;h<e;h++){++this.$m>=r&&(this.$m-=r,this.$c()),this.$29+=this.$2a,this.$29>1&&(this.$29=this.$29%1);var n=this.$29-.5;t[h]+=n*this.$2wL,s[h]+=n*this.$2wR}}},{"../constants":13,"./SimpleOscillator":24,"pixelbox/inherits":1}],24:[function(t,s,i){
function e(){this._instrument=null,this.note=0,this.volume=0,this.playing=!1,this.$m=0,this.$2w=l,this._panL=1,this._panR=1,this.$2wL=this.$2w,this.$2wR=this.$2w,this.$29=0,this.$2a=0,this.$1m=null,this.$1p=0,this.$1n=0,this.$1o=0,this.$2e=0,this.$2f=0,this.$2g=0,this.$2j=0,this.$2h=0,this.$2i=0,this.$19=!1,this.$2d=0,this.$1l=null,this.$20=0,this.$1a=new o(1,15),this.$o=new o(0,1),this.$z=new o(0,16)}var h=t("../constants"),n=t("../noteUtils"),o=t("./TableEnvelope"),a=h.$1s,r=h.$11,_=h.TAU,l=h.$1u,u=h.$5,p=h.$6,c=h.$9;s.exports=e;var f=e.prototype;f.$1=function(){return{n:""}},f.$n=function(t){this._instrument=t,this.$1a.set(t.a),this.$o.set(t.p),this.$z.set(t.t)},f.reset=function(){this.$27(),this.$1q(15),this.$19=!1,this.$1l=null,this.$20=0,this.$2g=0,this.$2i=0,this.$17(),this.$18()},f.$2m=function(t){null!==this.$1m?(this.note+=this.$1n,this.$1o=0,this.$1n=t-this.note,this.$1p=this.$1n/(this.$1m+1)/u,this.$1m=null):(this.note=t,this.$1n=0,this.$1p=0,this.$1o=0),this.$m=0,this.$2d=0,this.$1a.$2r(),this.$o.$2r(),this.$z.$2r(),this.$17(),this.$18(),this.playing=!0},f.$27=function(){this.playing=!1,this.$1m=null},f.$1q=function(t){this.volume=t/30,this.$18()},f.$2t=function(t,s,i,e){var h=!1,n=!1;switch(t){case a.$1t:this.$20=0,this.$2d=0,0===s?(this.$19=!1,this.$1l=null,h=!0):(this.$19=!0,this.$1l=0===e?[0,i]:[0,i,e]);break;case a.$24:this.$2f=i/64,this.$2g=e/16,0===e&&(h=!0);break;case a.$23:this.$2h=i/64,this.$2i=e/c,n=!0;break;case a.$2s:this.$1m=s/p;break;case a.$g:this.note+=this.$1n,this.$1o=0,this.$1n=e,this.$1p=e/(i+1)/u;break;case a.$8:this.note+=this.$1n,this.$1o=0,this.$1n=-e,this.$1p=-e/(i+1)/u;break;case a.$2v:this._updateDuty(s);break;case a.PANORAMIC:this._updatePannoramic(i,e)}h&&this.$17(),n&&this.$18()},f._updateDuty=function(t){},f._updatePannoramic=function(t,s){this._panL=t/15,this._panR=s/15,this.$2wL=this.$2w*this._panL,this.$2wR=this.$2w*this._panR},f.$18=function(){var t=1;this.$2h>0&&(t=1-this.$2i*(Math.sin(this.$2j*_)+1)),this.$2w=l*this.volume*t,this.$2w*=this.$1a.value,this.$2wL=this.$2w*this._panL,this.$2wR=this.$2w*this._panR},f.$17=function(){var t=0;this.$2f>0&&(t=this.$2g*Math.sin(this.$2e*_));var s=this.note+this.$20+this.$1o+this.$o.value+this.$z.value+t;this.$2a=n.$1h(s)/r},f.$c=function(){var t=!1,s=!1;this.$19&&(this.$2d=(this.$2d+1)%this.$1l.length,this.$20=this.$1l[this.$2d],s=!0),0!==this.$1p&&(this.$1o+=this.$1p,s=!0,(this.$1p>0&&this.$1o>=this.$1n||this.$1p<0&&this.$1o<=this.$1n)&&(this.$1o=this.$1n,this.$1p=0)),this.$2f>0&&(this.$2e+=this.$2f,this.$2e>1&&(this.$2e-=1),s=!0),this.$2h>0&&(this.$2j+=this.$2h,this.$2j>1&&(this.$2j-=1),t=!0),this.$1a.enabled&&this.$1a.clock()&&(t=!0),this.$o.enabled&&this.$o.clock()&&(s=!0),this.$z.enabled&&this.$z.clock()&&(s=!0),s&&this.$17(),t&&this.$18()},f.$1x=function(t,s,i,e){}},{"../constants":13,"../noteUtils":14,"./TableEnvelope":25}],25:[function(t,s,i){function e(t,s){this._playing=!1,this._pos=0,this.min=t,this.max=s,this.data=null,this.table=null,this.enabled=!1,this.value=this.min}s.exports=e;var h=e.prototype;h.set=function(t){if(!t)return this.enabled=!1,this.data=null,this.table=null,void(this.value=this.min);var s=t.t||null;this.data=t,this.enabled=s&&s.length&&!0,this.table=s,this.value=s?s[0]/this.max:this.min},h.clock=function(){return!!this._playing&&(this._pos+=1,this._pos>=this.table.length&&(0===this.data.l?(this._pos=this.table.length-1,this._playing=!1):this._pos-=this.data.l),this.value=this.table[this._pos]/this.max,!0)},h.$2r=function(){this.enabled&&(this._playing=!0,this._pos=0,this.value=this.table[0]/this.max)}},{}],26:[function(t,s,i){function e(){h.call(this),this._damping=!1,this._dampVal=0,this.$n(this.$1())}var h=t("./SimpleOscillator"),n=t("../constants"),o=t("pixelbox/inherits"),a=n.$11,r=a/60;o(e,h),s.exports=e;var _=e.prototype;_.$1=function(){return{n:"",w:{t:[0,1,2,3,4,5,6,7,8,7,6,5,4,3,2,1,0,-1,-2,-3,-4,-5,-6,-7,-8,-7,-6,-5,-4,-3,-2,-1]}}},_.$2m=function(t){h.prototype.$2m.call(this,t),this._damping=!1},_.$27=function(){this.playing&&(this._damping=!0,this._dampVal=this._instrument.w.t[~~(32*this.$29)]),this.playing=!1},_.$1q=function(t){this.volume=t/256,this.$18()},_.$1x=function(t,s,i,e){if(this._damping){for(var h=i;h<e;h++)if(this._dampVal*=.98,t[h]+=this._dampVal*this.$2wL,s[h]+=this._dampVal*this.$2wR,this._dampVal>-.01&&this._dampVal<.01)return this._damping=!1,void(this.$29=0)}else if(this.playing)for(var h=i;h<e;h++){++this.$m>=r&&(this.$m-=r,this.$c()),this.$29+=this.$2a,this.$29>1&&(this.$29=this.$29%1);var n=this._instrument.w.t[~~(32*this.$29)];t[h]+=n*this.$2wL,s[h]+=n*this.$2wR}}},{"../constants":13,"./SimpleOscillator":24,"pixelbox/inherits":1}],27:[function(t,s,i){var e=t("./NesPulse"),h=t("./NesNoise"),n=t("./NesTriangle"),o=t("./Wavetable"),a=t("./Sawtooth"),r=t("./Sampler"),_=t("./FM"),l=t("./FreeVerb"),u=t("./Delay"),p=[null,e,n,h,a,o,r,_,null,null],c=[null,l,u];i.getSynth=function(t,s){if(!t)return null;var i=p[t];if(!i)return null;var e=new i(s);return e},i.getEffector=function(t,s){if(!t)return null;var i=c[t];if(!i)return null;var e=new i;return e},i.$s=c},{"./Delay":16,"./FM":17,"./FreeVerb":18,"./NesNoise":19,"./NesPulse":20,"./NesTriangle":21,"./Sampler":22,"./Sawtooth":23,"./Wavetable":26}]},{},[15]);
module.exports = __EXPORT__;