-
Notifications
You must be signed in to change notification settings - Fork 1
/
jsfxr.min.js
7 lines (7 loc) · 2.76 KB
/
jsfxr.min.js
1
2
3
4
5
6
7
function SfxrParams(){this.setSettings=function(e){for(var f=0;24>f;f++)this[String.fromCharCode(97+f)]=e[f]||0;.01>this.c&&(this.c=.01);e=this.b+this.c+this.e;.18>e&&(e=.18/e,this.b*=e,this.c*=e,this.e*=e)}}
function SfxrSynth(){this._params=new SfxrParams;var e,f,d,k,l,C,H,I,J,z,m,K;this.reset=function(){var b=this._params;k=100/(b.f*b.f+.001);l=100/(b.g*b.g+.001);C=1-b.h*b.h*b.h*.01;H=-b.i*b.i*b.i*1E-6;b.a||(m=.5-b.n/2,K=5E-5*-b.o);I=1+b.l*b.l*(0<b.l?-.9:10);J=0;z=1==b.m?0:(1-b.m)*(1-b.m)*2E4+32};this.totalReset=function(){this.reset();var b=this._params;e=b.b*b.b*1E5;f=b.c*b.c*1E5;d=b.e*b.e*1E5+12;return 3*((e+f+d)/3|0)};this.synthWave=function(b,L){var a=this._params,M=1!=a.s||a.v,r=a.v*a.v*.1,N=
1+3E-4*a.w,n=a.s*a.s*a.s*.1,W=1+1E-4*a.t,X=1!=a.s,Y=a.x*a.x,Z=a.g,O=a.q||a.r,aa=a.r*a.r*a.r*.2,P=a.q*a.q*(0>a.q?-1020:1020),Q=a.p?((1-a.p)*(1-a.p)*2E4|0)+32:0,ba=a.d,R=a.j/2,ca=a.k*a.k*.01,D=a.a,E=e,da=1/e,ea=1/f,fa=1/d;a=5/(1+a.u*a.u*20)*(.01+n);.8<a&&(a=.8);a=1-a;for(var F=!1,S=0,u=0,v=0,T=0,A=0,w,x=0,g,p=0,q,G=0,c,U=0,t,V=0,B=Array(1024),y=Array(32),h=B.length;h--;)B[h]=0;for(h=y.length;h--;)y[h]=2*Math.random()-1;for(h=0;h<L;h++){if(F)return h;Q&&++U>=Q&&(U=0,this.reset());z&&++J>=z&&(z=0,k*=
I);C+=H;k*=C;k>l&&(k=l,0<Z&&(F=!0));g=k;0<R&&(V+=ca,g*=1+Math.sin(V)*R);g|=0;8>g&&(g=8);D||(m+=K,0>m?m=0:.5<m&&(m=.5));if(++u>E)switch(u=0,++S){case 1:E=f;break;case 2:E=d}switch(S){case 0:v=u*da;break;case 1:v=1+2*(1-u*ea)*ba;break;case 2:v=1-u*fa;break;case 3:v=0,F=!0}O&&(P+=aa,q=P|0,0>q?q=-q:1023<q&&(q=1023));M&&N&&(r*=N,1E-5>r?r=1E-5:.1<r&&(r=.1));t=0;for(var ha=8;ha--;){p++;if(p>=g&&(p%=g,3==D))for(w=y.length;w--;)y[w]=2*Math.random()-1;switch(D){case 0:c=p/g<m?.5:-.5;break;case 1:c=1-p/g*2;
break;case 2:c=p/g;c=6.28318531*(.5<c?c-1:c);c=1.27323954*c+.405284735*c*c*(0>c?1:-1);c=.225*((0>c?-1:1)*c*c-c)+c;break;case 3:c=y[Math.abs(32*p/g|0)]}M&&(w=x,n*=W,0>n?n=0:.1<n&&(n=.1),X?(A+=(c-x)*n,A*=a):(x=c,A=0),x+=A,T+=x-w,c=T*=1-r);O&&(B[G%1024]=c,c+=B[(G-q+1024)%1024],G++);t+=c}t*=.125*v*Y;b[h]=1<=t?32767:-1>=t?-32768:32767*t|0}return L}}var synth=new SfxrSynth;
window.jsfxr=function(e){synth._params.setSettings(e);var f=synth.totalReset();e=new Uint8Array(4*((f+1)/2|0)+44);f=2*synth.synthWave(new Uint16Array(e.buffer,44),f);var d=new Uint32Array(e.buffer,0,44);d[0]=1179011410;d[1]=f+36;d[2]=1163280727;d[3]=544501094;d[4]=16;d[5]=65537;d[6]=44100;d[7]=88200;d[8]=1048578;d[9]=1635017060;d[10]=f;f+=44;d=0;for(var k="data:audio/wav;base64,";d<f;d+=3){var l=e[d]<<16|e[d+1]<<8|e[d+2];k+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[l>>18]+
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[l>>12&63]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[l>>6&63]+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[l&63]}return k};