├── Flod JS 1.0 ├── Flod.php ├── includes │ ├── Amiga.js │ ├── BPPlayer.js │ ├── Core.js │ ├── D1Player.js │ ├── D2Player.js │ ├── DMPlayer.js │ ├── F2Player.js │ ├── FCPlayer.js │ ├── FXPlayer.js │ ├── FileLoader.js │ ├── HMPlayer.js │ ├── MKPlayer.js │ ├── PTPlayer.js │ ├── S1Player.js │ ├── S2Player.js │ ├── STPlayer.js │ ├── Soundblaster.js │ └── Unzip.js ├── license.txt └── minified │ ├── Amiga.js │ ├── BPPlayer.js │ ├── Core.js │ ├── D1Player.js │ ├── D2Player.js │ ├── DMPlayer.js │ ├── F2Player.js │ ├── FCPlayer.js │ ├── FXPlayer.js │ ├── FileLoader.js │ ├── HMPlayer.js │ ├── MKPlayer.js │ ├── PTPlayer.js │ ├── S1Player.js │ ├── S2Player.js │ ├── STPlayer.js │ ├── Soundblaster.js │ └── Unzip.js ├── Flod JS 2.0 ├── Flod.php ├── includes │ ├── Amiga.js │ ├── BPPlayer.js │ ├── Core.js │ ├── D1Player.js │ ├── D2Player.js │ ├── DMPlayer.js │ ├── DWPlayer.js │ ├── F2Player.js │ ├── FCPlayer.js │ ├── FEPlayer.js │ ├── FXPlayer.js │ ├── FileLoader.js │ ├── HMPlayer.js │ ├── JHPlayer.js │ ├── MKPlayer.js │ ├── PTPlayer.js │ ├── RHPlayer.js │ ├── S1Player.js │ ├── S2Player.js │ ├── STPlayer.js │ ├── Soundblaster.js │ └── Unzip.js ├── index.htm ├── license.txt ├── minified │ ├── Amiga.js │ ├── BPPlayer.js │ ├── Core.js │ ├── D1Player.js │ ├── D2Player.js │ ├── DMPlayer.js │ ├── DWPlayer.js │ ├── F2Player.js │ ├── FCPlayer.js │ ├── FEPlayer.js │ ├── FXPlayer.js │ ├── FileLoader.js │ ├── HMPlayer.js │ ├── JHPlayer.js │ ├── MKPlayer.js │ ├── PTPlayer.js │ ├── RHPlayer.js │ ├── S1Player.js │ ├── S2Player.js │ ├── STPlayer.js │ ├── Soundblaster.js │ └── Unzip.js └── readme.txt ├── Flod JS 2.1 ├── Flod.php ├── includes │ ├── Amiga.js │ ├── BPPlayer.js │ ├── Core.js │ ├── D1Player.js │ ├── D2Player.js │ ├── DMPlayer.js │ ├── DWPlayer.js │ ├── F2Player.js │ ├── FCPlayer.js │ ├── FEPlayer.js │ ├── FXPlayer.js │ ├── FileLoader.js │ ├── HMPlayer.js │ ├── JHPlayer.js │ ├── MKPlayer.js │ ├── PTPlayer.js │ ├── RHPlayer.js │ ├── S1Player.js │ ├── S2Player.js │ ├── STPlayer.js │ ├── Soundblaster.js │ └── Unzip.js ├── index.htm ├── license.txt ├── minified │ ├── Amiga.js │ ├── BPPlayer.js │ ├── Core.js │ ├── D1Player.js │ ├── D2Player.js │ ├── DMPlayer.js │ ├── DWPlayer.js │ ├── F2Player.js │ ├── FCPlayer.js │ ├── FEPlayer.js │ ├── FXPlayer.js │ ├── FileLoader.js │ ├── HMPlayer.js │ ├── JHPlayer.js │ ├── MKPlayer.js │ ├── PTPlayer.js │ ├── RHPlayer.js │ ├── S1Player.js │ ├── S2Player.js │ ├── STPlayer.js │ ├── Soundblaster.js │ └── Unzip.js └── readme.txt ├── Media ├── background.png ├── glass.png └── logo.png ├── Sample Tunes └── mod │ ├── MangaPart1.mod │ ├── Monday.mod │ ├── StardustMemories.mod │ ├── Tinytune.mod │ └── sound-of-da-lunatic.mod ├── license.txt └── readme.md /Flod JS 1.0/Flod.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Flod JS 1.0/license.txt: -------------------------------------------------------------------------------- 1 | JavaScript Flod 1.0 2 | 2011/11/30/ 3 | Christian Corti 4 | Neoart Costa Rica 5 | 6 | E-Mail: flod@neoartcr.com 7 | 8 | This is a JavaScript port of my AS3 Flod library, it currently works only in Chrome (I've used version 9 | 17.0.942.0 to develop it), hopefully in the future other browsers will add support for the Web Audio API. 10 | 11 | It took a lot of effort to reach this stage so if you want to use it in any commercial production I'll ask 12 | you to mention the proper credits and to make a donation to: chreil@hotmail.com via PayPal, thank you. 13 | 14 | You can include just the player(s) you need in your page just remember that all the Amiga players needs 15 | the Core.js and the Amiga.js files too and the PC player (FT2) needs the Core.js and the Soundblaster.js files. 16 | 17 | Example, including the ProTracker player: 18 | Core.js 19 | Amiga.js 20 | PTPlayer.js 21 | 22 | including the FastTracker II player: 23 | Core.js 24 | Soundblaster.js 25 | F2Player.js 26 | 27 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 28 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 29 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 30 | 31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 32 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 33 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 34 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Flod JS 1.0/minified/Amiga.js: -------------------------------------------------------------------------------- 1 | /* 2 | JavaScript Flod 1.0 3 | 2012/02/08 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 8 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 9 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 10 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 11 | 12 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 13 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 14 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 15 | */ 16 | function AmigaChannel(c){var b=Object.create(null,{next:{value:null,writable:!0},mute:{value:0,writable:!0},panning:{value:0,writable:!0},delay:{value:0,writable:!0},pointer:{value:0,writable:!0},length:{value:0,writable:!0},audena:{value:0,writable:!0},audcnt:{value:0,writable:!0},audloc:{value:0,writable:!0},audper:{value:0,writable:!0},audvol:{value:0,writable:!0},timer:{value:0,writable:!0},level:{value:0,writable:!0},ldata:{value:0,writable:!0},rdata:{value:0,writable:!0},enabled:{get:function(){return this.audena}, 17 | set:function(a){a!=this.audena&&(this.audena=a,this.audloc=this.pointer,this.audcnt=this.pointer+this.length,this.timer=1,a&&(this.delay+=2))}},period:{set:function(a){if(1>a||65535a?a=0:64b.l&&(b.l=-1);1b.r&&(b.r=-1)}}})}function AmigaRow(){return Object.create(null,{note:{value:0,writable:!0},sample:{value:0,writable:!0},effect:{value:0,writable:!0},param:{value:0,writable:!0}})} 21 | function AmigaSample(){return Object.create(null,{name:{value:"",writable:!0},length:{value:0,writable:!0},loop:{value:0,writable:!0},repeat:{value:0,writable:!0},volume:{value:0,writable:!0},pointer:{value:0,writable:!0},loopPtr:{value:0,writable:!0}})}function AmigaStep(){return Object.create(null,{pattern:{value:0,writable:!0},transpose:{value:0,writable:!0}})} 22 | function Amiga(){var c=CoreMixer();Object.defineProperties(c,{filter:{value:null,writable:!0},model:{value:1,writable:!0},memory:{value:[],writable:!0},loopPtr:{value:0,writable:!0},loopLen:{value:4,writable:!0},clock:{value:0,writable:!0},master:{value:0,writable:!0},ready:{value:0,writable:!0},volume:{set:function(b){0=b.length&&(c=e-b.length,a=b.length-b.position);for(e=h,a+=h;ethis.bufferSize&&(this.remains=f-this.bufferSize,f=this.bufferSize)));j=this.samplesLeft;g+j>=f&&(j=f-g);h=k+j;for(a=this.channels[0];a;){d=this.buffer[k];if(a.audena){o=a.audper/this.clock;i=a.audvol*this.master;e=i*(1-a.level);n=i*(1+a.level);for(c=k;c--a.timer&&(a.mute||(i=0.0078125*m[a.audloc],a.ldata=i*e,a.rdata=i*n),a.audloc++, 25 | a.timer+=o,a.audloc>=a.audcnt&&(a.audloc=a.pointer,a.audcnt=a.pointer+a.length)),d.l+=a.ldata,d.r+=a.rdata,d=d.next}else for(c=k;ca?a=0:1a?a=0:1a?a=0:a>this.length&&(a=this.length);this.index=a}},clear:{value:function(){this.buffer=new ArrayBuffer;this.view=null;this.index=this.length=0}},readAt:{value:function(a){return this.view.getUint8(a)}}, 17 | readByte:{value:function(){return this.view.getInt8(this.index++)}},readShort:{value:function(){var a=this.view.getInt16(this.index,this.endian);this.index+=2;return a}},readInt:{value:function(){var a=this.view.getInt32(this.index,this.endian);this.index+=4;return a}},readUbyte:{value:function(){return this.view.getUint8(this.index++)}},readUshort:{value:function(){var a=this.view.getUint16(this.index,this.endian);this.index+=2;return a}},readUint:{value:function(){var a=this.view.getUint32(this.index, 18 | this.endian);this.index+=4;return a}},readBytes:{value:function(a,b,d){var a=a.view,c=this.index,e=this.view;if((d+=c)>this.length)d=this.length;for(;cthis.length)a=this.length;for(;bb))if(this.buffer.length=b,b>a){this.buffer[a]=Sample();for(a=++a;a>0}}});window.neoart.audioContext||(window.neoart.audioContext=new webkitAudioContext);b.context=window.neoart.audioContext;b.sampleRate=b.context.sampleRate;return b}; -------------------------------------------------------------------------------- /Flod JS 1.0/minified/D2Player.js: -------------------------------------------------------------------------------- 1 | /* 2 | JavaScript Flod 1.0 3 | 2012/02/08 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 8 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 9 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 10 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 11 | 12 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 13 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 14 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 15 | */ 16 | (function(){function h(g){return Object.create(null,{index:{value:g,writable:!0},next:{value:null,writable:!0},channel:{value:null,writable:!0},sample:{value:null,writable:!0},trackPtr:{value:0,writable:!0},trackPos:{value:0,writable:!0},trackLen:{value:0,writable:!0},patternPos:{value:0,writable:!0},restart:{value:0,writable:!0},step:{value:null,writable:!0},row:{value:null,writable:!0},note:{value:0,writable:!0},period:{value:0,writable:!0},finalPeriod:{value:0,writable:!0},arpeggioPtr:{value:0, 17 | writable:!0},arpeggioPos:{value:0,writable:!0},pitchBend:{value:0,writable:!0},portamento:{value:0,writable:!0},tableCtr:{value:0,writable:!0},tablePos:{value:0,writable:!0},vibratoCtr:{value:0,writable:!0},vibratoDir:{value:0,writable:!0},vibratoPos:{value:0,writable:!0},vibratoPeriod:{value:0,writable:!0},vibratoSustain:{value:0,writable:!0},volume:{value:0,writable:!0},volumeMax:{value:0,writable:!0},volumePos:{value:0,writable:!0},volumeSustain:{value:0,writable:!0},initialize:{value:function(){this.sample= 18 | null;this.restart=this.patternPos=this.trackLen=this.trackPos=this.trackPtr=0;this.row=this.step=null;this.volume=this.vibratoSustain=this.vibratoPeriod=this.vibratoPos=this.vibratoDir=this.vibratoCtr=this.tablePos=this.tableCtr=this.portamento=this.pitchBend=this.arpeggioPos=this.arpeggioPtr=this.finalPeriod=this.period=this.note=0;this.volumeMax=63;this.volumeSustain=this.volumePos=0}}})}function i(){var g=AmigaSample();Object.defineProperties(g,{index:{value:0,writable:!0},pitchBend:{value:0,writable:!0}, 19 | synth:{value:0,writable:!0},table:{value:null,writable:!0},vibratos:{value:null,writable:!0},volumes:{value:null,writable:!0}});g.table=new Uint8Array(48);g.vibratos=new Uint8Array(15);g.volumes=new Uint8Array(15);return Object.seal(g)}var j=[0,6848,6464,6096,5760,5424,5120,4832,4560,4304,4064,3840,3616,3424,3232,3048,2880,2712,2560,2416,2280,2152,2032,1920,1808,1712,1616,1524,1440,1356,1280,1208,1140,1076,1016,960,904,856,808,762,720,678,640,604,570,538,508,480,452,428,404,381,360,339,320,302,285, 20 | 269,254,240,226,214,202,190,180,170,160,151,143,135,127,120,113,113,113,113,113,113,113,113,113,113,113,113,113];window.neoart.D2Player=function(g){g=AmigaPlayer(g);Object.defineProperties(g,{id:{value:"D2Player"},tracks:{value:[],writable:!0},patterns:{value:[],writable:!0},samples:{value:[],writable:!0},data:{value:null,writable:!0},arpeggios:{value:null,writable:!0},voices:{value:[],writable:!0},noise:{value:0,writable:!0},initialize:{value:function(){var c=this.voices[0];this.reset();this.speed= 21 | 5;this.tick=1;for(this.noise=0;c;)c.initialize(),c.channel=this.mixer.channels[c.index],c.sample=this.samples[this.samples.length-1],c.trackPtr=this.data[c.index],c.restart=this.data[c.index+4],c.trackLen=this.data[c.index+8],c=c.next}},loader:{value:function(c){var d=0,b,e=0,a,g,f;c.position=3014;if(".FNL"==c.readString(4)){c.position=4042;for(this.data=new Uint16Array(12);4>d;++d)this.data[d+4]=c.readUshort(),f=c.readUshort()>>1,this.data[d+8]=f,e+=f;f=e;for(d=3;0>2;this.patterns.length=e;for(d=0;dd;++d)b=c.readUshort(),b!=f&&(a[e++]=b);this.samples.length=e;for(d=0;db;++b)f.volumes[b]=c.readUbyte();for(b=0;15>b;++b)f.vibratos[b]=c.readUbyte();f.pitchBend=c.readUshort();f.synth=c.readByte();f.index=c.readUbyte();for(b=0;48>b;++b)f.table[b]=c.readUbyte();this.samples[d]=f}e=c.readUint();this.mixer.store(c,e);c.position+=64;for(d=0;8>d;++d)a[d]=c.readUint();e=this.samples.length;g=c.position;for(d=0;dd;++d)this.arpeggios[d]=c.readByte();f=i();f.pointer=f.loopPtr=this.mixer.memory.length;f.length=f.repeat=2;this.samples[e]=f;this.version=2}}},process:{value:function(){var c;c=0;for(var d,b,e,a=this.voices[0];64>c;)this.noise=this.noise<<7|this.noise>>>25,this.noise+=1858762093,this.noise^=2656676139,b=this.noise>>>24&255,127>>16&255,127>>8&255,127--this.tick&&(this.tick=this.speed);for(;a;){if(!(1>a.trackLen)){c=a.channel;e=a.sample;e.synth&&(c.pointer=e.loopPtr,c.length=e.repeat);if(0==this.tick){0==a.patternPos&&(a.step=this.tracks[a.trackPtr+a.trackPos],++a.trackPos==a.trackLen&&(a.trackPos=a.restart));b=a.row=this.patterns[a.step.pattern+a.patternPos];b.note&&(c.enabled=0,a.note=b.note,a.period=j[b.note+a.step.transpose], 26 | e=a.sample=this.samples[b.sample],0>e.synth&&(c.pointer=e.pointer,c.length=e.length),a.arpeggioPos=0,a.tableCtr=0,a.tablePos=0,a.vibratoCtr=e.vibratos[1],a.vibratoPos=0,a.vibratoDir=0,a.vibratoPeriod=0,a.vibratoSustain=e.vibratos[2],a.volume=0,a.volumePos=0,a.volumeSustain=0);switch(b.effect){case 0:this.speed=b.param&15;break;case 1:this.mixer.filter.active=b.param;break;case 2:a.pitchBend=~(b.param&255)+1;break;case 3:a.pitchBend=b.param&255;break;case 4:a.portamento=b.param;break;case 5:a.volumeMax= 27 | b.param&63;break;case 6:this.mixer.volume=b.param;break;case 7:a.arpeggioPtr=(b.param&63)<<4}a.patternPos=++a.patternPos&15}e=a.sample;0<=e.synth&&(a.tableCtr?a.tableCtr--:(a.tableCtr=e.index,b=e.table[a.tablePos],255==b&&(b=e.table[++a.tablePos],255!=b&&(a.tablePos=b,b=e.table[a.tablePos])),255!=b&&(c.pointer=b<<8,c.length=e.length,47<++a.tablePos&&(a.tablePos=0))));b=e.vibratos[a.vibratoPos];a.vibratoPeriod=a.vibratoDir?a.vibratoPeriod-b:a.vibratoPeriod+b;0==--a.vibratoCtr&&(a.vibratoCtr=e.vibratos[a.vibratoPos+ 28 | 1],a.vibratoDir=~a.vibratoDir);a.vibratoSustain?a.vibratoSustain--:(a.vibratoPos+=3,15==a.vibratoPos&&(a.vibratoPos=12),a.vibratoSustain=e.vibratos[a.vibratoPos+2]);a.volumeSustain?a.volumeSustain--:(b=e.volumes[a.volumePos],d=e.volumes[a.volumePos+1],dd&&(a.volume=d,a.volumePos+=3,15==a.volumePos&&(a.volumePos=12),a.volumeSustain=e.volumes[a.volumePos-1])));a.portamento&& 29 | (a.perioda.period&&(a.finalPeriod=a.period)));b=this.arpeggios[a.arpeggioPtr+a.arpeggioPos];-128==b&&(a.arpeggioPos=0,b=this.arpeggios[a.arpeggioPtr]);a.arpeggioPos=++a.arpeggioPos&15;0==a.portamento&&(b=a.note+a.step.transpose+b,0>b&&(b=0),a.finalPeriod=j[b]);a.vibratoPeriod-=e.pitchBend-a.pitchBend;c.period=a.finalPeriod+a.vibratoPeriod;b=a.volume>>2&63;b>a.volumeMax&& 30 | (b=a.volumeMax);c.volume=b;c.enabled=1}a=a.next}}}});g.voices[0]=h(0);g.voices[0].next=g.voices[1]=h(1);g.voices[1].next=g.voices[2]=h(2);g.voices[2].next=g.voices[3]=h(3);g.arpeggios=new Int8Array(1024);return Object.seal(g)}})(); -------------------------------------------------------------------------------- /Flod JS 1.0/minified/FXPlayer.js: -------------------------------------------------------------------------------- 1 | /* 2 | JavaScript Flod 1.0 3 | 2012/02/08 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 8 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 9 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 10 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 11 | 12 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 13 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 14 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 15 | */ 16 | (function(){function i(g){return Object.create(null,{index:{value:g,writable:!0},next:{value:null,writable:!0},channel:{value:null,writable:!0},sample:{value:null,writable:!0},enabled:{value:0,writable:!0},period:{value:0,writable:!0},effect:{value:0,writable:!0},param:{value:0,writable:!0},volume:{value:0,writable:!0},last:{value:0,writable:!0},slideCtr:{value:0,writable:!0},slideDir:{value:0,writable:!0},slideParam:{value:0,writable:!0},slidePeriod:{value:0,writable:!0},slideSpeed:{value:0,writable:!0}, 17 | stepPeriod:{value:0,writable:!0},stepSpeed:{value:0,writable:!0},stepWanted:{value:0,writable:!0},initialize:{value:function(){this.sample=this.channel=null;this.stepWanted=this.stepSpeed=this.stepPeriod=this.slideSpeed=this.slidePeriod=this.slideParam=this.slideDir=this.slideCtr=this.last=this.volume=this.param=this.effect=this.period=this.enabled=0}}})}var j=[1076,1016,960,906,856,808,762,720,678,640,604,570,538,508,480,453,428,404,381,360,339,320,302,285,269,254,240,226,214,202,190,180,170,160, 18 | 151,143,135,127,120,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,-1];window.neoart.FXPlayer=function(g){g=AmigaPlayer(g);Object.defineProperties(g,{id:{value:"FXPlayer"},standard:{value:0,writable:!0},track:{value:null,writable:!0},patterns:{value:[],writable:!0},samples:{value:[],writable:!0},length:{value:0,writable:!0},voices:{value:[],writable:!0},trackPos:{value:0,writable:!0},patternPos:{value:0,writable:!0},jumpFlag:{value:0,writable:!0}, 19 | force:{set:function(b){1>b?b=1:4>0}},initialize:{value:function(){var b=this.voices[0];this.reset();this.ntsc=this.standard;this.speed=6;for(this.jumpFlag=this.patternPos=this.trackPos=0;b;)b.initialize(),b.channel=this.mixer.channels[b.index],b.sample=this.samples[0],b=b.next}},loader:{value:function(b){var c=0,e,d,a,f, 20 | g=0,h;if(!(1686>b.length)){b.position=60;e=b.readString(4);if("SONG"!=e){b.position=124;e=b.readString(4);if("SO31"!=e||2350>b.length)return;a=544;this.samples.length=d=32;this.version=4}else a=0,this.samples.length=d=16,this.version=1;this.tempo=b.readUshort();b.position=0;for(e=1;ec&&(c=h);a&&(a+=4);b.position=660+a;c+=256;this.patterns.length=c;d=this.samples.length;for(e=0;e>4;this.patterns[e]=a;if(4==this.version)a.note&4096&&(a.sample+=16,0a.note&&(this.version=3)}if(a.sample>=d||null==this.samples[a.sample])a.sample=0}this.mixer.store(b,g);for(e=1;ea.stepSpeed?a.stepPerioda.stepWanted&&(a.stepPeriod=a.stepWanted,2>4<<3,a.slideDir?(a.slidePeriod-=8,b.period=a.slidePeriod,d-=a.slideSpeed,d==a.slidePeriod&&(a.slideDir=0)):(a.slidePeriod+= 24 | 8,b.period=a.slidePeriod,d+=a.slideSpeed,d==a.slidePeriod&&(a.slideDir=1));else{a=a.next;continue}d=0;switch(a.effect){case 1:d=this.tick%3;c=0;if(2==d){b.period=a.last;a=a.next;continue}for(d=1==d?a.param&15:a.param>>4;a.last!=j[c];)c++;b.period=j[c+d];break;case 2:d=a.param>>4;a.period=d?a.period+d:a.period-(a.param&15);b.period=a.period;break;case 3:this.mixer.filter.active=1;break;case 4:this.mixer.filter.active=0;break;case 8:d=-1;case 7:a.stepSpeed=a.param&15;e=2d&&(a.stepSpeed=-a.stepSpeed);for(c=0;;){b=j[c];if(b==e)break;if(0>b){c=-1;break}else c++}-1>4,-1c&&(c=0),a.stepWanted=j[c]):a.stepWanted=a.period;break;case 9:a.slideSpeed=a.slidePeriod=a.period,a.slideParam=a.param,a.slideDir=0,a.slideCtr=0}}a=a.next}else for(d=this.track[this.trackPos]+this.patternPos;a;){b=a.channel;a.enabled=0;c=this.patterns[d+a.index];a.period=c.note;a.effect=c.effect;a.param=c.param;if(-3==c.note)a.effect=0;else if(c.sample?(c=a.sample=this.samples[c.sample], 26 | a.volume=c.volume,5==a.effect?a.volume+=a.param:6==a.effect&&(a.volume-=a.param),b.volume=a.volume):c=a.sample,a.period){a.last=a.period;a.slideSpeed=0;a.stepSpeed=0;a.enabled=1;b.enabled=0;switch(a.period){case -2:b.volume=0;break;case -4:this.jumpFlag=1;break;case -5:break;default:b.pointer=c.pointer,b.length=c.length,b.period=a.period}a.enabled&&(b.enabled=1);b.pointer=c.loopPtr;b.length=c.repeat}a=a.next}if(++this.tick==this.speed&&(this.tick=0,this.patternPos+=4,256==this.patternPos||this.jumpFlag))this.patternPos= 27 | this.jumpFlag=0,++this.trackPos==this.length&&(this.trackPos=0,this.mixer.complete=1)}}});g.voices[0]=i(0);g.voices[0].next=g.voices[1]=i(1);g.voices[1].next=g.voices[2]=i(2);g.voices[2].next=g.voices[3]=i(3);g.track=new Uint16Array(128);return Object.seal(g)}})(); -------------------------------------------------------------------------------- /Flod JS 1.0/minified/FileLoader.js: -------------------------------------------------------------------------------- 1 | /* 2 | JavaScript Flod 1.0 3 | 2012/02/08 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 8 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 9 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 10 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 11 | 12 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 13 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 14 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 15 | */ 16 | (function(){var d="Unknown Format,Ultimate SoundTracker,D.O.C. SoundTracker 9,Master SoundTracker,D.O.C. SoundTracker 2.0/2.2,SoundTracker 2.3,SoundTracker 2.4,NoiseTracker 1.0,NoiseTracker 1.1,NoiseTracker 2.0,ProTracker 1.0,ProTracker 1.1/2.1,ProTracker 1.2/2.0,His Master's NoiseTracker,SoundFX 1.0/1.7,SoundFX 1.8,SoundFX 1.945,SoundFX 1.994/2.0,BP SoundMon V1,BP SoundMon V2,BP SoundMon V3,Delta Music 1.0,Delta Music 2.0,Digital Mugician,Digital Mugician 7 Voices,Future Composer 1.0/1.3,Future Composer 1.4,SidMon 1.0,SidMon 2.0,FastTracker II,Sk@leTracker,MadTracker 2.0,MilkyTracker,OpenMPT".split(","); 17 | window.neoart.FileLoader=function(){var c=Object.create(null,{player:{value:null,writable:!0},index:{value:0,writable:!0},amiga:{value:null,writable:!0},mixer:{value:null,writable:!0},tracker:{get:function(){return this.player?d[this.index+this.player.version]:""}},load:{value:function(a){var b;a.view||(a=ByteArray(a));a.endian=1;a.position=0;if(67324752==a.readUint())if(window.neoart.Unzip)a=ZipFile(a),a=a.uncompress(a.entries[0]);else throw"Unzip support is not available.";if(this.player&&"STPlayer"!= 18 | this.player.id&&(this.player.load(a),this.player.version))return player;if(336a.length)&&(a.position=1080,g=a.readString(4),"FEST"==g)){a.position=950;this.length=a.readUbyte();for(this.restart=a.readUbyte();128>e;++e)this.track[e]=a.readUbyte();a.position=0;this.title=a.readString(20);for(e=this.version=1;32>e;++e){this.samples[e]=null;g=a.readString(4);if("Mupp"==g){h=a.readUbyte();for(d=0;128>d;++d)this.track[d]&&this.track[d]>=h&&this.track[d]--;b=l();b.name=g;b.length=b.repeat=32;b.restart=a.readUbyte(); 22 | b.waveLen=a.readUbyte();a.position+=17;b.finetune=a.readByte();b.volume=a.readUbyte();g=a.position+4;h=1084+(h<<10);a.position=h;b.pointer=this.mixer.memory.length;b.waves=new Uint16Array(64);b.volumes=new Uint8Array(64);this.mixer.store(a,896);for(d=0;64>d;++d)b.waves[d]=a.readUbyte()<<5;for(d=0;64>d;++d)b.volumes[d]=a.readUbyte()&127;a.position=h;a.writeInt(1718382436);a.position=g;c+=896}else{g=g.substr(0,2);"El"==g?a.position+=18:(a.position-=4,g=a.readString(22));h=a.readUshort();if(!h){a.position+= 23 | 6;continue}b=l();b.name=g;b.pointer=f;b.length=h<<1;b.finetune=a.readByte();b.volume=a.readUbyte();b.loop=a.readUshort()<<1;b.repeat=a.readUshort()<<1;f+=b.length}this.samples[e]=b}for(e=0;128>e;++e)h=this.track[e]<<8,this.track[e]=h,h>i&&(i=h);a.position=1084;i+=256;this.patterns.length=i;for(e=0;e>16&4095;d.sample=h>>24&240|h>>12&15;d.effect=h>>8&15;d.param=h&255;this.patterns[e]=d}this.mixer.store(a, 24 | f);for(e=1;32>e;++e)if(b=this.samples[e],!(null==b||"Mupp"==b.name)){b.pointer+=c;b.loop?(b.loopPtr=b.pointer+b.loop,b.length=b.loop+b.repeat):(b.loopPtr=this.mixer.memory.length,b.repeat=2);f=b.pointer+4;for(d=b.pointer;dc.period?(c.portaDir=0,c.portaPeriod=e.note):c.portaPeriod=0:(c.period= 26 | e.note,c.vibratoPos=0,c.wavePos=0,c.enabled=1,a.enabled=0,d=c.period*g.finetune>>8,a.period=c.period+d,c.handler?(a.pointer=g.loopPtr,a.length=g.repeat):(a.pointer=g.pointer,a.length=g.length)));switch(c.effect){case 11:this.trackPos=c.param-1;this.jumpFlag=1;break;case 12:c.volume2=c.param;64d?d=1:31>4:a.param&15;g=37-b;for(e=0;e= 28 | k[e]){d=k[e+b];break}break;case 1:a.period-=a.param;113>a.period&&(a.period=113);d=a.period;break;case 2:a.period+=a.param;856a.portaPeriod&&(a.period=a.portaPeriod,a.portaPeriod=0)));d=a.period;break;case 4:case 6:6==a.effect?c=1:a.param&& 29 | (a.vibratoSpeed=a.param);b=n[a.vibratoPos>>2&31];b=(a.vibratoSpeed&15)*b>>7;d=127>2&60;a.vibratoPos=a.vibratoPos+b&255;break;case 7:b=m[(a.vibratoPos&15)+((a.param&15)<<4)];a.vibratoPos++;for(e=0;37>e&&!(d>=k[e]);++e);b+=e;35>8);c&&(b=a.param>>4,a.volume2=b?a.volume2+b:a.volume2-(a.param&15),64a.volume2&&(a.volume2=0))}},handler:{value:function(a){var f;a.handler&& 30 | (f=a.sample,f.loopPtr=f.pointer+f.waves[a.wavePos],a.volume1=f.volumes[a.wavePos],++a.wavePos>f.waveLen&&(a.wavePos=f.restart));a.channel.volume=a.volume1*a.volume2>>6}}});f.voices[0]=j(0);f.voices[0].next=f.voices[1]=j(1);f.voices[1].next=f.voices[2]=j(2);f.voices[2].next=f.voices[3]=j(3);f.track=new Uint16Array(128);return Object.seal(f)}})(); -------------------------------------------------------------------------------- /Flod JS 1.0/minified/MKPlayer.js: -------------------------------------------------------------------------------- 1 | /* 2 | JavaScript Flod 1.0 3 | 2012/02/08 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 8 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 9 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 10 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 11 | 12 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 13 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 14 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 15 | */ 16 | (function(){function h(f){return Object.create(null,{index:{value:f,writable:!0},next:{value:null,writable:!0},channel:{value:null,writable:!0},sample:{value:null,writable:!0},enabled:{value:0,writable:!0},period:{value:0,writable:!0},effect:{value:0,writable:!0},param:{value:0,writable:!0},volume:{value:0,writable:!0},portaDir:{value:0,writable:!0},portaPeriod:{value:0,writable:!0},portaSpeed:{value:0,writable:!0},vibratoPos:{value:0,writable:!0},vibratoSpeed:{value:0,writable:!0},initialize:{value:function(){this.sample= 17 | this.channel=null;this.vibratoSpeed=this.vibratoPos=this.portaSpeed=this.portaPeriod=this.portaDir=this.volume=this.param=this.effect=this.period=this.enabled=0}}})}var i=[856,808,762,720,678,640,604,570,538,508,480,453,428,404,381,360,339,320,302,285,269,254,240,226,214,202,190,180,170,160,151,143,135,127,120,113,0],j=[0,24,49,74,97,120,141,161,180,197,212,224,235,244,250,253,255,253,250,244,235,224,212,197,180,161,141,120,97,74,49,24];window.neoart.MKPlayer=function(f){f=AmigaPlayer(f);Object.defineProperties(f, 18 | {id:{value:"MKPlayer"},track:{value:null,writable:!0},patterns:{value:[],writable:!0},samples:{value:[],writable:!0},length:{value:0,writable:!0},restart:{value:0,writable:!0},voices:{value:[],writable:!0},trackPos:{value:0,writable:!0},patternPos:{value:0,writable:!0},jumpFlag:{value:0,writable:!0},vibratoDepth:{value:0,writable:!0},restartSave:{value:0,writable:!0},force:{set:function(b){1>b?b=1:5b.length)&&(b.position=1080,e=b.readString(4),!("M.K."!=e&&"FLT4"!=e))){b.position=0;this.title=b.readString(20);this.version=1;b.position+=22;for(e=1;32>e;++e)(g=b.readUshort())? 20 | (c=AmigaSample(),b.position-=24,c.name=b.readString(22),c.length=g<<1,b.position+=3,c.volume=b.readUbyte(),c.loop=b.readUshort()<<1,c.repeat=b.readUshort()<<1,b.position+=22,c.pointer=d,d+=c.length,this.samples[e]=c,32768e;++e)g=b.readUbyte()<<8,this.track[e]=g,g>f&&(f=g);b.position=1084;f+=256;this.patterns.length=f;for(e=0;e>16&4095;c.effect=g>>8&15;c.sample=g>>24&240|g>>12&15;c.param=g&255;this.patterns[e]=c;if(31c.effect){this.version=0;return}}this.mixer.store(b,d);for(e=1;32>e;++e)if(c=this.samples[e]){-1this.version&&this.restart&&(this.version=4)}}},process:{value:function(){var b,f,e,c,d,g,a=this.voices[0];if(this.tick)for(;a;){b=a.channel;if(!a.effect&&!a.param)b.period=a.period;else{switch(a.effect){case 0:d=this.tick%3;if(!d){b.period=a.period;a=a.next;continue}d=1==d?a.param>>4:a.param&15;c=a.period&4095;e=37-d;for(f=0;f= 23 | i[f]){b.period=i[f+d];break}break;case 1:a.period-=a.param;113>a.period&&(a.period=113);b.period=a.period;break;case 2:a.period+=a.param;856=a.portaPeriod&&(a.period=a.portaPeriod,a.portaPeriod=0)));b.period=a.period;break;case 4:case 6:6== 24 | a.effect?g=1:a.param&&(a.vibratoSpeed=a.param);d=a.vibratoPos>>2&31;d=(a.vibratoSpeed&15)*j[d]>>this.vibratoDepth;b.period=127>2&60;a.vibratoPos=a.vibratoPos+d&255;break;case 10:g=1}g&&(d=a.param>>4,g=0,a.volume=d?a.volume+d:a.volume-(a.param&15),0>a.volume?a.volume=0:64a.period?(a.portaDir=0,a.portaPeriod=d.note):a.portaPeriod=0:(a.enabled=1,a.vibratoPos=0,b.enabled=0,b.pointer=e.pointer,b.length=e.length,b.period=a.period=d.note));switch(a.effect){case 11:this.trackPos=a.param-1;this.jumpFlag^=1;break;case 12:b.volume=a.param;5==this.version&&(a.volume=a.param);break;case 13:this.jumpFlag^= 26 | 1;break;case 14:this.mixer.filter.active=a.param^1;break;case 15:d=a.param,1>d?d=1:31b? 18 | b=1:4this.version&&(b=(b?20.44952532:20.637767904)*(this.sampleRate/1E3)/120,this.mixer.samplesTick=(240-this.tempo)*b>>0)}},initialize:{value:function(){var b=this.voices[0];this.reset();this.ntsc=this.standard;this.speed=6;for(this.jumpFlag=this.patternPos=this.trackPos=0;b;)b.initialize(),b.channel=this.mixer.channels[b.index],b.sample=this.samples[0],b=b.next}},loader:{value:function(b){var d=0,c,a,e=0,g=0,f; 19 | if(!(1626>b.length)){this.title=b.readString(20);e+=this.isLegal(this.title);this.version=1;b.position=42;for(c=1;16>c;++c)(f=b.readUshort())?(a=AmigaSample(),b.position-=24,a.name=b.readString(22),a.length=f<<1,b.position+=3,a.volume=b.readUbyte(),a.loop=b.readUshort(),a.repeat=b.readUshort()<<1,b.position+=22,a.pointer=g,g+=a.length,this.samples[c]=a,e+=this.isLegal(a.name),9999c;++c)f=b.readUbyte()<<8,16384d&&(d=f);b.position=600;d+=256;this.patterns.length=d;c=b.length-g-600>>2;d>c&&(d=c);for(c=0;c>4;this.patterns[c]=a;2a.effect&&e--;a.note&&(113>a.note||856c;++c)if(a=this.samples[c]){a.loop?(a.loopPtr=a.pointer+a.loop,a.pointer=a.loopPtr,a.length=a.repeat):(a.loopPtr=this.mixer.memory.length,a.repeat=2);g=a.pointer+4;for(b=a.pointer;be&&(this.version=0)}}},process:{value:function(){var b,d,c,a=this.voices[0];if(this.tick)for(;a;){if(a.param)if(b= 22 | a.channel,1==this.version)1==a.effect?this.arpeggio(a):2==a.effect&&(c=a.param>>4,a.period=c?a.period+c:a.period-(a.param&15),b.period=a.period);else{switch(a.effect){case 0:this.arpeggio(a);break;case 1:a.period-=a.param&15;113>a.period&&(a.period=113);b.period=a.period;break;case 2:a.period+=a.param&15,856this.version))switch(a.effect){case 11:this.trackPos= 24 | a.param-1;this.jumpFlag^=1;break;case 12:b.volume=a.param;break;case 13:this.jumpFlag^=1;break;case 14:this.mixer.filter.active=a.param^1;break;case 15:if(!a.param)break;this.speed=a.param&15;this.tick=0}a=a.next}if(++this.tick==this.speed&&(this.tick=0,this.patternPos+=4,256==this.patternPos||this.jumpFlag))this.patternPos=this.jumpFlag=0,++this.trackPos==this.length&&(this.trackPos=0,this.mixer.complete=1)}},arpeggio:{value:function(b){var d=b.channel,c=0,a=this.tick%3;if(a){for(a=1==a?b.param>> 25 | 4:b.param&15;b.last!=i[c];)c++;d.period=i[c+a]}else d.period=b.last}},isLegal:{value:function(b){var d,c=0,a=b.length;if(!a)return 0;for(;cd||127d.length&&(g=d.length-f);for(a=0;ab?b+=256:127d.length&&(g=d.length-f>>1);for(a=0;ab?b+=65536:32767this.bufferSize&&(this.remains=i-this.bufferSize,i=this.bufferSize)));h=this.samplesLeft;d+h>=i&&(h=i-d);k=m+h;for(a=this.channels[0];a;){if(a.enabled){l=a.sample;g=l.data;e=this.buffer[m];for(f=m;f=a.length)if(l.loopMode)a.pointer=l.loopStart+(a.index-a.length),a.length=l.length,2==l.loopMode&&(a.dir=a.dir?0:l.length+l.loopStart-1);else{a.enabled=0;break}else a.pointer=a.index;a.mute?(a.ldata=0,a.rdata= 24 | 0):(j=a.dir?g[a.dir-a.pointer]:g[a.pointer],a.ldata=j*a.lvol,a.rdata=j*a.rvol)}a.index=a.pointer+a.delta;if(1<=(a.fraction+=a.speed))a.index++,a.fraction--;e.l+=a.ldata;e.r+=a.rdata;e=e.next}}a=a.next}m=k;d+=h;this.samplesLeft-=h}e=this.buffer[0];a=b.outputBuffer.getChannelData(0);b=b.outputBuffer.getChannelData(1);for(f=0;fe.l&&(e.l=-1),1e.r&&(e.r=-1),a[f]=e.l,b[f]=e.r,e.l=e.r=0,e=e.next}},accurate:{value:function(b){var a,d,f,p,k,m=0,l,e=0,i,h,j,c,o=this.bufferSize, 25 | q,n;if(this.completed){if(!this.remains){this.player.stop();return}o=this.remains}for(;mthis.bufferSize&&(this.remains=o-this.bufferSize,o=this.bufferSize)));q=this.samplesLeft;m+q>=o&&(q=o-m);l=e+q;for(a=this.channels[0];a;){if(a.enabled){h=a.sample;d=h.data;if(j=a.oldSample)f=j.data;c=this.buffer[e];for(k=e;k>0,a.fraction-=p,0a.length&&(a.fraction+=a.pointer-a.length,a.pointer=a.length)):(a.pointer-=p,a.pointer>0,a.oldFraction-=p,0a.oldLength&&(a.oldFraction+=a.oldPointer- 27 | a.oldLength,a.oldPointer=a.oldLength)):(a.oldPointer-=p,a.oldPointerc.l&&(c.l=-1),1c.r&&(c.r=-1),a[k]=c.l,b[k]=c.r,c.l=c.r=0,c=c.next}}});d.bufferSize=8192;return Object.seal(d)} 30 | function SBPlayer(d){var b=CorePlayer();Object.defineProperties(b,{track:{value:null,writable:!0},length:{value:0,writable:!0},restart:{value:0,writable:!0},timer:{value:0,writable:!0},master:{value:0,writable:!0},setup:{configurable:!1,value:function(){this.mixer.setup(this.channels)}}});b.mixer=d||Soundblaster();b.mixer.player=b;b.endian=1;b.quality=1;return b}; -------------------------------------------------------------------------------- /Flod JS 1.0/minified/Unzip.js: -------------------------------------------------------------------------------- 1 | /* 2 | JavaScript Flod 1.0 3 | 2012/02/08 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 8 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 9 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 10 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 11 | 12 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 13 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 14 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 15 | */ 16 | function ZipFile(g){function h(c){var b=Object.create(null,{count:{value:null,writable:!0},symbol:{value:null,writable:!0}});b.count=new Uint16Array(c);b.symbol=new Uint16Array(c);return Object.seal(b)}function m(){var c=Object.create(null,{output:{value:null,writable:!0},inpbuf:{value:null,writable:!0},inpcnt:{value:0,writable:!0},outcnt:{value:0,writable:!0},bitbuf:{value:0,writable:!0},bitcnt:{value:0,writable:!0},flencode:{value:null,writable:!0},fdiscode:{value:null,writable:!0},dlencode:{value:null, 17 | writable:!0},ddiscode:{value:null,writable:!0},input:{set:function(b){this.inpbuf=b[0];this.inpbuf.endian=b[2];this.inpcnt=this.inpbuf.position=0;this.output=ByteArray(new ArrayBuffer(b[1]));this.output.endian=b[2];this.outcnt=this.output.position=0}},inflate:{value:function(){var b,a;do if(a=this.bits(1),b=this.bits(2),b=0==b?this.stored():1==b?this.codes(this.flencode,this.fdiscode):2==b?this.dynamic():1)throw n;while(!a)}},initialize:{value:function(){var b=new Uint8Array(288),a=0;this.flencode= 18 | h(288);for(this.fdiscode=h(30);144>a;++a)b[a]=8;for(;256>a;++a)b[a]=9;for(;280>a;++a)b[a]=7;for(;288>a;++a)b[a]=8;this.construct(this.fdiscode,b,288);for(a=0;30>a;++a)b[a]=5;this.construct(this.fdiscode,b,30);this.dlencode=h(286);this.ddiscode=h(30)}},construct:{value:function(b,a,c){for(var e=0,d=1,i=new Uint16Array(16),f=0;16>e;++e)b.count[e]=0;for(;fe;++e)if(d<<=1,d-=b.count[e],0>d)return d;for(e=1;15>e;++e)i[e+1]=i[e]+b.count[e];for(f= 19 | 0;f>b;this.bitcnt-=b;return a&(1<d)return d;if(256>d)this.output.writeAt(this.outcnt++,d);else if(256d)return d;c= 20 | q[d]+this.bits(r[d]);if(c>this.outcnt)throw s;for(c=this.outcnt-c;e--;)this.output.writeAt(this.outcnt++,this.output.readAt(c++))}}while(256!=d);return 0}},decode:{value:function(b){for(var a=this.bitbuf,c=0,e,d=0,i=0,f=this.inpbuf.length,g=this.bitcnt,h=1;;){for(;g--;){c|=a&1;a>>=1;e=b.count[h];if(cb)throw j;a=this.inpbuf.readAt(this.inpcnt++);a|=this.inpbuf.readAt(this.inpcnt++)<<8;if(this.inpbuf.readAt(this.inpcnt++)!=(~a&255)||this.inpbuf.readAt(this.inpcnt++)!=(~a>>8&255))throw t;if(this.inpcnt+a>b)throw j;for(;a--;)this.output.writeAt(this.outcnt++,this.inpbuf.readAt(this.inpcnt++));return 0}},dynamic:{value:function(){var b=new Uint8Array(316),a;a=0;var c,e=this.bits(5)+257,d=this.bits(5)+1; 22 | c=this.bits(4)+4;var g=e+d,f;if(286a;++a)b[l[a]]=0;if(a=this.construct(this.dlencode,b,19))throw v;for(a=0;af)b[a++]=f;else{c=0;if(16==f){if(0==a)throw w;c=b[a-1];f=3+this.bits(2)}else f=17==f?3+this.bits(3):11+this.bits(7);if(a+f>g)throw x;for(;f--;)b[a++]=c}a=this.construct(this.dlencode,b,e);if(0>a||0a||0< 23 | a&&1!=d-this.ddiscode.count[0])throw z;return this.codes(this.dlencode,this.ddiscode)}}});c.initialize();return Object.seal(c)}function A(){return Object.create(null,{name:{value:"",writable:!0},extra:{value:null,writable:!0},version:{value:0,writable:!0},flag:{value:0,writable:!0},method:{value:0,writable:!0},time:{value:0,writable:!0},crc:{value:0,writable:!0},compressed:{value:0,writable:!0},size:{value:0,writable:!0},offset:{value:0,writable:!0},date:{get:function(){return new Date((this.time>> 24 | 25&127)+1980,(this.time>>21&15)-1,this.time>>16&31,this.time>>11&31,this.time>>5&63,(this.time&31)<<1)}},isDirectory:{get:function(){return"/"==this.name.charAt(this.name.length-1)}}})}if(!g)return null;var n="Invalid block type.",j="Available inflate data did not terminate.",s="Distance is too far back.",t="Stored block length did not match one's complement.",u="Too many length or distance codes.",v="Code lengths codes incomplete.",w="Repeat lengths with no first length.",x="Repeat more than specified lengths.", 25 | y="Invalid literal/length code lengths.",z="Invalid distance code lengths.",o=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],p=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],q=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],r=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],l=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],k=Object.create(null,{endian:{value:1, 26 | writable:!0},entries:{value:null,writable:!0},stream:{value:null,writable:!0},uncompress:{value:function(c){var b=this.stream,a;if(!c)return null;b.position=c.offset+28;a=b.readUshort();b.position=30+c.name.length+a;if(c.compressed)switch(a=ByteArray(new ArrayBuffer(c.compressed),this.endian),b.readBytes(a,0,c.compressed),c.method){case 0:return a;case 8:return b=m(),b.input=[a,c.size,this.endian],b.inflate(),b.output;default:throw"Compression method not supported.";}}},parseCentral:{value:function(){for(var c= 27 | this.stream,b,a=ByteArray(new ArrayBuffer(46),this.endian),g=0,e=this.entries.length,d;ga&&(a=0);do if(80==c.readAt(b)&&(c.position=b,101010256==c.readUint()))break;while(--b>a);if(b==a)throw"The archive is either in unknown format or damaged.";c.position=b+10;this.entries=[];this.entries.length=c.readUshort();c.position=b+16;c.position= 29 | c.readUint();this.parseCentral()}}});g.view||(g=ByteArray(g));g.endian=1;g.position=0;k.stream=g;k.parseEnd();return Object.seal(k)}window.neoart.Unzip=1; -------------------------------------------------------------------------------- /Flod JS 2.0/Flod.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Flod JS 2.0/index.htm: -------------------------------------------------------------------------------- 1 | 18 | 19 | 20 | 21 | Flod JS 2.0 | Christian Corti 22 | 26 | 27 | 28 | 29 |

Flod JS 2.0 | © 2012 Christian Corti

30 |
31 |
32 |

FileLoader

33 |
34 |

 

35 |
36 |

37 | 38 | 39 | 40 | 41 | 42 | 111 | 112 | -------------------------------------------------------------------------------- /Flod JS 2.0/license.txt: -------------------------------------------------------------------------------- 1 | Flod version 4.0 2 | Flod JS version 2.0 3 | Flip version 1.1 4 | 5 | 2012/04/01 6 | Christian Corti 7 | Neoart Costa Rica 8 | 9 | E-Mail: flod@neoartcr.com 10 | 11 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 12 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 13 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 14 | 15 | Flod is free for non commercial user, to use it in any commercial production I'll ask you to 16 | mention the proper credits and to make a donation to: chreil@hotmail.com via PayPal, thank you. 17 | 18 | Special thanks to Richard Davey and Mathew Nolan :) -------------------------------------------------------------------------------- /Flod JS 2.0/minified/Amiga.js: -------------------------------------------------------------------------------- 1 | /* 2 | Flod JS 2.0 3 | 2012/04/01 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | Last Update: Flod JS 2.0 - 2012/02/26 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 10 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 11 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 12 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 13 | 14 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 15 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 16 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 17 | */ 18 | function AmigaChannel(c){var b=Object.create(null,{next:{value:null,writable:!0},mute:{value:0,writable:!0},panning:{value:0,writable:!0},delay:{value:0,writable:!0},pointer:{value:0,writable:!0},length:{value:0,writable:!0},audena:{value:0,writable:!0},audcnt:{value:0,writable:!0},audloc:{value:0,writable:!0},audper:{value:0,writable:!0},audvol:{value:0,writable:!0},timer:{value:0,writable:!0},level:{value:0,writable:!0},ldata:{value:0,writable:!0},rdata:{value:0,writable:!0},enabled:{get:function(){return this.audena}, 19 | set:function(a){a!=this.audena&&(this.audena=a,this.audloc=this.pointer,this.audcnt=this.pointer+this.length,this.timer=1,a&&(this.delay+=2))}},period:{set:function(a){60>a?a=60:65535a?a=0:64b.l&&(b.l=-1);1b.r&&(b.r=-1)}}})}function AmigaRow(){return Object.create(null,{note:{value:0,writable:!0},sample:{value:0,writable:!0},effect:{value:0,writable:!0},param:{value:0,writable:!0}})}function AmigaSample(){return Object.create(null,{name:{value:"",writable:!0},length:{value:0,writable:!0},loop:{value:0,writable:!0},repeat:{value:0,writable:!0},volume:{value:0,writable:!0},pointer:{value:0,writable:!0},loopPtr:{value:0,writable:!0}})}function AmigaStep(){return Object.create(null,{pattern:{value:0,writable:!0},transpose:{value:0,writable:!0}})} 23 | function Amiga(){var c=CoreMixer();Object.defineProperties(c,{filter:{value:null,writable:!0},model:{value:1,writable:!0},memory:{value:[],writable:!0},loopPtr:{value:0,writable:!0},loopLen:{value:4,writable:!0},clock:{value:0,writable:!0},master:{value:0,writable:!0},ready:{value:0,writable:!0},volume:{set:function(b){0=b.length&&(c=e-b.length,a=b.length-b.position);e=h;for(a+=h;ethis.bufferSize&&(this.remains=f-this.bufferSize,f=this.bufferSize)));j=this.samplesLeft;g+j>=f&&(j=f-g);h=k+j;for(a=this.channels[0];a;){d=this.buffer[k];if(a.audena){o=a.audper/this.clock;i=a.audvol*this.master;e=i*(1-a.level);n=i*(1+a.level);for(c=k;c--a.timer&&(a.mute||(i=0.0078125*m[a.audloc],a.ldata=i*e,a.rdata= 26 | i*n),a.audloc++,a.timer+=o,a.audloc>=a.audcnt))a.audloc=a.pointer,a.audcnt=a.pointer+a.length;d.l+=a.ldata;d.r+=a.rdata;d=d.next}}else for(c=k;ca?a=0:1a?a=0:1a?a=0:a>this.length&&(a=this.length);this.index=a}},clear:{value:function(){this.buffer=new ArrayBuffer;this.view=null;this.index=this.length=0}},readAt:{value:function(a){return this.view.getUint8(a)}}, 19 | readByte:{value:function(){return this.view.getInt8(this.index++)}},readShort:{value:function(){var a=this.view.getInt16(this.index,this.endian);this.index+=2;return a}},readInt:{value:function(){var a=this.view.getInt32(this.index,this.endian);this.index+=4;return a}},readUbyte:{value:function(){return this.view.getUint8(this.index++)}},readUshort:{value:function(){var a=this.view.getUint16(this.index,this.endian);this.index+=2;return a}},readUint:{value:function(){var a=this.view.getUint32(this.index, 20 | this.endian);this.index+=4;return a}},readBytes:{value:function(a,b,d){var a=a.view,c=this.index,e=this.view;if((d+=c)>this.length)d=this.length;for(;cthis.length)a=this.length;for(;bb))if(this.buffer.length=b,b>a){this.buffer[a]=Sample();for(a=++a;a>0}}});window.neoart.audioContext||(window.neoart.audioContext=new webkitAudioContext);b.context=window.neoart.audioContext;b.sampleRate=b.context.sampleRate;return b}; -------------------------------------------------------------------------------- /Flod JS 2.0/minified/D2Player.js: -------------------------------------------------------------------------------- 1 | /* 2 | Flod JS 2.0 3 | 2012/04/01 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | Last Update: Flod JS 2.0 - 2012/03/30 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 10 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 11 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 12 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 13 | 14 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 15 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 16 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 17 | */ 18 | (function(){function h(g){return Object.create(null,{index:{value:g,writable:!0},next:{value:null,writable:!0},channel:{value:null,writable:!0},sample:{value:null,writable:!0},trackPtr:{value:0,writable:!0},trackPos:{value:0,writable:!0},trackLen:{value:0,writable:!0},patternPos:{value:0,writable:!0},restart:{value:0,writable:!0},step:{value:null,writable:!0},row:{value:null,writable:!0},note:{value:0,writable:!0},period:{value:0,writable:!0},finalPeriod:{value:0,writable:!0},arpeggioPtr:{value:0, 19 | writable:!0},arpeggioPos:{value:0,writable:!0},pitchBend:{value:0,writable:!0},portamento:{value:0,writable:!0},tableCtr:{value:0,writable:!0},tablePos:{value:0,writable:!0},vibratoCtr:{value:0,writable:!0},vibratoDir:{value:0,writable:!0},vibratoPos:{value:0,writable:!0},vibratoPeriod:{value:0,writable:!0},vibratoSustain:{value:0,writable:!0},volume:{value:0,writable:!0},volumeMax:{value:0,writable:!0},volumePos:{value:0,writable:!0},volumeSustain:{value:0,writable:!0},initialize:{value:function(){this.sample= 20 | null;this.restart=this.patternPos=this.trackLen=this.trackPos=this.trackPtr=0;this.row=this.step=null;this.volume=this.vibratoSustain=this.vibratoPeriod=this.vibratoPos=this.vibratoDir=this.vibratoCtr=this.tablePos=this.tableCtr=this.portamento=this.pitchBend=this.arpeggioPos=this.arpeggioPtr=this.finalPeriod=this.period=this.note=0;this.volumeMax=63;this.volumeSustain=this.volumePos=0}}})}function i(){var g=AmigaSample();Object.defineProperties(g,{index:{value:0,writable:!0},pitchBend:{value:0,writable:!0}, 21 | synth:{value:0,writable:!0},table:{value:null,writable:!0},vibratos:{value:null,writable:!0},volumes:{value:null,writable:!0}});g.table=new Uint8Array(48);g.vibratos=new Uint8Array(15);g.volumes=new Uint8Array(15);return Object.seal(g)}var j=[0,6848,6464,6096,5760,5424,5120,4832,4560,4304,4064,3840,3616,3424,3232,3048,2880,2712,2560,2416,2280,2152,2032,1920,1808,1712,1616,1524,1440,1356,1280,1208,1140,1076,1016,960,904,856,808,762,720,678,640,604,570,538,508,480,452,428,404,381,360,339,320,302,285, 22 | 269,254,240,226,214,202,190,180,170,160,151,143,135,127,120,113,113,113,113,113,113,113,113,113,113,113,113,113];window.neoart.D2Player=function(g){g=AmigaPlayer(g);Object.defineProperties(g,{id:{value:"D2Player"},tracks:{value:[],writable:!0},patterns:{value:[],writable:!0},samples:{value:[],writable:!0},data:{value:null,writable:!0},arpeggios:{value:null,writable:!0},voices:{value:[],writable:!0},noise:{value:0,writable:!0},initialize:{value:function(){var c=this.voices[0];this.reset();this.speed= 23 | 5;this.tick=1;for(this.noise=0;c;)c.initialize(),c.channel=this.mixer.channels[c.index],c.sample=this.samples[this.samples.length-1],c.trackPtr=this.data[c.index],c.restart=this.data[c.index+4],c.trackLen=this.data[c.index+8],c=c.next}},loader:{value:function(c){var d=0,b,e=0,a,g,f;c.position=3014;if(".FNL"==c.readString(4)){c.position=4042;for(this.data=new Uint16Array(12);4>d;++d)this.data[d+4]=c.readUshort()>>1,f=c.readUshort()>>1,this.data[d+8]=f,e+=f;f=e;for(d=3;0>2;this.patterns.length=e;for(d=0;dd;++d)b=c.readUshort(),b!=f&&(a[e++]=b);this.samples.length=e;for(d=0;db;++b)f.volumes[b]=c.readUbyte();for(b=0;15>b;++b)f.vibratos[b]=c.readUbyte();f.pitchBend=c.readUshort();f.synth=c.readByte();f.index=c.readUbyte();for(b=0;48>b;++b)f.table[b]=c.readUbyte();this.samples[d]=f}e=c.readUint();this.mixer.store(c,e);c.position+=64;for(d=0;8>d;++d)a[d]=c.readUint();e=this.samples.length;g=c.position;for(d=0;dd;++d)this.arpeggios[d]=c.readByte();f=i();f.pointer=f.loopPtr=this.mixer.memory.length;f.length=f.repeat=2;this.samples[e]=f;e=this.patterns.length;b=this.samples.length-1;for(d=0;db&&(a.sample=0);this.version=2}}},process:{value:function(){var c;c=0;for(var d,b,e,a=this.voices[0];64>c;)this.noise=this.noise<<7|this.noise>>>25,this.noise+=1858762093,this.noise^=2656676139,b=this.noise>>> 27 | 24&255,127>>16&255,127>>8&255,127--this.tick&&(this.tick=this.speed);for(;a;){if(!(1>a.trackLen)){c=a.channel;e=a.sample;e.synth&&(c.pointer=e.loopPtr,c.length=e.repeat);if(0==this.tick){0==a.patternPos&&(a.step=this.tracks[a.trackPtr+a.trackPos],++a.trackPos==a.trackLen&&(a.trackPos=a.restart)); 28 | b=a.row=this.patterns[a.step.pattern+a.patternPos];b.note&&(c.enabled=0,a.note=b.note,a.period=j[b.note+a.step.transpose],e=a.sample=this.samples[b.sample],0>e.synth&&(c.pointer=e.pointer,c.length=e.length),a.arpeggioPos=0,a.tableCtr=0,a.tablePos=0,a.vibratoCtr=e.vibratos[1],a.vibratoPos=0,a.vibratoDir=0,a.vibratoPeriod=0,a.vibratoSustain=e.vibratos[2],a.volume=0,a.volumePos=0,a.volumeSustain=0);switch(b.effect){case 0:this.speed=b.param&15;break;case 1:this.mixer.filter.active=b.param;break;case 2:a.pitchBend= 29 | ~(b.param&255)+1;break;case 3:a.pitchBend=b.param&255;break;case 4:a.portamento=b.param;break;case 5:a.volumeMax=b.param&63;break;case 6:this.mixer.volume=b.param;break;case 7:a.arpeggioPtr=(b.param&63)<<4}a.patternPos=++a.patternPos&15}e=a.sample;if(0<=e.synth)if(a.tableCtr)a.tableCtr--;else if(a.tableCtr=e.index,b=e.table[a.tablePos],255==b&&(b=e.table[++a.tablePos],255!=b&&(a.tablePos=b,b=e.table[a.tablePos])),255!=b)c.pointer=b<<8,c.length=e.length,47<++a.tablePos&&(a.tablePos=0);b=e.vibratos[a.vibratoPos]; 30 | a.vibratoPeriod=a.vibratoDir?a.vibratoPeriod-b:a.vibratoPeriod+b;0==--a.vibratoCtr&&(a.vibratoCtr=e.vibratos[a.vibratoPos+1],a.vibratoDir=~a.vibratoDir);a.vibratoSustain?a.vibratoSustain--:(a.vibratoPos+=3,15==a.vibratoPos&&(a.vibratoPos=12),a.vibratoSustain=e.vibratos[a.vibratoPos+2]);a.volumeSustain?a.volumeSustain--:(b=e.volumes[a.volumePos],d=e.volumes[a.volumePos+1],d 31 | d&&(a.volume=d,a.volumePos+=3,15==a.volumePos&&(a.volumePos=12),a.volumeSustain=e.volumes[a.volumePos-1])));a.portamento&&(a.perioda.period&&(a.finalPeriod=a.period)));b=this.arpeggios[a.arpeggioPtr+a.arpeggioPos];-128==b&&(a.arpeggioPos=0,b=this.arpeggios[a.arpeggioPtr]);a.arpeggioPos=++a.arpeggioPos&15;0==a.portamento&&(b=a.note+a.step.transpose+b,0>b&&(b=0),a.finalPeriod= 32 | j[b]);a.vibratoPeriod-=e.pitchBend-a.pitchBend;c.period=a.finalPeriod+a.vibratoPeriod;b=a.volume>>2&63;b>a.volumeMax&&(b=a.volumeMax);c.volume=b;c.enabled=1}a=a.next}}}});g.voices[0]=h(0);g.voices[0].next=g.voices[1]=h(1);g.voices[1].next=g.voices[2]=h(2);g.voices[2].next=g.voices[3]=h(3);g.arpeggios=new Int8Array(1024);return Object.seal(g)}})(); -------------------------------------------------------------------------------- /Flod JS 2.0/minified/FXPlayer.js: -------------------------------------------------------------------------------- 1 | /* 2 | Flod JS 2.0 3 | 2012/04/01 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | Last Update: Flod JS 2.0 - 2012/03/10 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 10 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 11 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 12 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 13 | 14 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 15 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 16 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 17 | */ 18 | (function(){function i(g){return Object.create(null,{index:{value:g,writable:!0},next:{value:null,writable:!0},channel:{value:null,writable:!0},sample:{value:null,writable:!0},enabled:{value:0,writable:!0},period:{value:0,writable:!0},effect:{value:0,writable:!0},param:{value:0,writable:!0},volume:{value:0,writable:!0},last:{value:0,writable:!0},slideCtr:{value:0,writable:!0},slideDir:{value:0,writable:!0},slideParam:{value:0,writable:!0},slidePeriod:{value:0,writable:!0},slideSpeed:{value:0,writable:!0}, 19 | stepPeriod:{value:0,writable:!0},stepSpeed:{value:0,writable:!0},stepWanted:{value:0,writable:!0},initialize:{value:function(){this.sample=this.channel=null;this.stepWanted=this.stepSpeed=this.stepPeriod=this.slideSpeed=this.slidePeriod=this.slideParam=this.slideDir=this.slideCtr=this.last=this.volume=this.param=this.effect=this.period=this.enabled=0}}})}var j=[1076,1016,960,906,856,808,762,720,678,640,604,570,538,508,480,453,428,404,381,360,339,320,302,285,269,254,240,226,214,202,190,180,170,160, 20 | 151,143,135,127,120,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,-1];window.neoart.FXPlayer=function(g){g=AmigaPlayer(g);Object.defineProperties(g,{id:{value:"FXPlayer"},standard:{value:0,writable:!0},track:{value:null,writable:!0},patterns:{value:[],writable:!0},samples:{value:[],writable:!0},length:{value:0,writable:!0},voices:{value:[],writable:!0},trackPos:{value:0,writable:!0},patternPos:{value:0,writable:!0},jumpFlag:{value:0,writable:!0}, 21 | force:{set:function(b){1>b?b=1:4>0}},initialize:{value:function(){var b=this.voices[0];this.reset();this.ntsc=this.standard;this.speed=6;for(this.jumpFlag=this.patternPos=this.trackPos=0;b;)b.initialize(),b.channel=this.mixer.channels[b.index],b.sample=this.samples[0],b=b.next}},loader:{value:function(b){var d=0,c,a,e,f, 22 | g=0,h;if(!(1686>b.length)){b.position=60;c=b.readString(4);if("SONG"!=c){b.position=124;c=b.readString(4);if("SO31"!=c||2350>b.length)return;e=544;this.samples.length=a=32;this.version=4}else e=0,this.samples.length=a=16,this.version=1;this.tempo=b.readUshort();b.position=0;for(c=1;cd&&(d=h);e&&(e+=4);b.position=660+e;d+=256;this.patterns.length=d;a=this.samples.length;for(c=0;c>4;this.patterns[c]=e;if(4==this.version)e.note&4096&&(e.sample+=16,0e.note&&(this.version=3)}if(e.sample>=a||null==this.samples[e.sample])e.sample=0}this.mixer.store(b,g);for(c=1;ca.stepSpeed?a.stepPerioda.stepWanted&&(a.stepPeriod=a.stepWanted,2>4<<3,a.slideDir?(a.slidePeriod-=8,b.period=a.slidePeriod,c-=a.slideSpeed,c==a.slidePeriod&&(a.slideDir=0)):(a.slidePeriod+= 26 | 8,b.period=a.slidePeriod,c+=a.slideSpeed,c==a.slidePeriod&&(a.slideDir=1));else{a=a.next;continue}c=0;switch(a.effect){case 1:c=this.tick%3;d=0;if(2==c){b.period=a.last;a=a.next;continue}for(c=1==c?a.param&15:a.param>>4;a.last!=j[d];)d++;b.period=j[d+c];break;case 2:c=a.param>>4;a.period=c?a.period+c:a.period-(a.param&15);b.period=a.period;break;case 3:this.mixer.filter.active=1;break;case 4:this.mixer.filter.active=0;break;case 8:c=-1;case 7:a.stepSpeed=a.param&15;a.stepPeriod=2c&&(a.stepSpeed=-a.stepSpeed);for(d=0;;){b=j[d];if(b==a.stepPeriod)break;if(0>b){d=-1;break}else d++}-1>4,-1d&&(d=0),a.stepWanted=j[d]):a.stepWanted=a.period;break;case 9:a.slideSpeed=a.slidePeriod=a.period,a.slideParam=a.param,a.slideDir=0,a.slideCtr=0}}a=a.next}else for(c=this.track[this.trackPos]+this.patternPos;a;){b=a.channel;a.enabled=0;d=this.patterns[c+a.index];a.period=d.note;a.effect=d.effect;a.param=d.param;if(-3==d.note)a.effect=0;else if(d.sample? 28 | (d=a.sample=this.samples[d.sample],a.volume=d.volume,5==a.effect?a.volume+=a.param:6==a.effect&&(a.volume-=a.param),b.volume=a.volume):d=a.sample,a.period){a.last=a.period;a.slideSpeed=0;a.stepSpeed=0;a.enabled=1;b.enabled=0;switch(a.period){case -2:b.volume=0;break;case -4:this.jumpFlag=1;break;case -5:break;default:b.pointer=d.pointer,b.length=d.length,b.period=a.period}a.enabled&&(b.enabled=1);b.pointer=d.loopPtr;b.length=d.repeat}a=a.next}if(++this.tick==this.speed&&(this.tick=0,this.patternPos+= 29 | 4,256==this.patternPos||this.jumpFlag))this.patternPos=this.jumpFlag=0,++this.trackPos==this.length&&(this.trackPos=0,this.mixer.complete=1)}}});g.voices[0]=i(0);g.voices[0].next=g.voices[1]=i(1);g.voices[1].next=g.voices[2]=i(2);g.voices[2].next=g.voices[3]=i(3);g.track=new Uint16Array(128);return Object.seal(g)}})(); -------------------------------------------------------------------------------- /Flod JS 2.0/minified/FileLoader.js: -------------------------------------------------------------------------------- 1 | /* 2 | Flod JS 2.0 3 | 2012/04/01 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | Last Update: Flod JS 2.0 - 2012/03/08 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 10 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 11 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 12 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 13 | 14 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 15 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 16 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 17 | */ 18 | (function(){var d="Unknown Format,Ultimate SoundTracker,D.O.C. SoundTracker 9,Master SoundTracker,D.O.C. SoundTracker 2.0/2.2,SoundTracker 2.3,SoundTracker 2.4,NoiseTracker 1.0,NoiseTracker 1.1,NoiseTracker 2.0,ProTracker 1.0,ProTracker 1.1/2.1,ProTracker 1.2/2.0,His Master's NoiseTracker,SoundFX 1.0/1.7,SoundFX 1.8,SoundFX 1.945,SoundFX 1.994/2.0,BP SoundMon V1,BP SoundMon V2,BP SoundMon V3,Delta Music 1.0,Delta Music 2.0,Digital Mugician,Digital Mugician 7 Voices,Future Composer 1.0/1.3,Future Composer 1.4,SidMon 1.0,SidMon 2.0,David Whittaker,FredEd,Jochen Hippel,Jochen Hippel COSO,Rob Hubbard,FastTracker II,Sk@leTracker,MadTracker 2.0,MilkyTracker,DigiBooster Pro 2.18,OpenMPT".split(","); 19 | window.neoart.FileLoader=function(){var e=Object.create(null,{player:{value:null,writable:!0},index:{value:0,writable:!0},amiga:{value:null,writable:!0},mixer:{value:null,writable:!0},tracker:{get:function(){return this.player?d[this.index+this.player.version]:d[0]}},load:{value:function(a){var b,c;a.view||(a=ByteArray(a));a.endian=1;a.position=0;if(67324752==a.readUint())if(window.neoart.Unzip)a=ZipFile(a),a=a.uncompress(a.entries[0]);else throw"Unzip support is not available.";if(!a)return null; 20 | if(this.player&&"STPlayer"!=this.player.id&&(this.player.load(a),this.player.version))return player;if(336b?b=1:5b.length)&&(b.position=1080,e=b.readString(4),!("M.K."!=e&&"FLT4"!=e))){b.position=0;this.title=b.readString(20);this.version=1;b.position+=22;for(e= 22 | 1;32>e;++e)(g=b.readUshort())?(c=AmigaSample(),b.position-=24,c.name=b.readString(22),c.length=g<<1,b.position+=3,c.volume=b.readUbyte(),c.loop=b.readUshort()<<1,c.repeat=b.readUshort()<<1,b.position+=22,c.pointer=d,d+=c.length,this.samples[e]=c,32768e;++e)g=b.readUbyte()<<8,this.track[e]=g,g>f&&(f=g);b.position=1084;f+=256;this.patterns.length= 23 | f;for(e=0;e>16&4095;c.effect=g>>8&15;c.sample=g>>24&240|g>>12&15;c.param=g&255;this.patterns[e]=c;if(31c.effect){this.version=0;return}}this.mixer.store(b,d);for(e=1;32>e;++e)if(c=this.samples[e]){-1this.version&&this.restart&&(this.version=4)}}},process:{value:function(){var b,f,e,c,d,g,a=this.voices[0];if(this.tick)for(;a;){b=a.channel;if(!a.effect&&!a.param)b.period=a.period;else{switch(a.effect){case 0:d=this.tick%3;if(!d){b.period=a.period;a=a.next;continue}d=1==d?a.param>>4:a.param&15;c=a.period& 25 | 4095;e=37-d;for(f=0;f=i[f]){b.period=i[f+d];break}break;case 1:a.period-=a.param;113>a.period&&(a.period=113);b.period=a.period;break;case 2:a.period+=a.param;856=a.portaPeriod&&(a.period=a.portaPeriod,a.portaPeriod= 26 | 0)));b.period=a.period;break;case 4:case 6:6==a.effect?g=1:a.param&&(a.vibratoSpeed=a.param);d=a.vibratoPos>>2&31;d=(a.vibratoSpeed&15)*j[d]>>this.vibratoDepth;b.period=127>2&60;a.vibratoPos=a.vibratoPos+d&255;break;case 10:g=1}g&&(d=a.param>>4,g=0,a.volume=d?a.volume+d:a.volume-(a.param&15),0>a.volume?a.volume=0:64a.period?(a.portaDir=0,a.portaPeriod=d.note):a.portaPeriod=0:(a.enabled=1,a.vibratoPos=0,b.enabled=0,b.pointer=e.pointer,b.length=e.length,b.period=a.period=d.note));switch(a.effect){case 11:this.trackPos=a.param-1;this.jumpFlag^=1;break;case 12:b.volume=a.param; 28 | 5==this.version&&(a.volume=a.param);break;case 13:this.jumpFlag^=1;break;case 14:this.mixer.filter.active=a.param^1;break;case 15:d=a.param,1>d?d=1:31a.position;)if(c=a.readUshort(), 22 | 32272==c||32288==c)c=a.readUshort(),16890==c&&(f=a.position+a.readUshort(),c=a.readUshort(),53756==c?(g=f+a.readUint(),this.mixer.loopLen=64,a.position+=2):(g=f,this.mixer.loopLen=512),e=a.position+a.readUshort(),c=a.readUbyte(),114==c&&(d=a.readUbyte()));else if(20937==c){if(a.position+=2,c=a.readUshort(),17914==c){h=a.position+a.readUshort();for(a.position+=2;;)if(c=a.readUshort(),19450==c){b=a.position+a.readUshort();break}}}else if(49404==c)a.position+=2,c=a.readUshort(),16875==c&&(i=a.readUshort()); 23 | else if(13421==c)a.position+=2,c=a.readUshort(),18938==c&&(this.vibrato=a.position+a.readUshort());else if(16960==c&&(c=a.readUshort(),17914==c)){this.periods=a.position+a.readUshort();break}if(e&&g&&d&&i){a.position=g;this.samples=[];d++;for(f=0;f>5;e=f+3;this.variant=1;if(f>=d)for(;df;++f)d=a.readUint(),dc-a.position)break}this.lastSong=this.songs.length-1;a.length=g;for(a.position=352;512>a.position;)c= 26 | a.readUshort(),45116==c&&(c=a.readUshort(),133==c?this.variant=2:134==c?this.variant=4:135==c&&(this.variant=3));this.stream=a;this.version=1}}},process:{value:function(){for(var a,f,d,e,b=this.voices[3];b;){a=b.channel;this.stream.position=b.patternPos;d=b.sample;b.busy||(b.busy=1,0==d.loopPtr?(a.pointer=this.mixer.loopPtr,a.length=this.mixer.loopLen):0e)switch(e){case -121:3== 27 | this.variant&&(b.volume=this.stream.readUbyte());break;case -122:4==this.variant&&(b.volume=this.stream.readUbyte());break;case -123:1e&&(e=0),b.sample=d=this.samples[e],b.vibratoPtr=this.vibrato+d.vibrato,b.vibratoPos=b.vibratoPtr}else b.tick=this.song.speed*e,b.note=this.stream.readByte(),b.patternPos=this.stream.position,b.synthPos=d.loPos,b.vibratoPos=b.vibratoPtr,a.pointer= 29 | d.pointer,a.length=d.length,a.volume=b.volume?b.volume:d.volume,this.stream.position=this.periods+(b.note<<1),e=this.stream.readUshort()*d.relative,a.period=b.period=e>>10,a.enabled=1,b.busy=f=0}else{if(1==b.tick&&(4!=this.variant||!(b.flags&4)))a.enabled=0;b.flags&1&&(a.period=b.period+=b.portaSpeed);d.divider&&(this.stream.position=b.vibratoPos,e=this.stream.readByte(),-124==e&&(this.stream.position=b.vibratoPtr,e=this.stream.readByte()),b.vibratoPos=this.stream.position,e*=parseInt(b.period/d.divider), 30 | a.period=b.period+e)}d.hiPos&&(e=0,b.flags&2?(b.synthPos--,b.synthPos<=d.loPos&&(b.flags&=-3,e=60)):(b.synthPos++,b.synthPos>d.hiPos&&(b.flags|=2,e=60)),this.mixer.memory[d.pointer+b.synthPos]=e);b=b.next}}}});g.voices[3]=h(3,8);g.voices[3].next=g.voices[2]=h(2,4);g.voices[2].next=g.voices[1]=h(1,2);g.voices[1].next=g.voices[0]=h(0,1);return Object.seal(g)}})(); -------------------------------------------------------------------------------- /Flod JS 2.0/minified/STPlayer.js: -------------------------------------------------------------------------------- 1 | /* 2 | Flod JS 2.0 3 | 2012/04/01 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | Last Update: Flod JS 1.0 - 2012/02/08 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 10 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 11 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 12 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 13 | 14 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 15 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 16 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 17 | */ 18 | (function(){function h(e){return Object.create(null,{index:{value:e,writable:!0},next:{value:null,writable:!0},channel:{value:null,writable:!0},sample:{value:null,writable:!0},enabled:{value:0,writable:!0},period:{value:0,writable:!0},last:{value:0,writable:!0},effect:{value:0,writable:!0},param:{value:0,writable:!0},initialize:{value:function(){this.sample=this.channel=null;this.param=this.effect=this.last=this.period=this.enabled=0}}})}var i=[856,808,762,720,678,640,604,570,538,508,480,453,428, 19 | 404,381,360,339,320,302,285,269,254,240,226,214,202,190,180,170,160,151,143,135,127,120,113,0];window.neoart.STPlayer=function(e){e=AmigaPlayer(e);Object.defineProperties(e,{id:{value:"STPlayer"},standard:{value:0,writable:!0},track:{value:null,writable:!0},patterns:{value:[],writable:!0},samples:{value:[],writable:!0},length:{value:0,writable:!0},voices:{value:[],writable:!0},trackPos:{value:0,writable:!0},patternPos:{value:0,writable:!0},jumpFlag:{value:0,writable:!0},force:{set:function(b){1>b? 20 | b=1:4this.version&&(b=(b?20.44952532:20.637767904)*(this.sampleRate/1E3)/120,this.mixer.samplesTick=(240-this.tempo)*b>>0)}},initialize:{value:function(){var b=this.voices[0];this.reset();this.ntsc=this.standard;this.speed=6;for(this.jumpFlag=this.patternPos=this.trackPos=0;b;)b.initialize(),b.channel=this.mixer.channels[b.index],b.sample=this.samples[0],b=b.next}},loader:{value:function(b){var d=0,c,a,e=0,g=0,f; 21 | if(!(1626>b.length)){this.title=b.readString(20);e+=this.isLegal(this.title);this.version=1;b.position=42;for(c=1;16>c;++c)(f=b.readUshort())?(a=AmigaSample(),b.position-=24,a.name=b.readString(22),a.length=f<<1,b.position+=3,a.volume=b.readUbyte(),a.loop=b.readUshort(),a.repeat=b.readUshort()<<1,b.position+=22,a.pointer=g,g+=a.length,this.samples[c]=a,e+=this.isLegal(a.name),9999c;++c)f=b.readUbyte()<<8,16384d&&(d=f);b.position=600;d+=256;this.patterns.length=d;c=b.length-g-600>>2;d>c&&(d=c);for(c=0;c>4;this.patterns[c]=a;2a.effect&&e--;a.note&&(113>a.note||856c;++c)if(a=this.samples[c]){a.loop?(a.loopPtr=a.pointer+a.loop,a.pointer=a.loopPtr,a.length=a.repeat):(a.loopPtr=this.mixer.memory.length,a.repeat=2);g=a.pointer+4;for(b=a.pointer;be&&(this.version=0)}}},process:{value:function(){var b,d,c,a=this.voices[0];if(this.tick)for(;a;){if(a.param)if(b= 24 | a.channel,1==this.version)1==a.effect?this.arpeggio(a):2==a.effect&&(c=a.param>>4,a.period=c?a.period+c:a.period-(a.param&15),b.period=a.period);else{switch(a.effect){case 0:this.arpeggio(a);break;case 1:a.period-=a.param&15;113>a.period&&(a.period=113);b.period=a.period;break;case 2:a.period+=a.param&15,856this.version))switch(a.effect){case 11:this.trackPos= 26 | a.param-1;this.jumpFlag^=1;break;case 12:b.volume=a.param;break;case 13:this.jumpFlag^=1;break;case 14:this.mixer.filter.active=a.param^1;break;case 15:if(!a.param)break;this.speed=a.param&15;this.tick=0}a=a.next}if(++this.tick==this.speed&&(this.tick=0,this.patternPos+=4,256==this.patternPos||this.jumpFlag))this.patternPos=this.jumpFlag=0,++this.trackPos==this.length&&(this.trackPos=0,this.mixer.complete=1)}},arpeggio:{value:function(b){var d=b.channel,c=0,a=this.tick%3;if(a){for(a=1==a?b.param>> 27 | 4:b.param&15;b.last!=i[c];)c++;d.period=i[c+a]}else d.period=b.last}},isLegal:{value:function(b){var d,c=0,a=b.length;if(!a)return 0;for(;cd||127d.length&&(g=d.length-f);for(a=0;ab?b+=256:127d.length&&(g=d.length-f>>1);for(a=0;ab?b+=65536:32767this.bufferSize&&(this.remains=i-this.bufferSize,i=this.bufferSize)));h=this.samplesLeft;d+h>=i&&(h=i-d);k=m+h;for(a=this.channels[0];a;){if(a.enabled){l=a.sample;g=l.data;e=this.buffer[m];for(f=m;f=a.length)if(l.loopMode)a.pointer=l.loopStart+(a.index-a.length),a.length=l.length,2==l.loopMode&&(a.dir=a.dir?0:l.length+l.loopStart-1);else{a.enabled=0;break}else a.pointer=a.index;a.mute?(a.ldata=0,a.rdata= 26 | 0):(j=a.dir?g[a.dir-a.pointer]:g[a.pointer],a.ldata=j*a.lvol,a.rdata=j*a.rvol)}a.index=a.pointer+a.delta;if(1<=(a.fraction+=a.speed))a.index++,a.fraction--;e.l+=a.ldata;e.r+=a.rdata;e=e.next}}a=a.next}m=k;d+=h;this.samplesLeft-=h}e=this.buffer[0];a=b.outputBuffer.getChannelData(0);b=b.outputBuffer.getChannelData(1);for(f=0;fe.l&&(e.l=-1),1e.r&&(e.r=-1),a[f]=e.l,b[f]=e.r,e.l=e.r=0,e=e.next}},accurate:{value:function(b){var a,d,f,p,k,m=0,l,e=0,i,h,j,c,o=this.bufferSize, 27 | q,n;if(this.completed){if(!this.remains){this.player.stop();return}o=this.remains}for(;mthis.bufferSize&&(this.remains=o-this.bufferSize,o=this.bufferSize)));q=this.samplesLeft;m+q>=o&&(q=o-m);l=e+q;for(a=this.channels[0];a;){if(a.enabled){h=a.sample;d=h.data;if(j=a.oldSample)f=j.data;c=this.buffer[e];for(k=e;k>0,a.fraction-=p,0a.length&&(a.fraction+=a.pointer-a.length,a.pointer=a.length)):(a.pointer-=p,a.pointer>0,a.oldFraction-=p,0a.oldLength&&(a.oldFraction+=a.oldPointer- 29 | a.oldLength,a.oldPointer=a.oldLength)):(a.oldPointer-=p,a.oldPointerc.l&&(c.l=-1),1c.r&&(c.r=-1),a[k]=c.l,b[k]=c.r,c.l=c.r=0,c=c.next}}});d.bufferSize=8192;return Object.seal(d)} 32 | function SBPlayer(d){var b=CorePlayer();Object.defineProperties(b,{track:{value:null,writable:!0},length:{value:0,writable:!0},restart:{value:0,writable:!0},timer:{value:0,writable:!0},master:{value:0,writable:!0},setup:{configurable:!1,value:function(){this.mixer.setup(this.channels)}}});b.mixer=d||Soundblaster();b.mixer.player=b;b.endian=1;b.quality=1;return b}; -------------------------------------------------------------------------------- /Flod JS 2.0/minified/Unzip.js: -------------------------------------------------------------------------------- 1 | /* 2 | Flod JS 2.0 3 | 2012/04/01 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | Last Update: Flod JS 2.0 - 2012/03/13 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 10 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 11 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 12 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 13 | 14 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 15 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 16 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 17 | */ 18 | function ZipFile(e){function h(c){var b=Object.create(null,{count:{value:null,writable:!0},symbol:{value:null,writable:!0}});b.count=new Uint16Array(c);b.symbol=new Uint16Array(c);return Object.seal(b)}function n(){var c=Object.create(null,{output:{value:null,writable:!0},inpbuf:{value:null,writable:!0},inpcnt:{value:0,writable:!0},outcnt:{value:0,writable:!0},bitbuf:{value:0,writable:!0},bitcnt:{value:0,writable:!0},flencode:{value:null,writable:!0},fdiscode:{value:null,writable:!0},dlencode:{value:null, 19 | writable:!0},ddiscode:{value:null,writable:!0},input:{set:function(b){this.inpbuf=b[0];this.inpbuf.endian=b[2];this.inpcnt=this.inpbuf.position=0;this.output=ByteArray(new ArrayBuffer(b[1]));this.output.endian=b[2];this.outcnt=this.output.position=0}},inflate:{value:function(){var b,a;do if(a=this.bits(1),b=this.bits(2),b=0==b?this.stored():1==b?this.codes(this.flencode,this.fdiscode):2==b?this.dynamic():1)throw o;while(!a)}},initialize:{value:function(){var b=new Uint8Array(288),a=0;this.flencode= 20 | h(288);for(this.fdiscode=h(30);144>a;++a)b[a]=8;for(;256>a;++a)b[a]=9;for(;280>a;++a)b[a]=7;for(;288>a;++a)b[a]=8;this.construct(this.fdiscode,b,288);for(a=0;30>a;++a)b[a]=5;this.construct(this.fdiscode,b,30);this.dlencode=h(286);this.ddiscode=h(30)}},construct:{value:function(b,a,k){for(var c=0,d=1,i=new Uint16Array(16),f=0;16>c;++c)b.count[c]=0;for(;fc;++c)if(d<<=1,d-=b.count[c],0>d)return d;for(c=1;15>c;++c)i[c+1]=i[c]+b.count[c];for(f= 21 | 0;f>b;this.bitcnt-=b;return a&(1<d)return d;if(256>d)this.output.writeAt(this.outcnt++,d);else if(256d)return d;c= 22 | r[d]+this.bits(s[d]);if(c>this.outcnt)throw t;for(c=this.outcnt-c;g--;)this.output.writeAt(this.outcnt++,this.output.readAt(c++))}}while(256!=d);return 0}},decode:{value:function(b){for(var a=this.bitbuf,c=0,g,d=0,i=0,f=this.inpbuf.length,e=this.bitcnt,h=1;;){for(;e--;){c|=a&1;a>>=1;g=b.count[h];if(cb)throw j;a=this.inpbuf.readAt(this.inpcnt++);a|=this.inpbuf.readAt(this.inpcnt++)<<8;if(this.inpbuf.readAt(this.inpcnt++)!=(~a&255)||this.inpbuf.readAt(this.inpcnt++)!=(~a>>8&255))throw u;if(this.inpcnt+a>b)throw j;for(;a--;)this.output.writeAt(this.outcnt++,this.inpbuf.readAt(this.inpcnt++));return 0}},dynamic:{value:function(){var b=new Uint8Array(316),a;a=0;var c,g=this.bits(5)+257,d=this.bits(5)+1; 24 | c=this.bits(4)+4;var e=g+d,f;if(286a;++a)b[m[a]]=0;if(a=this.construct(this.dlencode,b,19))throw w;for(a=0;af)b[a++]=f;else{c=0;if(16==f){if(0==a)throw x;c=b[a-1];f=3+this.bits(2)}else f=17==f?3+this.bits(3):11+this.bits(7);if(a+f>e)throw y;for(;f--;)b[a++]=c}a=this.construct(this.dlencode,b,g);if(0>a||0a||0< 25 | a&&1!=d-this.ddiscode.count[0])throw A;return this.codes(this.dlencode,this.ddiscode)}}});c.initialize();return Object.seal(c)}function B(){return Object.create(null,{name:{value:"",writable:!0},extra:{value:null,writable:!0},version:{value:0,writable:!0},flag:{value:0,writable:!0},method:{value:0,writable:!0},time:{value:0,writable:!0},crc:{value:0,writable:!0},compressed:{value:0,writable:!0},size:{value:0,writable:!0},offset:{value:0,writable:!0},date:{get:function(){return new Date((this.time>> 26 | 25&127)+1980,(this.time>>21&15)-1,this.time>>16&31,this.time>>11&31,this.time>>5&63,(this.time&31)<<1)}},isDirectory:{get:function(){return"/"==this.name.charAt(this.name.length-1)}}})}if(!e)return null;var o="Invalid block type.",j="Available inflate data did not terminate.",t="Distance is too far back.",u="Stored block length did not match one's complement.",v="Too many length or distance codes.",w="Code lengths codes incomplete.",x="Repeat lengths with no first length.",y="Repeat more than specified lengths.", 27 | z="Invalid literal/length code lengths.",A="Invalid distance code lengths.",p=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],q=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],r=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],s=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],m=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],l=Object.create(null,{endian:{value:1, 28 | writable:!0},entries:{value:null,writable:!0},stream:{value:null,writable:!0},uncompress:{value:function(c){var b=this.stream,a;a=!1;var e,g,d;if(!c)return null;if("string"==typeof c){d=this.entries.length;for(e=0;ea&&(a=0);do if(80==c.readAt(b)&&(c.position=b,101010256==c.readUint()))break;while(--b> 31 | a);if(b==a)throw"The archive is either in unknown format or damaged.";c.position=b+10;this.entries=[];this.entries.length=c.readUshort();c.position=b+16;c.position=c.readUint();this.parseCentral()}}});e.view||(e=ByteArray(e));e.endian=1;e.position=0;l.stream=e;l.parseEnd();return Object.seal(l)}window.neoart.Unzip=1; -------------------------------------------------------------------------------- /Flod JS 2.0/readme.txt: -------------------------------------------------------------------------------- 1 | Flod version 4.0 2 | Flod JS version 2.0 3 | Flip version 1.1 4 | 5 | 2012/04/01 6 | Christian Corti 7 | Neoart Costa Rica 8 | 9 | E-Mail: flod@neoartcr.com 10 | 11 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 12 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 13 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 14 | 15 | Flod is free for non commercial user, to use it in any commercial production I'll ask you to 16 | mention the proper credits and to make a donation to: chreil@hotmail.com via PayPal, thank you. 17 | 18 | Special thanks to Richard Davey, Mathew Nolan and Andreas Argirakis :) 19 | 20 | What's new: 21 | 4.0/2.0: 22 | - new David Whittaker player 23 | - new FredEd player 24 | - new Jochen Hippel player (regular and COSO formats, 4 voices only) 25 | - new Rob Hubbard player 26 | - added DigiBooster Pro 2.18 detection to the XM player 27 | - Delta Music 1.0, fixed wrong sustain value 28 | - Delta Music 2.0, fixed Warfalcons-Intromusik 2 crash 29 | - Delta Music 2.0, fixed wrong restart pointer 30 | - Digital Mugician, fixed sample loop pointer (fixes Hoi Level 4) 31 | - Future Composer (Flod only), 1.0/1.3 was using the wrong waves 32 | - SoundFX, fixed effect 7/8 [step down/up] (fixes Forever Tonight) 33 | - SidMON 2, fixed effect C/F [volume and speed] (fixes Cool Module) 34 | - SidMON 2 was processing effects at tick 0, it shouldn't :) 35 | - SidMON 2, fixed adsr sustain volume 36 | - SoundMon, fixed buffer restore, most modules didn't play at all 37 | - ProTracker/NoiseTracker fixed vibrato depth value not set at the beginning 38 | - Fixed and updated Flip/Unzip 39 | 3.0/1.0: 40 | - Flod XM is now part of Flod base code 41 | - Lots of bugs fixed 42 | - Flod JS source code released 43 | 44 | Supported Formats: 45 | - Brian Postma's SoundMon 1.0/2.0/3.0 46 | - David Whittaker 47 | - Delta Music 1.0 48 | - Delta Music 2.0/2.2 49 | - Digital Mugician 50 | - Digital Mugician 7 voices 51 | - D.O.C. Soundtracker 9/2.0 52 | - FastTracker II XM (PC) 53 | - FredEd 54 | - Future Composer 1.0/1.3 55 | - Future Composer 1.4 56 | - His Master's NoiseTracker 57 | - Jochen Hippel 58 | - Jochen Hippel COSO 59 | - NoiseTracker 1.0/1.1/2.0 60 | - ProTracker 1.0/1.1/1.2 61 | - Rob Hubbard 62 | - SidMON 63 | - SidMON II 64 | - SoundFX 1.0/1.8/1.9/2.0 65 | - Soundtracker 2.3/2.5 66 | - Ultimate Soundtracker, The (Karsten Obarski) -------------------------------------------------------------------------------- /Flod JS 2.1/Flod.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Flod JS 2.1/index.htm: -------------------------------------------------------------------------------- 1 | 18 | 19 | 20 | 21 | Flod JS 2.1 | Christian Corti 22 | 26 | 27 | 28 | 29 |

Flod JS 2.1 | © 2012 Christian Corti

30 |
31 |
32 |

FileLoader

33 |
34 |

 

35 |
36 |

37 | 38 | 39 | 40 | 41 |

42 | 43 | 44 | 118 | 119 | -------------------------------------------------------------------------------- /Flod JS 2.1/license.txt: -------------------------------------------------------------------------------- 1 | Flod version 4.1 2 | Flod JS version 2.1 3 | Flip version 1.2 4 | 5 | 2012/04/30 6 | Christian Corti 7 | Neoart Costa Rica 8 | 9 | E-Mail: flod@neoartcr.com 10 | 11 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 12 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 13 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 14 | 15 | Flod is free for non commercial user, to use it in any commercial production I'll ask you to 16 | mention the proper credits and to make a donation to: chreil@hotmail.com via PayPal, thank you. 17 | 18 | Special thanks to Richard Davey, Mathew Nolan and Andreas Argirakis :) -------------------------------------------------------------------------------- /Flod JS 2.1/minified/Amiga.js: -------------------------------------------------------------------------------- 1 | /* 2 | Flod JS 2.1 3 | 2012/04/30 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | Last Update: Flod JS 2.1 - 2012/04/09 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 10 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 11 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 12 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 13 | 14 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 15 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 16 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 17 | */ 18 | function AmigaChannel(c){var b=Object.create(null,{next:{value:null,writable:!0},mute:{value:0,writable:!0},panning:{value:0,writable:!0},delay:{value:0,writable:!0},pointer:{value:0,writable:!0},length:{value:0,writable:!0},audena:{value:0,writable:!0},audcnt:{value:0,writable:!0},audloc:{value:0,writable:!0},audper:{value:0,writable:!0},audvol:{value:0,writable:!0},timer:{value:0,writable:!0},level:{value:0,writable:!0},ldata:{value:0,writable:!0},rdata:{value:0,writable:!0},enabled:{get:function(){return this.audena}, 19 | set:function(a){a!=this.audena&&(this.audena=a,this.audloc=this.pointer,this.audcnt=this.pointer+this.length,this.timer=1,a&&(this.delay+=2))}},period:{set:function(a){0>a?a=0:65535a?a=0:64b.l&&(b.l=-1);1b.r&&(b.r=-1)}}})}function AmigaRow(){return Object.create(null,{note:{value:0,writable:!0},sample:{value:0,writable:!0},effect:{value:0,writable:!0},param:{value:0,writable:!0}})} 23 | function AmigaSample(){return Object.create(null,{name:{value:"",writable:!0},length:{value:0,writable:!0},loop:{value:0,writable:!0},repeat:{value:0,writable:!0},volume:{value:0,writable:!0},pointer:{value:0,writable:!0},loopPtr:{value:0,writable:!0}})}function AmigaStep(){return Object.create(null,{pattern:{value:0,writable:!0},transpose:{value:0,writable:!0}})} 24 | function Amiga(){var c=CoreMixer();Object.defineProperties(c,{filter:{value:null,writable:!0},model:{value:1,writable:!0},memory:{value:[],writable:!0},loopPtr:{value:0,writable:!0},loopLen:{value:4,writable:!0},clock:{value:0,writable:!0},master:{value:0,writable:!0},ready:{value:0,writable:!0},volume:{set:function(b){0=b.length&&(c=e-b.length,a=b.length-b.position);e=h;for(a+=h;ethis.bufferSize&&(this.remains=f-this.bufferSize,f=this.bufferSize)));j=this.samplesLeft;g+j>=f&&(j=f-g);h=k+j;for(a=this.channels[0];a;){d=this.buffer[k];if(a.audena&&60--a.timer&&(a.mute||(i=0.0078125*m[a.audloc],a.ldata= 27 | i*e,a.rdata=i*n),a.audloc++,a.timer+=o,a.audloc>=a.audcnt))a.audloc=a.pointer,a.audcnt=a.pointer+a.length;d.l+=a.ldata;d.r+=a.rdata;d=d.next}}else for(c=k;ca?a=0:1a?a=0:1a?a=0:a>this.length&&(a=this.length);this.index=a}},clear:{value:function(){this.buffer=new ArrayBuffer;this.view=null;this.index=this.length=0}},readAt:{value:function(a){return this.view.getUint8(a)}}, 19 | readByte:{value:function(){return this.view.getInt8(this.index++)}},readShort:{value:function(){var a=this.view.getInt16(this.index,this.endian);this.index+=2;return a}},readInt:{value:function(){var a=this.view.getInt32(this.index,this.endian);this.index+=4;return a}},readUbyte:{value:function(){return this.view.getUint8(this.index++)}},readUshort:{value:function(){var a=this.view.getUint16(this.index,this.endian);this.index+=2;return a}},readUint:{value:function(){var a=this.view.getUint32(this.index, 20 | this.endian);this.index+=4;return a}},readBytes:{value:function(a,b,d){var a=a.view,c=this.index,e=this.view;if((d+=c)>this.length)d=this.length;for(;cthis.length)a=this.length;for(;bb))if(this.buffer.length=b,b>a){this.buffer[a]=Sample();for(a=++a;a>0}}});window.neoart.audioContext||(window.neoart.audioContext=new webkitAudioContext);b.context=window.neoart.audioContext;b.sampleRate=b.context.sampleRate;return b}; -------------------------------------------------------------------------------- /Flod JS 2.1/minified/FXPlayer.js: -------------------------------------------------------------------------------- 1 | /* 2 | Flod JS 2.1 3 | 2012/04/30 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | Last Update: Flod JS 2.1 - 2012/04/14 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 10 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 11 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 12 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 13 | 14 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 15 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 16 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 17 | */ 18 | (function(){function i(g){return Object.create(null,{index:{value:g,writable:!0},next:{value:null,writable:!0},channel:{value:null,writable:!0},sample:{value:null,writable:!0},enabled:{value:0,writable:!0},period:{value:0,writable:!0},effect:{value:0,writable:!0},param:{value:0,writable:!0},volume:{value:0,writable:!0},last:{value:0,writable:!0},slideCtr:{value:0,writable:!0},slideDir:{value:0,writable:!0},slideParam:{value:0,writable:!0},slidePeriod:{value:0,writable:!0},slideSpeed:{value:0,writable:!0}, 19 | stepPeriod:{value:0,writable:!0},stepSpeed:{value:0,writable:!0},stepWanted:{value:0,writable:!0},initialize:{value:function(){this.sample=this.channel=null;this.stepWanted=this.stepSpeed=this.stepPeriod=this.slideSpeed=this.slidePeriod=this.slideParam=this.slideDir=this.slideCtr=this.last=this.volume=this.param=this.effect=this.period=this.enabled=0}}})}var j=[1076,1016,960,906,856,808,762,720,678,640,604,570,538,508,480,453,428,404,381,360,339,320,302,285,269,254,240,226,214,202,190,180,170,160, 20 | 151,143,135,127,120,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,-1];window.neoart.FXPlayer=function(g){g=AmigaPlayer(g);Object.defineProperties(g,{id:{value:"FXPlayer"},standard:{value:0,writable:!0},track:{value:null,writable:!0},patterns:{value:[],writable:!0},samples:{value:[],writable:!0},length:{value:0,writable:!0},voices:{value:[],writable:!0},trackPos:{value:0,writable:!0},patternPos:{value:0,writable:!0},jumpFlag:{value:0,writable:!0}, 21 | delphine:{value:0,writable:!0},force:{set:function(b){1>b?b=1:4>0}},initialize:{value:function(){var b=this.voices[0];this.reset();this.ntsc=this.standard;this.speed=6;for(this.jumpFlag=this.patternPos=this.trackPos=0;b;)b.initialize(),b.channel=this.mixer.channels[b.index],b.sample=this.samples[0],b=b.next}},loader:{value:function(b){var d= 22 | 0,c,a,e,f,g=0,h;if(!(1686>b.length)){b.position=60;c=b.readString(4);if("SONG"!=c){b.position=124;c=b.readString(4);if("SO31"!=c||2350>b.length)return;e=544;this.samples.length=a=32;this.version=4}else e=0,this.samples.length=a=16,this.version=1;this.tempo=b.readUshort();b.position=0;for(c=1;cd&&(d=h);e&&(e+=4);b.position=660+e;d+=256;this.patterns.length=d;a=this.samples.length;for(c=0;c>4;this.patterns[c]=e;if(4==this.version)e.note&4096&&(e.sample+=16,0e.note&&(this.version=3)}if(e.sample>=a||null==this.samples[e.sample])e.sample=0}this.mixer.store(b,g);for(c=1;cc;++c)d+=b.readUshort();switch(d){case 172662:case 1391423:case 1458300:case 1706977:case 1920077:case 1920694:case 1677853:case 1931956:case 1926836:case 1385071:case 1720635:case 1714491:case 1731874:case 1437490:this.delphine= 25 | 1}}}},process:{value:function(){var b,d,c,a=this.voices[0];if(this.tick)for(;a;){b=a.channel;if(!(2==this.version&&-3==a.period))if(a.stepSpeed)a.stepPeriod+=a.stepSpeed,0>a.stepSpeed?a.stepPerioda.stepWanted&&(a.stepPeriod=a.stepWanted,2>4;a.last!=j[d];)d++;b.period=j[d+c];break;case 2:c=a.param>>4;a.period=c?a.period+c:a.period-(a.param&15);b.period=a.period;break;case 3:this.mixer.filter.active= 27 | 1;break;case 4:this.mixer.filter.active=0;break;case 8:c=-1;case 7:a.stepSpeed=a.param&15;a.stepPeriod=2c&&(a.stepSpeed=-a.stepSpeed);for(d=0;;){b=j[d];if(b==a.stepPeriod)break;if(0>b){d=-1;break}else d++}-1>4,-1d&&(d=0),a.stepWanted=j[d]):a.stepWanted=a.period;break;case 9:a.slideSpeed=a.slidePeriod=a.period,a.slideParam=a.param,a.slideDir=0,a.slideCtr=0}}a=a.next}else for(c=this.track[this.trackPos]+this.patternPos;a;){b=a.channel; 28 | a.enabled=0;d=this.patterns[c+a.index];a.period=d.note;a.effect=d.effect;a.param=d.param;if(-3==d.note)a.effect=0;else if(d.sample?(d=a.sample=this.samples[d.sample],a.volume=d.volume,5==a.effect?a.volume+=a.param:6==a.effect&&(a.volume-=a.param),b.volume=a.volume):d=a.sample,a.period){a.last=a.period;a.slideSpeed=0;a.stepSpeed=0;a.enabled=1;b.enabled=0;switch(a.period){case -2:b.volume=0;break;case -4:this.jumpFlag=1;break;case -5:break;default:b.pointer=d.pointer,b.length=d.length,b.period=this.delphine? 29 | a.period<<1:a.period}a.enabled&&(b.enabled=1);b.pointer=d.loopPtr;b.length=d.repeat}a=a.next}if(++this.tick==this.speed&&(this.tick=0,this.patternPos+=4,256==this.patternPos||this.jumpFlag))this.patternPos=this.jumpFlag=0,++this.trackPos==this.length&&(this.trackPos=0,this.mixer.complete=1)}}});g.voices[0]=i(0);g.voices[0].next=g.voices[1]=i(1);g.voices[1].next=g.voices[2]=i(2);g.voices[2].next=g.voices[3]=i(3);g.track=new Uint16Array(128);return Object.seal(g)}})(); -------------------------------------------------------------------------------- /Flod JS 2.1/minified/FileLoader.js: -------------------------------------------------------------------------------- 1 | /* 2 | Flod JS 2.1 3 | 2012/04/30 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | Last Update: Flod JS 2.1 - 2012/04/16 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 10 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 11 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 12 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 13 | 14 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 15 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 16 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 17 | */ 18 | (function(){var d="Unknown Format,Ultimate SoundTracker,D.O.C. SoundTracker 9,Master SoundTracker,D.O.C. SoundTracker 2.0/2.2,SoundTracker 2.3,SoundTracker 2.4,NoiseTracker 1.0,NoiseTracker 1.1,NoiseTracker 2.0,ProTracker 1.0,ProTracker 1.1/2.1,ProTracker 1.2/2.0,His Master's NoiseTracker,SoundFX 1.0/1.7,SoundFX 1.8,SoundFX 1.945,SoundFX 1.994/2.0,BP SoundMon V1,BP SoundMon V2,BP SoundMon V3,Delta Music 1.0,Delta Music 2.0,Digital Mugician,Digital Mugician 7 Voices,Future Composer 1.0/1.3,Future Composer 1.4,SidMon 1.0,SidMon 2.0,David Whittaker,FredEd,Jochen Hippel,Jochen Hippel COSO,Rob Hubbard,FastTracker II,Sk@leTracker,MadTracker 2.0,MilkyTracker,DigiBooster Pro 2.18,OpenMPT".split(","); 19 | window.neoart.FileLoader=function(){var e=Object.create(null,{player:{value:null,writable:!0},index:{value:0,writable:!0},amiga:{value:null,writable:!0},mixer:{value:null,writable:!0},tracker:{get:function(){return this.player?d[this.index+this.player.version]:d[0]}},load:{value:function(a){var b,c;a.view||(a=ByteArray(a));a.endian=1;a.position=0;if(67324752==a.readUint())if(window.neoart.Unzip)a=ZipFile(a),a=a.uncompress(a.entries[0]);else throw"Unzip support is not available.";if(!a)return null; 20 | if(this.player&&"STPlayer"!=this.player.id&&(this.player.load(a),this.player.version))return player;if(336b?b=1:5b.length)&&(b.position=1080,e=b.readString(4),!("M.K."!=e&&"FLT4"!=e))){b.position=0;this.title=b.readString(20);this.version=1;b.position+=22;for(e= 22 | 1;32>e;++e)(g=b.readUshort())?(c=AmigaSample(),b.position-=24,c.name=b.readString(22),c.length=g<<1,b.position+=3,c.volume=b.readUbyte(),c.loop=b.readUshort()<<1,c.repeat=b.readUshort()<<1,b.position+=22,c.pointer=d,d+=c.length,this.samples[e]=c,32768e;++e)g=b.readUbyte()<<8,this.track[e]=g,g>f&&(f=g);b.position=1084;f+=256;this.patterns.length= 23 | f;for(e=0;e>16&4095;c.effect=g>>8&15;c.sample=g>>24&240|g>>12&15;c.param=g&255;this.patterns[e]=c;if(31c.effect){this.version=0;return}}this.mixer.store(b,d);for(e=1;32>e;++e)if(c=this.samples[e]){-1this.version&&this.restart&&(this.version=4)}}},process:{value:function(){var b,f,e,c,d,g,a=this.voices[0];if(this.tick)for(;a;){b=a.channel;if(!a.effect&&!a.param)b.period=a.period;else{switch(a.effect){case 0:d=this.tick%3;if(!d){b.period=a.period;a=a.next;continue}d=1==d?a.param>>4:a.param&15;c=a.period& 25 | 4095;e=37-d;for(f=0;f=i[f]){b.period=i[f+d];break}break;case 1:a.period-=a.param;113>a.period&&(a.period=113);b.period=a.period;break;case 2:a.period+=a.param;856=a.portaPeriod&&(a.period=a.portaPeriod,a.portaPeriod= 26 | 0)));b.period=a.period;break;case 4:case 6:6==a.effect?g=1:a.param&&(a.vibratoSpeed=a.param);d=a.vibratoPos>>2&31;d=(a.vibratoSpeed&15)*j[d]>>this.vibratoDepth;b.period=127>2&60;a.vibratoPos=a.vibratoPos+d&255;break;case 10:g=1}g&&(d=a.param>>4,g=0,a.volume=d?a.volume+d:a.volume-(a.param&15),0>a.volume?a.volume=0:64a.period?(a.portaDir=0,a.portaPeriod=d.note):a.portaPeriod=0:(a.enabled=1,a.vibratoPos=0,b.enabled=0,b.pointer=e.pointer,b.length=e.length,b.period=a.period=d.note));switch(a.effect){case 11:this.trackPos=a.param-1;this.jumpFlag^=1;break;case 12:b.volume=a.param; 28 | 5==this.version&&(a.volume=a.param);break;case 13:this.jumpFlag^=1;break;case 14:this.mixer.filter.active=a.param^1;break;case 15:d=a.param,1>d?d=1:31a.position;)if(c=a.readUshort(), 22 | 32272==c||32288==c)c=a.readUshort(),16890==c&&(f=a.position+a.readUshort(),c=a.readUshort(),53756==c?(g=f+a.readUint(),this.mixer.loopLen=64,a.position+=2):(g=f,this.mixer.loopLen=512),e=a.position+a.readUshort(),c=a.readUbyte(),114==c&&(d=a.readUbyte()));else if(20937==c){if(a.position+=2,c=a.readUshort(),17914==c){h=a.position+a.readUshort();for(a.position+=2;;)if(c=a.readUshort(),19450==c){b=a.position+a.readUshort();break}}}else if(49404==c)a.position+=2,c=a.readUshort(),16875==c&&(i=a.readUshort()); 23 | else if(13421==c)a.position+=2,c=a.readUshort(),18938==c&&(this.vibrato=a.position+a.readUshort());else if(16960==c&&(c=a.readUshort(),17914==c)){this.periods=a.position+a.readUshort();break}if(e&&g&&d&&i){a.position=g;this.samples=[];d++;for(f=0;f>5;e=f+3;this.variant=1;if(f>=d)for(;df;++f)d=a.readUint(),dc-a.position)break}this.lastSong=this.songs.length-1;a.length=g;for(a.position=352;512>a.position;)c= 26 | a.readUshort(),45116==c&&(c=a.readUshort(),133==c?this.variant=2:134==c?this.variant=4:135==c&&(this.variant=3));this.stream=a;this.version=1}}},process:{value:function(){for(var a,f,d,e,b=this.voices[3];b;){a=b.channel;this.stream.position=b.patternPos;d=b.sample;b.busy||(b.busy=1,0==d.loopPtr?(a.pointer=this.mixer.loopPtr,a.length=this.mixer.loopLen):0e)switch(e){case -121:3== 27 | this.variant&&(b.volume=this.stream.readUbyte());break;case -122:4==this.variant&&(b.volume=this.stream.readUbyte());break;case -123:1e&&(e=0),b.sample=d=this.samples[e],b.vibratoPtr=this.vibrato+d.vibrato,b.vibratoPos=b.vibratoPtr}else b.tick=this.song.speed*e,b.note=this.stream.readByte(),b.patternPos=this.stream.position,b.synthPos=d.loPos,b.vibratoPos=b.vibratoPtr,a.pointer= 29 | d.pointer,a.length=d.length,a.volume=b.volume?b.volume:d.volume,this.stream.position=this.periods+(b.note<<1),e=this.stream.readUshort()*d.relative,a.period=b.period=e>>10,a.enabled=1,b.busy=f=0}else{if(1==b.tick&&(4!=this.variant||!(b.flags&4)))a.enabled=0;b.flags&1&&(a.period=b.period+=b.portaSpeed);d.divider&&(this.stream.position=b.vibratoPos,e=this.stream.readByte(),-124==e&&(this.stream.position=b.vibratoPtr,e=this.stream.readByte()),b.vibratoPos=this.stream.position,e*=parseInt(b.period/d.divider), 30 | a.period=b.period+e)}d.hiPos&&(e=0,b.flags&2?(b.synthPos--,b.synthPos<=d.loPos&&(b.flags&=-3,e=60)):(b.synthPos++,b.synthPos>d.hiPos&&(b.flags|=2,e=60)),this.mixer.memory[d.pointer+b.synthPos]=e);b=b.next}}}});g.voices[3]=h(3,8);g.voices[3].next=g.voices[2]=h(2,4);g.voices[2].next=g.voices[1]=h(1,2);g.voices[1].next=g.voices[0]=h(0,1);return Object.seal(g)}})(); -------------------------------------------------------------------------------- /Flod JS 2.1/minified/STPlayer.js: -------------------------------------------------------------------------------- 1 | /* 2 | Flod JS 2.1 3 | 2012/04/30 4 | Christian Corti 5 | Neoart Costa Rica 6 | 7 | Last Update: Flod JS 2.1 - 2012/04/13 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 10 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 11 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 12 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 13 | 14 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 15 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 16 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 17 | */ 18 | (function(){function h(e){return Object.create(null,{index:{value:e,writable:!0},next:{value:null,writable:!0},channel:{value:null,writable:!0},sample:{value:null,writable:!0},enabled:{value:0,writable:!0},period:{value:0,writable:!0},last:{value:0,writable:!0},effect:{value:0,writable:!0},param:{value:0,writable:!0},initialize:{value:function(){this.sample=this.channel=null;this.param=this.effect=this.last=this.period=this.enabled=0}}})}var i=[856,808,762,720,678,640,604,570,538,508,480,453,428, 19 | 404,381,360,339,320,302,285,269,254,240,226,214,202,190,180,170,160,151,143,135,127,120,113,0,0,0];window.neoart.STPlayer=function(e){e=AmigaPlayer(e);Object.defineProperties(e,{id:{value:"STPlayer"},standard:{value:0,writable:!0},track:{value:null,writable:!0},patterns:{value:[],writable:!0},samples:{value:[],writable:!0},length:{value:0,writable:!0},voices:{value:[],writable:!0},trackPos:{value:0,writable:!0},patternPos:{value:0,writable:!0},jumpFlag:{value:0,writable:!0},force:{set:function(b){1> 20 | b?b=1:4this.version&&(b=(b?20.44952532:20.637767904)*(this.sampleRate/1E3)/120,this.mixer.samplesTick=(240-this.tempo)*b>>0)}},initialize:{value:function(){var b=this.voices[0];this.reset();this.ntsc=this.standard;this.speed=6;for(this.jumpFlag=this.patternPos=this.trackPos=0;b;)b.initialize(),b.channel=this.mixer.channels[b.index],b.sample=this.samples[0],b=b.next}},loader:{value:function(b){var d=0,c,a,e=0,g=0, 21 | f;if(!(1626>b.length)){this.title=b.readString(20);e+=this.isLegal(this.title);this.version=1;b.position=42;for(c=1;16>c;++c)(f=b.readUshort())?(a=AmigaSample(),b.position-=24,a.name=b.readString(22),a.length=f<<1,b.position+=3,a.volume=b.readUbyte(),a.loop=b.readUshort(),a.repeat=b.readUshort()<<1,b.position+=22,a.pointer=g,g+=a.length,this.samples[c]=a,e+=this.isLegal(a.name),9999c;++c)f=b.readUbyte()<<8,16384d&&(d=f);b.position=600;d+=256;this.patterns.length=d;c=b.length-g-600>>2;d>c&&(d=c);for(c=0;c>4;this.patterns[c]=a;2a.effect&&e--;a.note&&(113>a.note||856c;++c)if(a=this.samples[c]){a.loop?(a.loopPtr=a.pointer+a.loop,a.pointer=a.loopPtr,a.length=a.repeat):(a.loopPtr=this.mixer.memory.length,a.repeat=2);g=a.pointer+4;for(b=a.pointer;be&&(this.version=0)}}},process:{value:function(){var b,d,c,a=this.voices[0];if(this.tick)for(;a;){if(a.param)if(b= 24 | a.channel,1==this.version)1==a.effect?this.arpeggio(a):2==a.effect&&(c=a.param>>4,a.period=c?a.period+c:a.period-(a.param&15),b.period=a.period);else{switch(a.effect){case 0:this.arpeggio(a);break;case 1:a.last-=a.param&15;113>a.last&&(a.last=113);b.period=a.last;break;case 2:a.last+=a.param&15,856this.version))switch(a.effect){case 11:this.trackPos= 26 | a.param-1;this.jumpFlag^=1;break;case 12:b.volume=a.param;break;case 13:this.jumpFlag^=1;break;case 14:this.mixer.filter.active=a.param^1;break;case 15:if(!a.param)break;this.speed=a.param&15;this.tick=0}a=a.next}if(++this.tick==this.speed&&(this.tick=0,this.patternPos+=4,256==this.patternPos||this.jumpFlag))this.patternPos=this.jumpFlag=0,++this.trackPos==this.length&&(this.trackPos=0,this.mixer.complete=1)}},arpeggio:{value:function(b){var d=b.channel,c=0,a=this.tick%3;if(a){for(a=1==a?b.param>> 27 | 4:b.param&15;b.last!=i[c];)c++;d.period=i[c+a]}else d.period=b.last}},isLegal:{value:function(b){var d,c=0,a=b.length;if(!a)return 0;for(;cd||127d.length&&(g=d.length-f);for(a=0;ab?b+=256:127d.length&&(g=d.length-f>>1);for(a=0;ab?b+=65536:32767this.bufferSize&&(this.remains=i-this.bufferSize,i=this.bufferSize)));h=this.samplesLeft;d+h>=i&&(h=i-d);k=m+h;for(a=this.channels[0];a;){if(a.enabled){l=a.sample;g=l.data;e=this.buffer[m];for(f=m;f=a.length)if(l.loopMode)a.pointer=l.loopStart+(a.index-a.length),a.length=l.length,2==l.loopMode&&(a.dir=a.dir?0:l.length+l.loopStart-1);else{a.enabled=0;break}else a.pointer=a.index;a.mute?(a.ldata=0,a.rdata= 25 | 0):(j=a.dir?g[a.dir-a.pointer]:g[a.pointer],a.ldata=j*a.lvol,a.rdata=j*a.rvol)}a.index=a.pointer+a.delta;if(1<=(a.fraction+=a.speed))a.index++,a.fraction--;e.l+=a.ldata;e.r+=a.rdata;e=e.next}}a=a.next}m=k;d+=h;this.samplesLeft-=h}e=this.buffer[0];a=b.outputBuffer.getChannelData(0);b=b.outputBuffer.getChannelData(1);for(f=0;fe.l&&(e.l=-1),1e.r&&(e.r=-1),a[f]=e.l,b[f]=e.r,e.l=e.r=0,e=e.next}},accurate:{value:function(b){var a,d,f,p,k,m=0,l,e=0,i,h,j,c,o=this.bufferSize, 26 | q,n;if(this.completed){if(!this.remains){this.player.stop();return}o=this.remains}for(;mthis.bufferSize&&(this.remains=o-this.bufferSize,o=this.bufferSize)));q=this.samplesLeft;m+q>=o&&(q=o-m);l=e+q;for(a=this.channels[0];a;){if(a.enabled){h=a.sample;d=h.data;if(j=a.oldSample)f=j.data;c=this.buffer[e];for(k=e;k>0,a.fraction-=p,0a.length&&(a.fraction+=a.pointer-a.length,a.pointer=a.length)):(a.pointer-=p,a.pointer>0,a.oldFraction-=p,0a.oldLength&&(a.oldFraction+=a.oldPointer- 28 | a.oldLength,a.oldPointer=a.oldLength)):(a.oldPointer-=p,a.oldPointerc.l&&(c.l=-1),1c.r&&(c.r=-1),a[k]=c.l,b[k]=c.r,c.l=c.r=0,c=c.next}}});d.bufferSize=8192;return Object.seal(d)}function SBPlayer(d){var b=CorePlayer();Object.defineProperties(b,{track:{value:null,writable:!0},length:{value:0,writable:!0},restart:{value:0,writable:!0},timer:{value:0,writable:!0},master:{value:0,writable:!0},volume:{set:function(a){0>a?a=0:1a;++a)b[a]=8;for(;256>a;++a)b[a]=9;for(;280>a;++a)b[a]=7;for(;288>a;++a)b[a]=8;this.construct(this.fdiscode,b,288);for(a=0;30>a;++a)b[a]=5;this.construct(this.fdiscode,b,30);this.dlencode=h(286);this.ddiscode=h(30)}},construct:{value:function(b,a,k){for(var c=0,d=1,i=new Uint16Array(16),f=0;16>c;++c)b.count[c]=0;for(;fc;++c)if(d<<=1,d-=b.count[c],0>d)return d;for(c=1;15>c;++c)i[c+1]=i[c]+b.count[c];for(f= 21 | 0;f>b;this.bitcnt-=b;return a&(1<d)return d;if(256>d)this.output.writeAt(this.outcnt++,d);else if(256d)return d;c= 22 | r[d]+this.bits(s[d]);if(c>this.outcnt)throw t;for(c=this.outcnt-c;g--;)this.output.writeAt(this.outcnt++,this.output.readAt(c++))}}while(256!=d);return 0}},decode:{value:function(b){for(var a=this.bitbuf,c=0,g,d=0,i=0,f=this.inpbuf.length,e=this.bitcnt,h=1;;){for(;e--;){c|=a&1;a>>=1;g=b.count[h];if(cb)throw j;a=this.inpbuf.readAt(this.inpcnt++);a|=this.inpbuf.readAt(this.inpcnt++)<<8;if(this.inpbuf.readAt(this.inpcnt++)!=(~a&255)||this.inpbuf.readAt(this.inpcnt++)!=(~a>>8&255))throw u;if(this.inpcnt+a>b)throw j;for(;a--;)this.output.writeAt(this.outcnt++,this.inpbuf.readAt(this.inpcnt++));return 0}},dynamic:{value:function(){var b=new Uint8Array(316),a;a=0;var c,g=this.bits(5)+257,d=this.bits(5)+1; 24 | c=this.bits(4)+4;var e=g+d,f;if(286a;++a)b[m[a]]=0;if(a=this.construct(this.dlencode,b,19))throw w;for(a=0;af)b[a++]=f;else{c=0;if(16==f){if(0==a)throw x;c=b[a-1];f=3+this.bits(2)}else f=17==f?3+this.bits(3):11+this.bits(7);if(a+f>e)throw y;for(;f--;)b[a++]=c}a=this.construct(this.dlencode,b,g);if(0>a||0a||0< 25 | a&&1!=d-this.ddiscode.count[0])throw A;return this.codes(this.dlencode,this.ddiscode)}}});c.initialize();return Object.seal(c)}function B(){return Object.create(null,{name:{value:"",writable:!0},extra:{value:null,writable:!0},version:{value:0,writable:!0},flag:{value:0,writable:!0},method:{value:0,writable:!0},time:{value:0,writable:!0},crc:{value:0,writable:!0},compressed:{value:0,writable:!0},size:{value:0,writable:!0},offset:{value:0,writable:!0},date:{get:function(){return new Date((this.time>> 26 | 25&127)+1980,(this.time>>21&15)-1,this.time>>16&31,this.time>>11&31,this.time>>5&63,(this.time&31)<<1)}},isDirectory:{get:function(){return"/"==this.name.charAt(this.name.length-1)}}})}if(!e)return null;var o="Invalid block type.",j="Available inflate data did not terminate.",t="Distance is too far back.",u="Stored block length did not match one's complement.",v="Too many length or distance codes.",w="Code lengths codes incomplete.",x="Repeat lengths with no first length.",y="Repeat more than specified lengths.", 27 | z="Invalid literal/length code lengths.",A="Invalid distance code lengths.",p=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],q=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],r=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],s=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],m=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],l=Object.create(null,{endian:{value:1, 28 | writable:!0},entries:{value:null,writable:!0},stream:{value:null,writable:!0},uncompress:{value:function(c){var b=this.stream,a;a=!1;var e,g,d;if(!c)return null;if("string"==typeof c){d=this.entries.length;for(e=0;ea&&(a=0);do if(80==c.readAt(b)&&(c.position=b,101010256==c.readUint()))break;while(--b> 31 | a);if(b==a)throw"The archive is either in unknown format or damaged.";c.position=b+10;this.entries=[];this.entries.length=c.readUshort();c.position=b+16;c.position=c.readUint();this.parseCentral()}}});e.view||(e=ByteArray(e));e.endian=1;e.position=0;l.stream=e;l.parseEnd();return Object.seal(l)}window.neoart.Unzip=1; -------------------------------------------------------------------------------- /Flod JS 2.1/readme.txt: -------------------------------------------------------------------------------- 1 | Flod version 4.1 2 | Flod JS version 2.1 3 | Flip version 1.2 4 | 5 | 2012/04/30 6 | Christian Corti 7 | Neoart Costa Rica 8 | 9 | E-Mail: flod@neoartcr.com 10 | 11 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 12 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 13 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 14 | 15 | Flod is free for non commercial user, to use it in any commercial production I'll ask you to 16 | mention the proper credits and to make a donation to: chreil@hotmail.com via PayPal, thank you. 17 | 18 | Special thanks to Richard Davey, Mathew Nolan and Andreas Argirakis :) 19 | 20 | What's new: 21 | 4.1/2.1: 22 | - some small modules (less than 2150 bytes) were not recognized as valid 23 | - His Master's Noisetracker, fixed Peggy Go Home null sample pointer 24 | - His Master's Noisetracker, fixed Ikke Advanced wrong patterns pointers 25 | - SoundFX, fixed effect 9 26 | - SoundFX, added support for untouched Operation Stealth modules 27 | - Soundtrackers, fixed period overflow, portamento up/down 28 | - FastTracker II, fixed not working master volume 29 | 4.0/2.0: 30 | - new David Whittaker player 31 | - new FredEd player 32 | - new Jochen Hippel player (regular and COSO formats, 4 voices only) 33 | - new Rob Hubbard player 34 | - added DigiBooster Pro 2.18 detection to the XM player 35 | - Delta Music 1.0, fixed wrong sustain value 36 | - Delta Music 2.0, fixed Warfalcons-Intromusik 2 crash 37 | - Delta Music 2.0, fixed wrong restart pointer 38 | - Digital Mugician, fixed sample loop pointer (fixes Hoi Level 4) 39 | - Future Composer (Flod only), 1.0/1.3 was using the wrong waves 40 | - SoundFX, fixed effect 7/8 [step down/up] (fixes Forever Tonight) 41 | - SidMON 2, fixed effect C/F [volume and speed] (fixes Cool Module) 42 | - SidMON 2 was processing effects at tick 0, it shouldn't :) 43 | - SidMON 2, fixed adsr sustain volume 44 | - SoundMon, fixed buffer restore, most modules didn't play at all 45 | - ProTracker/NoiseTracker fixed vibrato depth value not set at the beginning 46 | - Fixed and updated Flip/Unzip 47 | 3.0/1.0: 48 | - Flod XM is now part of Flod base code 49 | - Lots of bugs fixed 50 | - Flod JS source code released 51 | 52 | Supported Formats: 53 | - Brian Postma's SoundMon 1.0/2.0/3.0 54 | - David Whittaker 55 | - Delta Music 1.0 56 | - Delta Music 2.0/2.2 57 | - Digital Mugician 58 | - Digital Mugician 7 voices 59 | - D.O.C. Soundtracker 9/2.0 60 | - FastTracker II XM (PC) 61 | - FredEd 62 | - Future Composer 1.0/1.3 63 | - Future Composer 1.4 64 | - His Master's NoiseTracker 65 | - Jochen Hippel 66 | - Jochen Hippel COSO 67 | - NoiseTracker 1.0/1.1/2.0 68 | - ProTracker 1.0/1.1/1.2 69 | - Rob Hubbard 70 | - SidMON 71 | - SidMON II 72 | - SoundFX 1.0/1.8/1.9/2.0 73 | - Soundtracker 2.3/2.5 74 | - Ultimate Soundtracker, The (Karsten Obarski) -------------------------------------------------------------------------------- /Media/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/photonstorm/FlodJS/6a5814a415f6b1796cf2c80b0a5e3631d162a1a6/Media/background.png -------------------------------------------------------------------------------- /Media/glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/photonstorm/FlodJS/6a5814a415f6b1796cf2c80b0a5e3631d162a1a6/Media/glass.png -------------------------------------------------------------------------------- /Media/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/photonstorm/FlodJS/6a5814a415f6b1796cf2c80b0a5e3631d162a1a6/Media/logo.png -------------------------------------------------------------------------------- /Sample Tunes/mod/MangaPart1.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/photonstorm/FlodJS/6a5814a415f6b1796cf2c80b0a5e3631d162a1a6/Sample Tunes/mod/MangaPart1.mod -------------------------------------------------------------------------------- /Sample Tunes/mod/Monday.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/photonstorm/FlodJS/6a5814a415f6b1796cf2c80b0a5e3631d162a1a6/Sample Tunes/mod/Monday.mod -------------------------------------------------------------------------------- /Sample Tunes/mod/StardustMemories.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/photonstorm/FlodJS/6a5814a415f6b1796cf2c80b0a5e3631d162a1a6/Sample Tunes/mod/StardustMemories.mod -------------------------------------------------------------------------------- /Sample Tunes/mod/Tinytune.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/photonstorm/FlodJS/6a5814a415f6b1796cf2c80b0a5e3631d162a1a6/Sample Tunes/mod/Tinytune.mod -------------------------------------------------------------------------------- /Sample Tunes/mod/sound-of-da-lunatic.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/photonstorm/FlodJS/6a5814a415f6b1796cf2c80b0a5e3631d162a1a6/Sample Tunes/mod/sound-of-da-lunatic.mod -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | JavaScript Flod 1.0 2 | 2011/11/30/ 3 | Christian Corti 4 | Neoart Costa Rica 5 | 6 | E-Mail: flod@neoartcr.com 7 | 8 | This is a JavaScript port of my AS3 Flod library, it currently works only in Chrome (I've used version 9 | 17.0.942.0 to develop it), hopefully in the future other browsers will add support for the Web Audio API. 10 | 11 | It took a lot of effort to reach this stage so if you want to use it in any commercial production I'll ask 12 | you to mention the proper credits and to make a donation to: chreil@hotmail.com via PayPal, thank you. 13 | 14 | You can include just the player(s) you need in your page just remember that all the Amiga players needs 15 | the Core.js and the Amiga.js files too and the PC player (FT2) needs the Core.js and the Soundblaster.js files. 16 | 17 | Example, including the ProTracker player: 18 | Core.js 19 | Amiga.js 20 | PTPlayer.js 21 | 22 | including the FastTracker II player: 23 | Core.js 24 | Soundblaster.js 25 | F2Player.js 26 | 27 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 28 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 29 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 30 | 31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 32 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 33 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 34 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | JavaScript / HTML5 Flod 2.1 2 | =========================== 3 | 4 | What's new in 2.1: 5 | 6 | * some small modules (less than 2150 bytes) were not recognized as valid 7 | * His Master's Noisetracker, fixed Peggy Go Home null sample pointer 8 | * His Master's Noisetracker, fixed Ikke Advanced wrong patterns pointers 9 | * SoundFX, fixed effect 9 10 | * SoundFX, added support for untouched Operation Stealth modules 11 | * Soundtrackers, fixed period overflow, portamento up/down 12 | * FastTracker II, fixed not working master volume 13 | 14 | What's new in 2.0: 15 | 16 | * new David Whittaker player 17 | * new FredEd player 18 | * new Jochen Hippel player (regular and COSO formats, 4 voices only) 19 | * new Rob Hubbard player 20 | * added DigiBooster Pro 2.18 detection to the XM player 21 | * Delta Music 1.0, fixed wrong sustain value 22 | * Delta Music 2.0, fixed Warfalcons-Intromusik 2 crash 23 | * Delta Music 2.0, fixed wrong restart pointer 24 | * Digital Mugician, fixed sample loop pointer (fixes Hoi Level 4) 25 | * Future Composer (Flod only), 1.0/1.3 was using the wrong waves 26 | * SoundFX, fixed effect 7/8 [step down/up] (fixes Forever Tonight) 27 | * SidMON 2, fixed effect C/F [volume and speed] (fixes Cool Module) 28 | * SidMON 2 was processing effects at tick 0, it shouldn't :) 29 | * SoundMon, fixed buffer restore, most modules didn't play at all 30 | * ProTracker/NoiseTracker fixed vibrato depth value not set at the beginning 31 | * Fixed and updated Flip/Unzip 32 | 33 | This is a JavaScript port of my AS3 Flod library, it currently works only in Chrome (I've used version 34 | 17.0.942.0 to develop it), hopefully in the future other browsers will add support for the Web Audio API. 35 | 36 | It took a lot of effort to reach this stage so if you want to use it in any commercial production I'll ask 37 | you to mention the proper credits and to make a donation to: chreil@hotmail.com via PayPal, thank you. 38 | 39 | Special thanks to Richard Davey, Mathew Nolan and Andreas Argirakis :) 40 | 41 | This version will replay the following music formats using the Web Audio API: 42 | 43 | * FastTracker II XM PC + DigiBooster Pro 2.18 detection 44 | * The Ultimate Soundtracker (Karsten Obarski) 45 | * DOC Soundtracker 9, DOC Soundtracker 2.0 46 | * Master Soundtracker 47 | * Soundtracker 2.3, Soundtracker 2.5 48 | * NoiseTracker 1.0, NoiseTracker 1.1, NoiseTracker 2.0 49 | * His Master’s NoiseTracker 50 | * ProTracker 1.0, ProTracker 1.1, ProTracker 1.2 51 | * SoundFX 1.0, SoundFX 1.8, SoundFX 1.9, SoundFX 2.0 52 | * FutureComposer 1.0, FutureComposer 1.2, FutureComposer 1.3, FutureComposer 1.4 53 | * SidMON 54 | * SidMON II 55 | * Brian Postma's SoundMon 1.0, 2.0 and 3.0 56 | * DeltaMusic 1.0 57 | * DeltaMusic 2.0, Delta Music 2.2 58 | * Digital Mugician 59 | * Digital Mugician 7 Voices 60 | * David Whittaker 61 | * FredEd 62 | * Jochen Hippel (regular and COSO formats, 4 voices only) 63 | * Rob Hubbard 64 | 65 | Author 66 | ------ 67 | 68 | 30th April 2012, Christian Corti 69 | Neoart Costa Rica 70 | E-Mail: flod@neoartcr.com 71 | 72 | Live Demo 73 | --------- 74 | 75 | http://sandbox.photonstorm.com/FlodJS/ 76 | 77 | Example 78 | ------- 79 | 80 | You can include just the player(s) you need in your page just remember that all the Amiga players needs 81 | the Core.js and the Amiga.js files too and the PC player (FT2) needs the Core.js and the Soundblaster.js files. 82 | 83 | Example, including the ProTracker player: 84 | 85 | Core.js 86 | Amiga.js 87 | PTPlayer.js 88 | 89 | including the FastTracker II player: 90 | 91 | Core.js 92 | Soundblaster.js 93 | F2Player.js 94 | 95 | License 96 | ------- 97 | 98 | This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. 99 | To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to 100 | Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 101 | 102 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 103 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 104 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 105 | IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------