memoscan
← all memos

Memo 0xb74464c0…4d4eb3 on Ethereum

his.sdf=!1,this.s_depth=void 0,this.c_depth=void 0}tick_n(t,e,i,s,n,h,r){}incr_for(t,e,i,s,n,h,r,a,o,c,l,u){let _=k(l(.1*t*this.n_f,.12*e*this.n_f,.5*n),-1,1,a,o);return _*=u,_}}class At{constructor(t){let e=R(t.rg(.5,.2));this.thick=F(50,280,e),this.sdf=!0,this.s_depth=void 0,this.c_depth=void 0}tick_n(t,e,i,s,n,h,r){this.n1=k(h(.5*t,0),-1,1,.002,2),this.n2=k(h(t,1e3),-1,1,s/2,n)}incr_for(t,e,i,s,n,h,r,a,o,c,l,u){let _=k(Math.sin(i*this.n1+n),-1,1,0,h),p=this.thick*k(c(.005*i+n,0),-1,1,0,1);return s>=_-p&&s<=_+p?this.n2:u}}const yt=(t,e)=>Math.hypot(e[0]-t[0],e[1]-t[1]),Mt=(t,e)=>{let i=Math.cos(e),s=Math.sin(e);return[t[0]*i+t[1]*s,t[1]*i+t[0]*s]};class bt{constructor(t,e=0,i={}){this.repeat=i.two_repeat?2:t.rn(1,1.5),this.n_amt=t.rn(.1,2==this.repeat?.35:.5),this.thick=[10,100],this.dir=e,this.dir_m=t.rc([-1,1]),this.sdf=!0,this.s_depth=void 0,this.c_depth=void 0}tick_n(t,e,i,s,n,h,r){this.n_f=.002;let a=0==this.dir?i:e;this.mod=a/this.repeat}incr_for(t,e,i,s,n,h,r,a,o,c,l,u){let _=0==this.dir?h:r,p=0==this.dir?i:s,f=0==this.dir?s:i,g=0==this.dir?t:e,m=k(c(p*this.n_f,n)*this.n_amt,-1,1,0,_),d=k(Math.sin(.1*g+n),-1,1,this.thick[0],this.thick[1]),v=Math.abs(f+this.dir_m*n*100)%this.mod;return v>=m-d&&v<=m+d?.125:v>m+d&&v<=m+4*d?.25:v>m+3*d&&v<=m+8*d?.5:u}}class Tt{constructor(t){let e=t.rn(.4,.6);this.n=t.rb(c),this.n&&(this.n_amt=t.rn(.2,.5),this.n_f=t.ri(10,50)),this.mod=e,this.sdf=!0,this.rot_mul=1,this.ang=0,this.s_depth=void 0,this.c_depth=void 0}tick_n(t,e,i,s,n,h,r){this.n1=k(h(.8*t,0),-1,1,0,1),this.n2=k(h(.7*t,1e3),-1,1,0,.33),this.n3=k(h(.9*t,-1e3),-1,1,0,1),this.n4=k(h(.75*t,-1e5),-1,1,0,.5),this.n5=k(h(t,1e6),-1,1,s,1);let a=h(.25*t,0);this.n6=k(a,-1,1,this.ang,this.ang+Math.PI/4),this.out_n=a}incr_for(t,e,i,s,n,h,r,a,o,c,l,u){let _=Mt([i/r-.5,s/h-.5],this.n6);if(this.n){let t=c(Math.floor(e/this.n_f),.75*n)*this.n_amt;_[0]+=t,_[1]+=t}this.n1,this.n2,_[0]%=this.mod;let p=this.n3,f=this.n4;return _[1]%=this.mod,_[1]+.5>=p-f/2&&_[1]+.5<=p+f/2?this.n5:u}}class Gt{constructor(t,e,i={}){let s=Math.floor(10/e);for(this.c=1,this.r=1;this.c*this.r<4||this.c*this.r>=40;)this.c=i.c??t.ri(1,10),this.r=t.ri(1,s);this.rot=t.rcw([0,Math.PI/4,-Math.PI/4],1==i.c?[1,1,1]:[.9,.05,.05]),i.no_rot&&(this.rot=0),this.n=i.force_n||t.rb(c),this.floor_n=this.n&&1==this.r&&t.rb(c),this.n&&(this.n_amt=t.rn(.05,.1),this.n_f=i.n_f??t.rc([1,.01]),this.floor_n&&(this.n_f=.1)),this.sdf=!1,this.s_depth=1,this.c_depth=0}tick_n(t,e,i,s,n,h,r){}incr_for(t,e,i,s,n,h,r,a,o,c,l,u){let _=r/this.c,p=h/this.r,f=i/r-.5,g=s/h-.5;if(this.n){let t=e*this.n_f,s=l(.001*i,this.floor_n?Math.floor(t/5):t,n);this.c>1?f+=s*this.n_amt:g+=s*this.n_amt}let m=Mt([f,g],this.rot);i=(m[0]+.5)*r,s=(m[1]+.5)*h;let d=V(0,this.c-1,Math.floor(i/_)),v=V(0,this.r-1,Math.floor(s/p)),C=this.c>=this.r?i/_%1:s/p%1;this.s_depth=C,this.c_depth=C;let w=k(l(d,v,n),-1,1,.5,o);return w*=u,w}}class Ft{constructor(t,e={}){this.num=V(4,50,t.rg(12,5)),this.n=e.force_n||t.rb(c),this.n&&(this.n_amt=t.rc([.5,1,2]),this.n_f=t.rc([10,20,30,40])),this.sdf=!1,this.s_depth=1,this.c_depth=this.n&&this.n_f<=20?0:void 0}tick_n(t,e,i,s,n,h,r,a=1){this.n1=h(.1*t,10*a),this.n2=h(.12*t,1e3*a);let o=yt([0,0],[e/2,i/2]);this.l=o/this.num,this.out_n=-this.n1}incr_for(t,e,i,s,n,h,r,a,o,c,l,u){let _=[i-r/2,s-h/2];if(_[1]/=r/h,_[0]+=this.n1*r/4,_[1]+=this.n2*h/4,this.n){let t=c(Math.floor(e/this.n_f),.1*n)*this.n_amt*r/4;_[0]+=t,_[1]+=t}let p=yt(_,[0,0]),f=Math.floor(p/this.l),g=p/this.l%1;this.s_depth=g,this.c_depth=this.n&&this.n_f<=20?g:void 0;let m=k(c(f,n),-1,1,.5,o);return m*=u,m}}class kt{constructor(t,e={}){this.num=t.ri(10,20),this.n=t.rb(e.proba_n??c),this.n&&(this.n_amt=t.rc([.05,.1,.15]),this.n_f=t.rn(.03,.1)),this.sdf=!0,this.s_depth=void 0,this.c_depth=void 0}tick_n(t,e,i,s,n,h,r){this.inside_n=k(h(t,0),-1,1,s,n),this.noises=[],this.sines=[];let a=0;for(let o=0;o<this.num;o++){let s=k(h(.17*t,100*o),-1,1,-e/2,e/2),n=k(h(.13*t,100*-o),-1,1,-i/2,i/2);this.noises.push([s,n]),this.sines.push(k(Math.sin(t+100*o),-1,1,20,50)*(this.n?1.5:1)),a+=s}a/=this.num,this.out_n=V(-1,1,k(a/(e/2),-.2,.2,-1,1))}incr_for(t,e,i,s,n,h,r,a,o,c,l,u){let _=[i-r/2,s-h/2];if(_[1]/=r/h,this.n){let t=l(.001*i,e*this.n_f,n)*r*this.n_amt;_[0]+=t,_[1]+=t}let p=!1;for(let f=0;f<this.num;f++){let t=yt(_,this.noises[f]),e=this.sines[f];p=p||t<e}return p?this.inside_n:u}}const Vt=[8,11,14,16];function Rt(t,e,i){return 0==t?new It(e):1==t?new At(e):2==t?new bt(e,0):3==t?new bt(e,1):6==t?new Tt(e):8==t?new Gt(e,i):9==t?new Ft(e):10==t?new kt(e):11==t?new Gt(e,i,{c:1,force_n:!0,n_f:.01}):12==t?new It(e,{n_f:.1}):14==t?new Gt(e,i,{n_f:.01}):15==t?new Ft(e,{force_n:!0}):16==t?new Gt(e,i,{force_n:!0,n_f:1,no_rot:!0}):17==t?new bt(e,1,{two_repeat:!0}):18==t?new kt(e,{proba_n:0}):void 0}function Dt(t,e,i,s){return 9==t&&9==e?.5*(i.out_n+s.out_n):9==t||15==t?i.out_n:9==e||15==e?s.out_n:10==t||13==t||18==t?i.out_n:10==e||13==e||18==t||6==e?s.out_n:void 0}function Bt(t,e,i){let s;return s=void 0!==t[i]?t[i]:void 0!==e?e[i]??void 0:void 0,s}const Wt=40,St=80,qt=50,Pt=90,zt=t=>{const e=t.rcw([1,2,3,4],[.25,.25,.15,.35]),i=1==e||2==e,s=t.rcw([2,3,4],[.35,.25,.4]),n=2===s?0:1,h=t.rcw([25,50,75],[n,1,1]),r=t.rc([[12,9],[12,14],[11,6],[15,void 0],[9,18],[9,9]]),a=t.rn(Wt,St),o=[[12,9],[12,14],[15,void 0],[9,9],[9,10],[11,6]],c=t.rb(.5),l=[c,0,c,c,0,0],u=t.rcw([...Array(o.length).keys()],[1,1,1.5,1,1.5,1]),_=o[u],p=l[u],f=t.rn(qt,Pt),g=t.rcw([3,5],[.5,.5]),m=t.rcw([1,2,3,4,5,6],[.05,0,0,.05,.8,.1]),d=1===m||4===m||6===m?0:1,v=t.rb(.5)?0:1,C=6===m?[15,void 0]:t.rcw([[10,void 0],[15,void 0]],[1,1]),w=15===C[0]?d:i?0:d,x=i?0:12,I=[[x,9],[x,8],[x,10],[8,10],[9,10],[9,9]],A=[v,v,v,v,v,1],y=t.rcw([...Array(I.length).keys()],[1,1,1,2,2,1]),M=I[y],b=A[y],T=!M.includes(8);return[[[r[0],r[1],s,0,0,h,1,!1,0],[_[0],_[1],s,1,0,a,p,!1,0],[C[0],C[1],e,2,m,f,0,!0,w],[M[0],M[1],e,2,5,f,0,T,b],[0,1,1,2,g,f,0,!0,1],[0,3,1,2,5,f,0,!0,1],[17,16,1,2,m,f,0,!0,d]],[5.5,3,5,7,1,.75,.75]]};var Xt="void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.0);\n}",Zt="uniform vec3 u_bg_c,u_c_1,u_c_2;uniform vec2 u_res;uniform float u_t,u_sc,u_g_thresh,u_g_amt,u_pxl_ratio,u_bg_g_amt;float k(float a){a=fract(a*.1031),a*=a+33.33,a*=a+a;return fract(a);}float d(vec3 a){a=fract(a*.1031),a+=dot(a,a.zyx+31.32);return fract((a.x+a.y)*a.z);}float e(float a){float b=floor(a),c=fract(a);return mix(k(b),k(b+1.),smoothstep(0.,1.,c));}mat2 o(in float a){float b=cos(a),c=sin(a);return mat2(b,-c,c,b);}void main(){vec2 c=gl_FragCoord.xy/u_res.xy;float a=mix(2.*u_pxl_ratio,8.*u_pxl_ratio,e(u_t*88.))*u_sc;vec2 b=c;b-=.5,b*=o(e(1000.+u_t*111.)*6.28),b+=.5;vec2 l=floor(b*(u_res/vec2(a,1)))/(u_res/vec2(a,1));b+=e(c.x*10.);vec2 m=floor(b*(u_res/vec2(1,a)))/(u_res/vec2(1,a));float n=d(vec3(c*1000.,u_t)),f=d(vec3(c*100.,u_t*1000.)),g=d(vec3(l*400.,u_t*1000.)),h=d(vec3(m*300.,u_t*1000.)),i=u_g_thresh;f=smoothstep(min(1.,i+2e-4),1.,f),g=smoothstep(min(1.,i+2e-4),1.,g),h=smoothstep(i,1.,h);vec3 j=mix(u_bg_c+n*u_bg_g_amt,u_c_1,(f+g)*u_g_amt);j=mix(j,u_c_2,h*u_g_amt),gl_FragColor=vec4(j,1);}",Ht="varying vec4 v_color;\n\nvoid main() {\n\tv_color = vec4(instanceColor, 1.);\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * instanceMatrix * vec4(position, 1.0);\n}",Ot="varying vec4 v_color;\n\nvoid main() { \n gl_FragColor = v_color;\n}";let Kt,Yt,jt,Nt,Lt,Ut,Qt;const Jt=new URLSearchParams(window.location.search).get("aspect_ratio"),Et=Jt||16/9,$t=800,te=$t/Et,ee=window.devicePixelRatio;let ie=window.innerWidth,se=ie/Et,ne=ie/$t,he=14;const re=new class{constructor(t){this.useA=!1;let e=function(t){let e=parseInt(t.substr(0,8),16),i=parseInt(t.substr(8,8),16),s=parseInt(t.substr(16,8),16),n=parseInt(t.substr(24,8),16);return function(){e|=0,i|=0,s|=0,n|=0;let t=(e+i|0)+n|0;return n=n+1|0,e=i^i>>>9,i=s+(s<<3)|0,s=s<<21|s>>>11,s=s+t|0,(t>>>0)/4294967296}};t?(this.prngA=new e(t.substr(2,32)),this.prngB=new e(t.substr(34,32))):(this.prngA=new e(tokenData.hash.substr(2,32)),this.prngB=new e(tokenData.hash.substr(34,32)));for(let i=0;i<1e6;i+=2)this.prngA(),this.prngB();this.prng=new e(tokenData.hash),this._nextG=null,this._hasNextG=!1}r(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}rn(t,e){return t+(e-t)*this.r()}ri(t,e){return Math.floor(this.rn(t,e+1))}rb(t){return this.r()<t}rc(t){return t[this.ri(0,t.length-1)]}ra(){return this.rn(0,2*Math.PI)}rndFromList(t){const e=this.r();let i=!1,s=1;const n=t.reduce(((t,e,i)=>i%2==1?t+e:t),0)*e;let h=0;for(;!i&&s<t.length;)n-t[s]<h&&(i=t[s-1]),h+=t[s],s+=2;return i}rcw(t,e){t.length,e.length,t.length;const i=[];for(let n=0;n<e.length;n+=1)i[n]=e[n]+(i[n-1]||0);const s=i[i.length-1]*this.r();for(let n=0;n<t.length;n+=1)if(i[n]>=s)return t[n]}rg(t=0,e=1){if(this._hasNextG){this._hasNextG=!1;var i=this._nextG;return this._nextG=null,t+e*i}var s=0,n=0,h=0;do{h=(s=2*this.r()-1)*s+(n=2*this.r()-1)*n}while(h>=1||0===h);var r=Math.sqrt(-2*Math.log(h)/h);return this._nextG=n*r,this._hasNextG=!0,t+e*(s*r)}shuffle(t){let e=t.slice();for(let i=e.length-1;i>0;i--){const t=Math.floor(this.r()*(i+1)),s=e[i];e[i]=e[t],e[t]=s}return e}}(tokenData.hash),ae=new i.Object3D,oe=new i.Color,ce=function(t=Math.random){const e=xt(t),i=new Float64Array(e).map((t=>Ct[t%12*2])),s=new Float64Array(e).map((t=>Ct[t%12*2+1]));return function(t,n){let h=0,r=0,a=0;const o=(t+n)*ft,c=vt(t+o),l=vt(n+o),u=(c+l)*gt,_=t-(c-u),p=n-(l-u);let f,g;_>p?(f=1,g=0):(f=0,g=1);const m=_-f+gt,d=p-g+gt,v=_-1+2*gt,C=p-1+2*gt,w=255&c,x=255&l;let I=.5-_*_-p*p;if(I>=0){const t=w+e[x];I*=I,h=I*I*(i[t]*_+s[t]*p)}let A=.5-m*m-d*d;if(A>=0){const t=w+f+e[x+g];A*=A,r=A*A*(i[t]*m+s[t]*d)}let y=.5-v*v-C*C;if(y>=0){const t=w+1+e[x+1];y*=y,a=y*y*(i[t]*v+s[t]*C)}return 70*(h+r+a)}}(re.prng),le=function(t=Math.random){const e=xt(t),i=new Float64Array(e).map((t=>wt[t%12*3])),s=new Float64Array(e).map((t=>wt[t%12*3+1])),n=new Float64Array(e).map((t=>wt[t%12*3+2]));return function(t,h,r){let a,o,c,l;const u=(t+h+r)*mt,_=vt(t+u),p=vt(h+u),f=vt(r+u),g=(_+p+f)*dt,m=t-(_-g),d=h-(p-g),v=r-(f-g);let C,w,x,I,A,y;m>=d?d>=v?(C=1,w=0,x=0,I=1,A=1,y=0):m>=v?(C=1,w=0,x=0,I=1,A=0,y=1):(C=0,w=0,x=1,I=1,A=0,y=1):d<v?(C=0,w=0,x=1,I=0,A=1,y=1):m<v?(C=0,w=1,x=0,I=0,A=1,y=1):(C=0,w=1,x=0,I=1,A=1,y=0);const M=m-C+dt,b=d-w+dt,T=v-x+dt,G=m-I+2*dt,F=d-A+2*dt,k=v-y+2*dt,V=m-1+3*dt,R=d-1+3*dt,D=v-1+3*dt,B=255&_,W=255&p,S=255&f;let q=.6-m*m-d*d-v*v;if(q<0)a=0;else{const t=B+e[W+e[S]];q*=q,a=q*q*(i[t]*m+s[t]*d+n[t]*v)}let P=.6-M*M-b*b-T*T;if(P<0)o=0;else{const t=B+C+e[W+w+e[S+x]];P*=P,o=P*P*(i[t]*M+s[t]*b+n[t]*T)}let z=.6-G*G-F*F-k*k;if(z<0)c=0;else{const t=B+I+e[W+A+e[S+y]];z*=z,c=z*z*(i[t]*G+s[t]*F+n[t]*k)}let X=.6-V*V-R*R-D*D;if(X<0)l=0;else{const t=B+1+e[W+1+e[S+1]];X*=X,l=X*X*(i[t]*V+s[t]*R+n[t]*D)}return 32*(a+o+c+l)}}(re.prng),ue=20,_e=10,pe=5e4,fe=10,ge=500,me=/HeadlessChrome/.test(window.navigator.userAgent);let de,ve,Ce=!0,we=!0,xe=!0,Ie=new class{constructor(){this.is_started=!1,this.is_playing=!1,this.is_initialized=!1,this.vol_smoothing_factor=.1,this.rms_last=0,this.filter_smoothing_factor=.7,this.filter_last=0}selectChord(t){return 2==t||11==t||17==t?[m.root,m.major_third,m.fourth,m.major_sixth]:1==t||3==t||7==t||15==t?[m.root,m.minor_third,m.fourth,m.second]:4==t||8==t||10==t||18==t?[m.root,m.second,m.fourth,m.minor_seventh]:[m.root,m.second,m.major_third,m.major_sixth]}selectVoicing(t){return[1,1,0,0,3,-1,3,4,4,-1,1,1,0,-1,-1,2,2,2,0][t]}init(t,e,i,s,n,h,r,a,o){if(this.is_initialized)return;this.tempo=n,this.audioCtx=t,0===o&&(o=e.r());const c=100,l=p[s];this.use_panning_lfo=a;const u=60/(8*n),_=60/(4*n),g=60/(2*n),m=60/(1.33*n),v=60/(n/2),x=60/(n/12),I=60/(n/16),A=i,y=this.selectChord(A),M=this.selectVoicing(A),F=Math.min(m,2.5);this.kp_1=new b(t,c,F),this.kp_1.setVolume(-19),0==r&&10==n&&this.kp_1.setVolume(-21),2==s&&this.kp_1.setVolume(-21),this.kp_filter_hp=C(t,"highpass",300,1,0);const k=2500+1e4*n/100;this.kp_filter_lp=C(t,"lowpass",k,1,0),this.tape_echo=new G(t,e,m,0,.05,.2),this.tape_echo.setOutputGain(-9),this.tape_echo_fb_lfo=new T(t,e,v,.3,.7),this.tape_echo_fb_lfo.connect(this.tape_echo.feedback.gain),this.agc=new AudioWorkletNode(t,"agc"),this.agc.parameters.get("rms_time").setValueAtTime(10,t.currentTime),this.agc.parameters.get("target_gain_dB").setValueAtTime(-15,t.currentTime),this.limiter=t.createDynamicsCompressor(),this.limiter.knee.value=10,this.limiter.threshold.value=-9,this.limiter.ratio.value=15,this.limiter.attack.value=.001,this.limiter.release.value=.01,this.output_flanger=new K(t,5e3,d(-8),1/I,8e3),this.bit_softener=new Y(t,e,.25,-30,1/v,-40),this.output_gain=w(t,0),this.kp_mod_gain=w(t,1),this.kp_toggle_gain=w(t,1),this.kp_ramp_in_gain=w(t,0),this.kp_volume_lfo=new O(t,1/x,d(0),d(r)),this.kp_volume_lfo.setShape("sine"),this.kp_volume_lfo.connect(this.kp_mod_gain.gain);this.kp_panner=t.createStereoPanner(),a&&(this.kp_panner_lfo=new T(t,e,1/v,-.75,.75),this.kp_panner_lfo.connect(this.kp_panner.pan));let V=new Array(I/g);for(let p=0;p<V.length;++p){let t=e.ri(1,3)*e.rc(y);V[p]=this.kp_1.pitchToDelay(t*c)}this.kp_pitch_lfo=new H(t,e,1/_,I,V,.5),this.kp_pitch_lfo.connect(this.kp_1.delay.delayTime);const R=n<40?1/u:1/_;this.filter_frequencies=new Array(64);const D=f[h];for(let p=0;p<this.filter_frequencies.length;++p)this.filter_frequencies[p]=c*e.ri(D[0],D[1])*e.rc(y);switch(this.filter_seq_max=Math.max(...this.filter_frequencies),this.filter_seq_min=Math.min(...this.filter_frequencies),this.filter_lfo=new H(t,e,R,I,this.filter_frequencies,.25),s){case 0:this.sound_source=new X(t,e,c,y,M,l,n,o),this.filter_lfo.connect(this.sound_source.getFreq());break;case 1:this.sound_source=new Z(t,e,c,y,M,l,n,o),this.filter_lfo.connect(this.sound_source.getFreq());break;case 2:this.sound_source=new z(t,e,c,y,M,l,n,o),this.filter_lfo.connect(this.sound_source.getFreq())}this.sound_source.connect(this.kp_1.input),this.sound_source.connect(this.output_flanger.input),this.kp_1.connect(this.kp_filter_hp),this.kp_filter_hp.connect(this.kp_filter_lp).connect(this.kp_mod_gain).connect(this.kp_toggle_gain).connect(this.kp_ramp_in_gain).connect(this.kp_panner).connect(this.output_flanger.input),this.output_flanger.connect(this.agc),this.output_flanger.connect(this.tape_echo.input),this.tape_echo.connect(this.agc),this.agc.connect(this.limiter),this.limiter.connect(this.bit_softener.input),this.bit_softener.connect(this.output_gain),this.output_gain.connect(t.destination),this.analyzer_output_rms=t.createAnalyser(),this.limiter.connect(this.analyzer_output_rms),this.analyzer_filter_fc=t.createAnalyser(),this.filter_lfo.output.connect(this.analyzer_filter_fc),this.is_initialized=!0}start(){this.sound_source.start(),this.tape_echo_fb_lfo.start(),this.filter_lfo.start(),this.kp_volume_lfo.start(),this.kp_pitch_lfo.start(),this.use_panning_lfo&&this.kp_panner_lfo.start(),this.tape_echo.start(),this.output_flanger.start(),this.bit_softener.start()}play(t){this.is_playing=!this.is_playing,"suspended"===this.audioCtx.state&&this.audioCtx.resume(),this.is_playing?(this.is_started||(this.start(),this.is_started=!0),y(this.audioCtx,this.output_gain.gain,d(0),this.audioCtx.currentTime+t),y(this.audioCtx,this.kp_ramp_in_gain.gain,d(0),this.audioCtx.currentTime+4*t)):y(this.audioCtx,this.output_gain.gain,1e-4,this.audioCtx.currentTime+3*t)}set_volume_smoothing(t){this.vol_smoothing_factor=t}set_filter_smoothing(t){this.filter_smoothing_factor=t}set_noise_volume(t){this.sound_source.setNoiseVolume([-52,-44][t])}set_kp_panning_value(t,e){this.use_panning_lfo||y(this.audioCtx,this.kp_panner.pan,t,this.audioCtx.currentTime+.9/e)}set_flanger_frequency(t,e){this.output_flanger.setFrequencyScaled(t,.9/e)}set_amp_mod_depth(t){this.sound_source.setAmplitudeModDepth(t)}toggle_filter_lfo(t){const e=t?1:0;this.filter_lfo.setOutputRange(e)}toggle_kp(t){const e=t?1:0;this.kp_toggle_gain.gain.setValueAtTime(e,this.audioCtx.currentTime)}toggle_echo(t){const e=t?-9:-120;this.tape_echo.setOutputGain(e)}toggle_flanger(t){const e=t?d(-8):0;this.output_flanger.setIntensity(e)}toggle_distortion(t){this.bit_softener.bypass(t)}toggle_amp_mod(t){this.sound_source.toggleAmpMod(t)}getThumbnailModeFreq(t){const e=60/(8*this.tempo),i=60/(4*this.tempo),s=this.tempo<40?e:i,n=Math.floor(t/s)%this.filter_frequencies.length;return this.filter_frequencies[n]}getVolumeRMS(t=!1,e=0){let i=0;if(t)i=.15*(1-this.getThumbnailModeFreq(e)/this.filter_seq_max);else{const t=this.analyzer_output_rms.frequencyBinCount,e=new Float32Array(t);this.analyzer_output_rms.getFloatTimeDomainData(e),i=function(t){let e=0;for(let s=0;s<t.length;++s)e+=t[s]*t[s];let i=e/t.length;return Math.sqrt(i)}(e)}return this.rms_last=this.rms_last+this.vol_smoothing_factor*(i-this.rms_last),R(this.rms_last*U)}getFilterCutoff(t=!1,e=0){let i=0;if(t)i=this.getThumbnailModeFreq(e);else{const t=this.analyzer_filter_fc.frequencyBinCount,e=new Float32Array(t);this.is_playing&&(this.analyzer_filter_fc.getFloatTimeDomainData(e),i=e[t-1])}return i=(i-this.filter_seq_min)/(this.filter_seq_max-this.filter_seq_min),i=Math.max(i,0),this.filter_last=this.filter_last+this.filter_smoothing_factor*(i-this.filter_last),this.filter_last}},Ae={},ye=0;const Me=.5,be=.8;let Te,Ge,Fe,ke,Ve,Re,De,Be,We,Se,qe,Pe,ze,Xe,Ze,He,Oe,Ke,Ye=new class{constructor(t){this.op_t=t?1:0,this.rev_v=t?1:0,this.rev_start=-1,this.away_idle_start_t=-1,this.total_t=0,this.idle=!0,this.in_rev=!1,this.prev_t=0,this.reveal_duration=1}set_end_init_t(t){this.end_init_t=t}set_speed(t){this.speed=t}start_rev(){this.in_rev=!0;let t=Date.now();this.rev_start=t,this.idle&&(this.away_idle_start_t=t,this.prev_t=0)}anim_running(){return!this.idle||this.in_rev}show_text(){return this.idle||this.in_rev}tick(t=!1){if(t)return void(this.total_t=this.speed*(Date.now()-this.end_init_t)/1e3);this.op_t=B(R((Date.now()-this.end_init_t)/1e3-.1)),this.in_rev&&this.tick_rev(!this.idle);let e=0;if(this.anim_running()){let t=(Date.now()-this.away_idle_start_t)/1e3;e=(t-this.prev_t)*this.speed,this.prev_t=t}this.total_t+=e}tick_rev(t){let e=(Date.now()-this.rev_start)/1e3,i=Math.max(0,Math.min(1,e/this.reveal_duration));t&&(i=1-i),this.rev_v=B(i),!this.idle&&this.rev_v<=0&&(this.idle=!0,this.in_rev=!1),this.idle&&this.rev_v>=1&&(this.in_rev=!1,this.idle=!1)}set_reveal_duration(t){this.reveal_duration=t}}(me),je=4.7,Ne=.999,Le=.08,Ue=0,Qe=30,Je=Qe,Ee=.5,$e=.125,ti=.5,ei=.25,ii=3,si=.19,ni=1,hi=1,ri=2.5,ai=1,oi=!1,ci=!1,li=1.3,ui=.92,_i=.1,pi=2.75;const fi=new(window.AudioContext||window.webkitAudioContext);function gi(){let t=window.innerWidth,e=window.innerHeight;ie=~~(e*Et>=t?t:e*Et),se=~~(t/Et>=e?e:t/Et),ne=ie/$t,Ut.material.uniforms.u_sc.value=ne/1.8,Ut.material.uniforms.u_res.value=new i.Vector2(ie*ee,se*ee),Ut.material.uniforms.u_pxl_ratio.value=ee,jt.setPixelRatio(ee),jt.setSize(ie,se)}function mi(){setTimeout((function(){requestAnimationFrame(mi)}),1e3/_e),Ie.is_playing?(Ae.output_volume=F(0,Ie.getVolumeRMS(),Ye.rev_v),Ae.filter_fc=F(.9,Ie.getFilterCutoff(),Ye.rev_v)):(Ae.output_volume=F(0,R(Ie.rms_last*U),Ye.rev_v),Ae.filter_fc=F(.9,Ie.filter_last,Ye.rev_v)),we||(Ae.filter_fc=1==Ue?.1:.2),Ye.tick(me);let t=Ye.total_t;me&&(Ae.filter_fc=Ie.getFilterCutoff(!0,t),Ae.output_volume=Ie.getVolumeRMS(!0,t));let e=Ge.sdf?ei:.25,i=Ge.sdf?ii:1;if(de=k(Ae.filter_fc,0,1,e,i),Te&&(e=Te.sdf?ei:.25,i=Te.sdf?ii:1,ve=k(Ae.filter_fc,0,1,e,i)),!De&&Xe.length>=2){let t=Xe.slice(),e=re.ri(0,t.length-1);Ut.material.uniforms.u_c_1.value=t[e].main(),t.splice(e,1),Ut.material.uniforms.u_c_2.value=re.rc(t).main()}Ge.tick_n(t,$t,te,$e,ti,ce,le),Te&&Te.tick_n(t,$t,te,$e,ti,ce,le,-1);let s=Dt(He[0],He[1],Ge,Te);if(Ie.is_initialized&&Ie.set_kp_panning_value(s,_e),Fe.update(t),Ie.is_initialized&&Ie.set_amp_mod_depth(Math.abs(Fe.amt_mult)),Oe=W(t,7,5),0==Ue){let t=Qe>30?Qe<60?-45:-70:50,e=10;Je=Math.min(85,Math.max(e,Qe+t*(1-Oe)*de))}else Je=Qe;Ie.is_initialized&&Ie.set_flanger_frequency(Oe,_e);let n=k(pi*Ae.output_volume,0,1,1,-1.25);Re=F(1.4*je,je+n,Ye.rev_v),he=F(10,14,Ye.rev_v),Ut.material.uniforms.u_g_thresh.value=F(.9993,Ne,Ye.rev_v),Ut.material.uniforms.u_t.value=(Date.now()-Ye.end_init_t)/1e3,Ut.material.uniforms.u_g_amt.value=F(Me,be,Ye.rev_v),function(t){if(Nt){let e=0,i=0,s=0,n=0,h=0,r=!1,a=0,o=0,c=F(.71,1,Ye.rev_v),l=F(-2,li,Ye.op_t);for(l=F(l,0,Ye.rev_v);i<=$t;){let u=Fe.shaped_offset(i,$t);s=u,a=di(n,h,i,s,t);let _=F(u-1,te+u,Ye.op_t);for(;s<=_&&!(e>=pe);){let u,_,p;if(oi&&(u=Bt(Ge,Te,"s_depth")),ci&&(_=Bt(Ge,Te,"c_depth")),De)re.r()<(r?Ee:.005)?(p=Pe,r=!0):(p=Xe[0],r=!1);else{let t=vi(a,Xe.length);p=Xe[t]}if(p=Ze?p.var(re):p.main(),oe.copy(p),ci&&void 0!==ze){let t=k(_,0,1,0,.25),e=_?Math.min(1,re.rg(_,t)):1;oe.lerp(ze,_?e*(1-Ae.filter_fc):0)}let f=(i-$t/2)*ne+ie/2,g=(s-te/2)*ne+se/2;f=k(f,0,ie,Kt.left+Re,Kt.right-Re),g=k(g,0,se,Kt.bottom+Re,Kt.top-Re),ae.position.set(f,g+l,-1);let m=1,d=k(1-u,0,1,.25,0),v=oi&&void 0!==u?Math.min(1,re.rg(k(1-u,0,1,Ke,1),d)):1;if(2!=Ue){let t;if(ai){t=V(.25,Ve,k(a,si,ii,Ve,.25)),t*=re.rn(.8,1.2)}else t=re.rn(.25,Ve);m=Je*t*c*v}let C=!1;if(0==Ue)ae.scale.set(m,m,1);else if(1==Ue)if(C=re.r()>F(.9995,1,1-Oe)&&o<fe,C){let t=.5,e=Math.max(0,re.rg(t,1)),i=Math.max(0,re.rg(t,1)),s=k(Je,Wt,St,12,8),n=re.rg(s,5);e<.25?i*=n:i<.25&&(e*=n),ae.scale.set(m*e,m*i,1)}else ae.scale.set(m,m,1);else if(2==Ue){let e=ke.parallel()?.95:.8,r=ke.parallel()?1:Oe;e=F(e/1.1,e,Ye.rev_v);let o,l=re.rg(F(Be,3,r),F(.1,e,r));if(0==ni){o=V(hi,ri,k(a,si,ii,ri,hi))}else 1==ni&&(o=re.rn(hi,ri));ae.scale.set(v*c*Je/l,o,1);let u=ke.rotation_at_time(n,h,i,s,t,a,$e,ii,le);ae.rotation.set(0,0,u)}ae.updateMatrix(),C?(Lt.setMatrixAt(o,ae.matrix),Lt.setColorAt(o,oe),o++):(Nt.setMatrixAt(e,ae.matrix),Nt.setColorAt(e,oe)),h++,a=di(n,h,i,s,t),s+=a*he,e++}n++,h=0,a=di(n,h,i,s,t),i+=a*he}Nt.instanceMatrix.needsUpdate=!0,Nt.instanceColor&&(Nt.instanceColor.needsUpdate=!0),Nt.count=e,1==Ue&&(Lt.instanceMatrix.needsUpdate=!0,Lt.instanceColor&&(Lt.instanceColor.needsUpdate=!0),Lt.count=o)}}(t),Ye.show_text()&&!me?(Qt.mesh.parent!==Yt&&Yt.add(Qt.mesh),Qt.render(re,ae,Se,qe,Ue,Ye,ge)):Qt.mesh.parent===Yt&&Yt.remove(Qt.mesh),jt.render(Yt,Kt)}function di(t,e,i,s,n){let h=Ge.incr_for(t,e,i,s,n,te,$t,$e,ii,ce,le,de);if(Te){let r=Te.incr_for(t,e,i,s,n,te,$t,$e,ii,ce,le,ve);h=Math.min(h,r)}return h=Math.max(si,Math.floor(8*h)/8),h}function vi(t,e){if(1==e)return 0;let i=t;i*=8;let s=i%e;return Math.floor(s)}function Ci(){"suspended"!==fi.state&&"interrupted"!==fi.state||fi.resume(),Ye.in_rev||(Ye.start_rev(),Ie.play(ye))}function wi(t){"Space"===t.code&&Ci(),"Digit1"===t.code&&(Ce=!Ce,Ie.toggle_amp_mod(Ce)),"Digit2"===t.code&&(we=!we,Ie.toggle_filter_lfo(we)),"Digit3"===t.code&&(xe=!xe,Ie.toggle_kp(xe),Ie.toggle_flanger(xe),Ie.toggle_echo(xe)),"Digit0"===t.code&&(we=!1,xe=!1,Ce=!1,Ie.toggle_amp_mod(Ce),Ie.toggle_filter_lfo(we),Ie.toggle_kp(xe),Ie.toggle_flanger(xe),Ie.toggle_echo(xe))}fi.suspend(),fi.audioWorklet.addModule("data:application/javascript;base64,Y2xhc3MgQUdDIGV4dGVuZHMgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yIHsKICAgIHN0YXRpYyBnZXQgcGFyYW1ldGVyRGVzY3JpcHRvcnMoKSB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgeyBuYW1lOiAncm1zX3RpbWUnLCBkZWZhdWx0VmFsdWU6IDIwLCBtaW5WYWx1ZTogMC4wMSwgbWF4VmFsdWU6IDMwIH0sCiAgICAgICAgICAgIHsgbmFtZTogJ3RhcmdldF9nYWluX2RCJywgZGVmYXVsdFZhbHVlOiAtMTIsIG1pblZhbHVlOiAtMzYsIG1heFZhbHVlOiAwIH0sCiAgICAgICAgXTsKICAgIH0KCiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMuc3FfbGFzdCA9IDA7CiAgICB9CgogICAgcHJvY2VzcyhpbnB1dHMsIG91dHB1dHMsIHBhcmFtZXRlcnMpIHsKICAgICAgICBjb25zdCBpbnB1dCA9IGlucHV0c1swXTsKICAgICAgICBjb25zdCBvdXRwdXQgPSBvdXRwdXRzWzBdOwoKICAgICAgICBjb25zdCBybXNfdGltZSA9IHBhcmFtZXRlcnMucm1zX3RpbWVbMF07CiAgICAgICAgY29uc3QgdGFyZ2V0X2dhaW5fbGluID0gTWF0aC5wb3coMTAsIHBhcmFtZXRlcnMudGFyZ2V0X2dhaW5fZEJbMF0gLyAyMCk7IC8vIHJlcGxpY2F0aW5nIGRiMm1hZygpIGJlY2F1c2UgY2FuJ3QgaW1wb3J0IGluIHdvcmtsZXQgZmlsZXMKICAgICAgICBjb25zdCB0YXUgPSAocm1zX3RpbWUgKiBzYW1wbGVSYXRlKSAvIE1hdGgubG9nKDAuMDAxKTsKICAgICAgICBjb25zdCBybXNfYWxwaGEgPSBNYXRoLmV4cCgxLjAgLyB0YXUpOwogICAgICAg