driftdetect-dashboard 0.9.37 → 0.9.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import{o as G,g as J}from"./main-mMUnnurh.js";var Q={exports:{}};(function(P){var k={chars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encLookup:[],Init:function(){for(var a=0;a<4096;a++)this.encLookup[a]=this.chars[a>>6]+this.chars[a&63]},Encode:function(a){for(var o=a.length,l="",s=0,v;o>2;)v=a[s]<<16|a[s+1]<<8|a[s+2],l+=this.encLookup[v>>12]+this.encLookup[v&4095],o-=3,s+=3;if(o>0){var u=(a[s]&252)>>2,R=(a[s]&3)<<4;if(o>1&&(R|=(a[++s]&240)>>4),l+=this.chars[u],l+=this.chars[R],o==2){var O=(a[s++]&15)<<2;O|=(a[s]&192)>>6,l+=this.chars[O]}o==1&&(l+="="),l+="="}return l}};k.Init();var g=function(a){this.data=[],this.wav=[],this.dataURI="",this.header={chunkId:[82,73,70,70],chunkSize:0,format:[87,65,86,69],subChunk1Id:[102,109,116,32],subChunk1Size:16,audioFormat:1,numChannels:1,sampleRate:8e3,byteRate:0,blockAlign:0,bitsPerSample:8,subChunk2Id:[100,97,116,97],subChunk2Size:0};function o(s){return[s&255,s>>8&255,s>>16&255,s>>24&255]}function l(s){return[s&255,s>>8&255]}this.Make=function(s){s instanceof Array&&(this.data=s),this.header.byteRate=this.header.sampleRate*this.header.numChannels*this.header.bitsPerSample>>3,this.header.blockAlign=this.header.numChannels*this.header.bitsPerSample>>3,this.header.subChunk2Size=this.data.length,this.header.chunkSize=36+this.header.subChunk2Size,this.wav=this.header.chunkId.concat(o(this.header.chunkSize),this.header.format,this.header.subChunk1Id,o(this.header.subChunk1Size),l(this.header.audioFormat),l(this.header.numChannels),o(this.header.sampleRate),o(this.header.byteRate),l(this.header.blockAlign),l(this.header.bitsPerSample),this.header.subChunk2Id,o(this.header.subChunk2Size),this.data),this.dataURI="data:audio/wav;base64,"+k.Encode(this.wav)},a instanceof Array&&this.Make(a)};(function(a,o){var l=a||(typeof globalThis<"u"?globalThis:typeof window<"u"?window:{});P.exports?P.exports=l.RIFFWAVE=o():l.RIFFWAVE=o()})(G,function(){return g}),typeof globalThis<"u"&&!globalThis.RIFFWAVE&&(globalThis.RIFFWAVE=g),typeof window<"u"&&!window.RIFFWAVE&&(window.RIFFWAVE=g)})(Q);var Y=Q.exports;const K=J(Y);var X={exports:{}};(function(P){var k=0,g=1,a=2,o=3,l=1,s=8,v;function u(){this.oldParams=!0,this.wave_type=k,this.p_env_attack=0,this.p_env_sustain=.3,this.p_env_punch=0,this.p_env_decay=.4,this.p_base_freq=.3,this.p_freq_limit=0,this.p_freq_ramp=0,this.p_freq_dramp=0,this.p_vib_strength=0,this.p_vib_speed=0,this.p_arp_mod=0,this.p_arp_speed=0,this.p_duty=0,this.p_duty_ramp=0,this.p_repeat_speed=0,this.p_pha_offset=0,this.p_pha_ramp=0,this.p_lpf_freq=1,this.p_lpf_ramp=0,this.p_lpf_resonance=0,this.p_hpf_freq=0,this.p_hpf_ramp=0,this.sound_vol=.5,this.sample_rate=44100,this.sample_size=8}function R(t){return t*t}function O(t){return t*t*t}function e(t){return Math.random()*t}function A(t,r){return Math.random()*(r-t)+t}function i(t){return Math.floor(Math.random()*(t+1))}function T(t,r,n){return t<<31|r<<23|n}function Z(t){if(isNaN(t))return T(0,255,4919);var r=t<0?1:0;if(t=Math.abs(t),t==0)return T(r,0,0);var n=Math.floor(Math.log(t)/Math.LN2);if(n>127||n<-126)return T(r,255,0);var p=t/Math.pow(2,n);return T(r,n+127,p*Math.pow(2,23)&8388607)}function $(t){var r=t&2147483648?-1:1,n=(t>>23&255)-127,p=t&8388607;if(n==128)return r*(p?Number.NaN:Number.POSITIVE_INFINITY);if(n==-127){if(p==0)return r*0;n=-126,p/=1<<22}else p=(p|1<<23)/(1<<23);return r*p*Math.pow(2,n)}var B="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",I=["wave_type","p_env_attack","p_env_sustain","p_env_punch","p_env_decay","p_base_freq","p_freq_limit","p_freq_ramp","p_freq_dramp","p_vib_strength","p_vib_speed","p_arp_mod","p_arp_speed","p_duty","p_duty_ramp","p_repeat_speed","p_pha_offset","p_pha_ramp","p_lpf_freq","p_lpf_ramp","p_lpf_resonance","p_hpf_freq","p_hpf_ramp"],tt=["p_freq_ramp","p_freq_dramp","p_arp_mod","p_duty_ramp","p_pha_offset","p_pha_ramp","p_lpf_ramp","p_hpf_ramp"];u.prototype.toB58=function(){var t=[];for(var r in I){var n=I[r];if(n=="wave_type")t.push(this[n]);else if(n.indexOf("p_")==0){var p=this[n];p=Z(p),t.push(255&p),t.push(255&p>>8),t.push(255&p>>16),t.push(255&p>>24)}}return function(_,m){var d=[],w="",h,c,q,y;for(h in _)for(c=0,q=_[h],w+=q||w.length^h?"":1;c in d||q;)y=d[c],y=y?y*256+q:q,q=y/58|0,d[c]=y%58,c++;for(;c--;)w+=m[d[c]];return w}(t,B)},u.prototype.fromB58=function(t){return this.fromJSON(v.b58decode(t)),this},u.prototype.fromJSON=function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);return this},u.prototype.pickupCoin=function(){return this.wave_type=g,this.p_base_freq=.4+e(.5),this.p_env_attack=0,this.p_env_sustain=e(.1),this.p_env_decay=.1+e(.4),this.p_env_punch=.3+e(.3),i(1)&&(this.p_arp_speed=.5+e(.2),this.p_arp_mod=.2+e(.4)),this},u.prototype.laserShoot=function(){return this.wave_type=i(2),this.wave_type===a&&i(1)&&(this.wave_type=i(1)),i(2)===0?(this.p_base_freq=.3+e(.6),this.p_freq_limit=e(.1),this.p_freq_ramp=-.35-e(.3)):(this.p_base_freq=.5+e(.5),this.p_freq_limit=this.p_base_freq-.2-e(.6),this.p_freq_limit<.2&&(this.p_freq_limit=.2),this.p_freq_ramp=-.15-e(.2)),this.wave_type===g&&(this.p_duty=1),i(1)?(this.p_duty=e(.5),this.p_duty_ramp=e(.2)):(this.p_duty=.4+e(.5),this.p_duty_ramp=-e(.7)),this.p_env_attack=0,this.p_env_sustain=.1+e(.2),this.p_env_decay=e(.4),i(1)&&(this.p_env_punch=e(.3)),i(2)===0&&(this.p_pha_offset=e(.2),this.p_pha_ramp=-e(.2)),this.p_hpf_freq=e(.3),this},u.prototype.explosion=function(){return this.wave_type=o,i(1)?(this.p_base_freq=R(.1+e(.4)),this.p_freq_ramp=-.1+e(.4)):(this.p_base_freq=R(.2+e(.7)),this.p_freq_ramp=-.2-e(.2)),i(4)===0&&(this.p_freq_ramp=0),i(2)===0&&(this.p_repeat_speed=.3+e(.5)),this.p_env_attack=0,this.p_env_sustain=.1+e(.3),this.p_env_decay=e(.5),i(1)&&(this.p_pha_offset=-.3+e(.9),this.p_pha_ramp=-e(.3)),this.p_env_punch=.2+e(.6),i(1)&&(this.p_vib_strength=e(.7),this.p_vib_speed=e(.6)),i(2)===0&&(this.p_arp_speed=.6+e(.3),this.p_arp_mod=.8-e(1.6)),this},u.prototype.powerUp=function(){return i(1)?(this.wave_type=g,this.p_duty=1):this.p_duty=e(.6),this.p_base_freq=.2+e(.3),i(1)?(this.p_freq_ramp=.1+e(.4),this.p_repeat_speed=.4+e(.4)):(this.p_freq_ramp=.05+e(.2),i(1)&&(this.p_vib_strength=e(.7),this.p_vib_speed=e(.6))),this.p_env_attack=0,this.p_env_sustain=e(.4),this.p_env_decay=.1+e(.4),this},u.prototype.hitHurt=function(){return this.wave_type=i(2),this.wave_type===a&&(this.wave_type=o),this.wave_type===k&&(this.p_duty=e(.6)),this.wave_type===g&&(this.p_duty=1),this.p_base_freq=.2+e(.6),this.p_freq_ramp=-.3-e(.4),this.p_env_attack=0,this.p_env_sustain=e(.1),this.p_env_decay=.1+e(.2),i(1)&&(this.p_hpf_freq=e(.3)),this},u.prototype.jump=function(){return this.wave_type=k,this.p_duty=e(.6),this.p_base_freq=.3+e(.3),this.p_freq_ramp=.1+e(.2),this.p_env_attack=0,this.p_env_sustain=.1+e(.3),this.p_env_decay=.1+e(.2),i(1)&&(this.p_hpf_freq=e(.3)),i(1)&&(this.p_lpf_freq=1-e(.6)),this},u.prototype.blipSelect=function(){return this.wave_type=i(1),this.wave_type===k?this.p_duty=e(.6):this.p_duty=1,this.p_base_freq=.2+e(.4),this.p_env_attack=0,this.p_env_sustain=.1+e(.1),this.p_env_decay=e(.2),this.p_hpf_freq=.1,this},u.prototype.synth=function(){return this.wave_type=i(1),this.p_base_freq=[.2723171360931539,.19255692561524382,.13615778746815113][i(2)],this.p_env_attack=i(4)>3?e(.5):0,this.p_env_sustain=e(1),this.p_env_punch=e(1),this.p_env_decay=e(.9)+.1,this.p_arp_mod=[0,0,0,0,-.3162,.7454,.7454][i(6)],this.p_arp_speed=e(.5)+.4,this.p_duty=e(1),this.p_duty_ramp=i(2)==2?e(1):0,this.p_lpf_freq=[1,.9*e(1)*e(1)+.1][i(1)],this.p_lpf_ramp=A(-1,1),this.p_lpf_resonance=e(1),this.p_hpf_freq=i(3)==3?e(1):0,this.p_hpf_ramp=i(3)==3?e(1):0,this},u.prototype.tone=function(){return this.wave_type=a,this.p_base_freq=.35173364,this.p_env_attack=0,this.p_env_sustain=.6641,this.p_env_decay=0,this.p_env_punch=0,this},u.prototype.click=function(){const t=["explosion","hitHurt"][i(1)];return this[t](),i(1)&&(this.p_freq_ramp=-.5+e(1)),i(1)&&(this.p_env_sustain=(e(.4)+.2)*this.p_env_sustain,this.p_env_decay=(e(.4)+.2)*this.p_env_decay),i(3)==0&&(this.p_env_attack=e(.3)),this.p_base_freq=1-e(.25),this.p_hpf_freq=1-e(.1),this},u.prototype.random=function(){return this.wave_type=i(3),i(1)?this.p_base_freq=O(e(2)-1)+.5:this.p_base_freq=R(e(1)),this.p_freq_limit=0,this.p_freq_ramp=Math.pow(e(2)-1,5),this.p_base_freq>.7&&this.p_freq_ramp>.2&&(this.p_freq_ramp=-this.p_freq_ramp),this.p_base_freq<.2&&this.p_freq_ramp<-.05&&(this.p_freq_ramp=-this.p_freq_ramp),this.p_freq_dramp=Math.pow(e(2)-1,3),this.p_duty=e(2)-1,this.p_duty_ramp=Math.pow(e(2)-1,3),this.p_vib_strength=Math.pow(e(2)-1,3),this.p_vib_speed=A(-1,1),this.p_env_attack=O(A(-1,1)),this.p_env_sustain=R(A(-1,1)),this.p_env_decay=A(-1,1),this.p_env_punch=Math.pow(e(.8),2),this.p_env_attack+this.p_env_sustain+this.p_env_decay<.2&&(this.p_env_sustain+=.2+e(.3),this.p_env_decay+=.2+e(.3)),this.p_lpf_resonance=A(-1,1),this.p_lpf_freq=1-Math.pow(e(1),3),this.p_lpf_ramp=Math.pow(e(2)-1,3),this.p_lpf_freq<.1&&this.p_lpf_ramp<-.05&&(this.p_lpf_ramp=-this.p_lpf_ramp),this.p_hpf_freq=Math.pow(e(1),5),this.p_hpf_ramp=Math.pow(e(2)-1,5),this.p_pha_offset=Math.pow(e(2)-1,3),this.p_pha_ramp=Math.pow(e(2)-1,3),this.p_repeat_speed=e(2)-1,this.p_arp_speed=e(2)-1,this.p_arp_mod=e(2)-1,this},u.prototype.mutate=function(){return i(1)&&(this.p_base_freq+=e(.1)-.05),i(1)&&(this.p_freq_ramp+=e(.1)-.05),i(1)&&(this.p_freq_dramp+=e(.1)-.05),i(1)&&(this.p_duty+=e(.1)-.05),i(1)&&(this.p_duty_ramp+=e(.1)-.05),i(1)&&(this.p_vib_strength+=e(.1)-.05),i(1)&&(this.p_vib_speed+=e(.1)-.05),i(1)&&(this.p_vib_delay+=e(.1)-.05),i(1)&&(this.p_env_attack+=e(.1)-.05),i(1)&&(this.p_env_sustain+=e(.1)-.05),i(1)&&(this.p_env_decay+=e(.1)-.05),i(1)&&(this.p_env_punch+=e(.1)-.05),i(1)&&(this.p_lpf_resonance+=e(.1)-.05),i(1)&&(this.p_lpf_freq+=e(.1)-.05),i(1)&&(this.p_lpf_ramp+=e(.1)-.05),i(1)&&(this.p_hpf_freq+=e(.1)-.05),i(1)&&(this.p_hpf_ramp+=e(.1)-.05),i(1)&&(this.p_pha_offset+=e(.1)-.05),i(1)&&(this.p_pha_ramp+=e(.1)-.05),i(1)&&(this.p_repeat_speed+=e(.1)-.05),i(1)&&(this.p_arp_speed+=e(.1)-.05),i(1)&&(this.p_arp_mod+=e(.1)-.05),this},v={},v.toBuffer=function(t){return new S(t).getRawBuffer().buffer},v.toWebAudio=function(t,r){var n=new S(t),p=n.getRawBuffer().normalized;if(r){for(var _=r.createBuffer(1,p.length,n.sampleRate),m=_.getChannelData(0),d=0;d<p.length;d++)m[d]=p[d];var w=r.createBufferSource();return w.buffer=_,w}},v.toWave=function(t){return new S(t).generate()},v.toAudio=function(t){return v.toWave(t).getAudio()},v.play=function(t){return v.toAudio(t).play()},v.b58decode=function(t){var r=function(w,h){var c=[],q=[],y,M,F,x;for(y in w){if(M=0,F=h.indexOf(w[y]),F<0)return;for(F||q.length^y||q.push(0);M in c||F;)x=c[M],x=x?x*58+F:F,F=x>>8,c[M]=x%256,M++}for(;M--;)q.push(c[M]);return new Uint8Array(q)}(t,B),n={};for(var p in I){var _=I[p],m=(p-1)*4+1;if(_=="wave_type")n[_]=r[0];else{var d=r[m]|r[m+1]<<8|r[m+2]<<16|r[m+3]<<24;n[_]=$(d)}}return n},v.b58encode=function(t){var r=new u;return r.fromJSON(t),r.toB58()},v.generate=function(t,r){const n=new u,p=r||{};return n.sound_vol=p.sound_vol||.25,n.sample_rate=p.sample_rate||44100,n.sample_size=p.sample_size||8,n[t]()};function S(t){if(typeof t=="string"){var r=new u;t.indexOf("#")==0&&(t=t.slice(1)),t=r.fromB58(t)}this.init(t)}S.prototype.init=function(t){this.parameters=t,this.initForRepeat(),this.waveShape=parseInt(t.wave_type),this.fltw=Math.pow(t.p_lpf_freq,3)*.1,this.enableLowPassFilter=t.p_lpf_freq!=1,this.fltw_d=1+t.p_lpf_ramp*1e-4,this.fltdmp=5/(1+Math.pow(t.p_lpf_resonance,2)*20)*(.01+this.fltw),this.fltdmp>.8&&(this.fltdmp=.8),this.flthp=Math.pow(t.p_hpf_freq,2)*.1,this.flthp_d=1+t.p_hpf_ramp*3e-4,this.vibratoSpeed=Math.pow(t.p_vib_speed,2)*.01,this.vibratoAmplitude=t.p_vib_strength*.5,this.envelopeLength=[Math.floor(t.p_env_attack*t.p_env_attack*1e5),Math.floor(t.p_env_sustain*t.p_env_sustain*1e5),Math.floor(t.p_env_decay*t.p_env_decay*1e5)],this.envelopePunch=t.p_env_punch,this.flangerOffset=Math.pow(t.p_pha_offset,2)*1020,t.p_pha_offset<0&&(this.flangerOffset=-this.flangerOffset),this.flangerOffsetSlide=Math.pow(t.p_pha_ramp,2)*1,t.p_pha_ramp<0&&(this.flangerOffsetSlide=-this.flangerOffsetSlide),this.repeatTime=Math.floor(Math.pow(1-t.p_repeat_speed,2)*2e4+32),t.p_repeat_speed===0&&(this.repeatTime=0),this.gain=Math.exp(t.sound_vol)-1,this.sampleRate=t.sample_rate,this.bitsPerChannel=t.sample_size},S.prototype.initForRepeat=function(){var t=this.parameters;this.elapsedSinceRepeat=0,this.period=100/(t.p_base_freq*t.p_base_freq+.001),this.periodMax=100/(t.p_freq_limit*t.p_freq_limit+.001),this.enableFrequencyCutoff=t.p_freq_limit>0,this.periodMult=1-Math.pow(t.p_freq_ramp,3)*.01,this.periodMultSlide=-Math.pow(t.p_freq_dramp,3)*1e-6,this.dutyCycle=.5-t.p_duty*.5,this.dutyCycleSlide=-t.p_duty_ramp*5e-5,t.p_arp_mod>=0?this.arpeggioMultiplier=1-Math.pow(t.p_arp_mod,2)*.9:this.arpeggioMultiplier=1+Math.pow(t.p_arp_mod,2)*10,this.arpeggioTime=Math.floor(Math.pow(1-t.p_arp_speed,2)*2e4+32),t.p_arp_speed===1&&(this.arpeggioTime=0)},S.prototype.getRawBuffer=function(){for(var t=0,r=0,n=0,p=Array(32),_=0;_<32;++_)p[_]=Math.random()*2-1;for(var m=0,d=0,w=0,h=0,c=0,q=Array(1024),_=0;_<1024;++_)q[_]=0;for(var y=0,M=[],F=[],x=0,L=0,H=Math.floor(44100/this.sampleRate),j=0;this.repeatTime!=0&&++this.elapsedSinceRepeat>=this.repeatTime&&this.initForRepeat(),this.arpeggioTime!=0&&j>=this.arpeggioTime&&(this.arpeggioTime=0,this.period*=this.arpeggioMultiplier),this.periodMult+=this.periodMultSlide,this.period*=this.periodMult,!(this.period>this.periodMax&&(this.period=this.periodMax,this.enableFrequencyCutoff));++j){var U=this.period;this.vibratoAmplitude>0&&(w+=this.vibratoSpeed,U=this.period*(1+Math.sin(w)*this.vibratoAmplitude));var C=Math.floor(U);if(C<s&&(C=s),this.dutyCycle+=this.dutyCycleSlide,this.dutyCycle<0&&(this.dutyCycle=0),this.dutyCycle>.5&&(this.dutyCycle=.5),++d>this.envelopeLength[m]&&(d=0,++m>2))break;var N,W=d/this.envelopeLength[m];m===0?N=W:m===1?N=1+(1-W)*2*this.envelopePunch:N=1-W,this.flangerOffset+=this.flangerOffsetSlide;var V=Math.abs(Math.floor(this.flangerOffset));V>1023&&(V=1023),this.flthp_d!=0&&(this.flthp*=this.flthp_d,this.flthp<1e-5&&(this.flthp=1e-5),this.flthp>.1&&(this.flthp=.1));for(var f=0,D=0;D<s;++D){var b=0;if(h++,h>=C&&(h%=C,this.waveShape===o))for(var _=0;_<32;++_)p[_]=Math.random()*2-1;var E=h/C;if(this.waveShape===k)E<this.dutyCycle?b=.5:b=-.5;else if(this.waveShape===g)E<this.dutyCycle?b=-1+2*E/this.dutyCycle:b=1-2*(E-this.dutyCycle)/(1-this.dutyCycle);else if(this.waveShape===a)b=Math.sin(E*2*Math.PI);else if(this.waveShape===o)b=p[Math.floor(h*32/C)];else throw"ERROR: Bad wave type: "+this.waveShape;var _t=t;this.fltw*=this.fltw_d,this.fltw<0&&(this.fltw=0),this.fltw>.1&&(this.fltw=.1),this.enableLowPassFilter?(r+=(b-t)*this.fltw,r-=r*this.fltdmp):(t=b,r=0),t+=r,n+=t-_t,n-=n*this.flthp,b=n,q[c&1023]=b,b+=q[c-V+1024&1023],c=c+1&1023,f+=b*N}if(x+=f,++L>=H)L=0,f=x/H,x=0;else continue;f=f/s*l,f*=this.gain,F.push(f),this.bitsPerChannel===8?(f=Math.floor((f+1)*128),f>255?(f=255,++y):f<0&&(f=0,++y),M.push(f)):(f=Math.floor(f*32768),f>=32768?(f=32767,++y):f<-32768&&(f=-32768,++y),M.push(f&255),M.push(f>>8&255))}return{buffer:M,normalized:F,clipped:y}},S.prototype.generate=function(){var t=this.getRawBuffer(),r=new RIFFWAVE;return r.header.sampleRate=this.sampleRate,r.header.bitsPerSample=this.bitsPerChannel,r.Make(t.buffer),r.clipping=t.clipped,r.buffer=t.normalized,r.getAudio=et(r),r};var z=null,et=function(t){return function(){var r=null;if(z||("AudioContext"in window?z=new AudioContext:"webkitAudioContext"in window&&(z=new webkitAudioContext)),r=z,r){for(var n=r.createBuffer(1,t.buffer.length,t.header.sampleRate),p=n.getChannelData(0),_=0;_<t.buffer.length;_++)p[_]=t.buffer[_];var m=1,d={channels:[],setVolume:function(h){return m=h,d},play:function(){var h=r.createBufferSource();h.buffer=n;var c=r.createGain();return c.gain.value=m,c.connect(r.destination),h.connect(c),h.start?h.start():h.noteOn&&h.noteOn(0),this.channels.push(h),h}};return d}else{var w=new Audio;return w.src=t.dataURI,w}}},rt={p_env_attack:function(t){return t*t*1e5},p_env_sustain:function(t){return t*t*1e5},p_env_punch:function(t){return t},p_env_decay:function(t){return t*t*1e5},p_base_freq:function(t){return 8*44100*(t*t+.001)/100},p_freq_limit:function(t){return 8*44100*(t*t+.001)/100},p_freq_ramp:function(t){return 1-Math.pow(t,3)*.01},p_freq_dramp:function(t){return-Math.pow(t,3)*1e-6},p_vib_speed:function(t){return Math.pow(t,2)*.01},p_vib_strength:function(t){return t*.5},p_arp_mod:function(t){return t>=0?1-Math.pow(t,2)*.9:1+Math.pow(t,2)*10},p_arp_speed:function(t){return t===1?0:Math.floor(Math.pow(1-t,2)*2e4+32)},p_duty:function(t){return .5-t*.5},p_duty_ramp:function(t){return-t*5e-5},p_repeat_speed:function(t){return t===0?0:Math.floor(Math.pow(1-t,2)*2e4)+32},p_pha_offset:function(t){return(t<0?-1:1)*Math.pow(t,2)*1020},p_pha_ramp:function(t){return(t<0?-1:1)*Math.pow(t,2)},p_lpf_freq:function(t){return Math.pow(t,3)*.1},p_lpf_ramp:function(t){return 1+t*1e-4},p_lpf_resonance:function(t){return 5/(1+Math.pow(t,2)*20)},p_hpf_freq:function(t){return Math.pow(t,2)*.1},p_hpf_ramp:function(t){return 1+t*3e-4},sound_vol:function(t){return Math.exp(t)-1}},it={p_env_attack:function(t){return Math.sqrt(t/1e5)},p_env_sustain:function(t){return Math.sqrt(t/1e5)},p_env_punch:function(t){return t},p_env_decay:function(t){return Math.sqrt(t/1e5)},p_base_freq:function(t){return Math.sqrt(t*100/8/44100-.001)},p_freq_limit:function(t){return Math.sqrt(t*100/8/44100-.001)},p_freq_ramp:function(t){return Math.cbrt((1-t)/.01)},p_freq_dramp:function(t){return Math.cbrt(t/-1e-6)},p_vib_speed:function(t){return Math.sqrt(t/.01)},p_vib_strength:function(t){return t/.5},p_arp_mod:function(t){return t<1?Math.sqrt((1-t)/.9):-Math.sqrt((t-1)/10)},p_arp_speed:function(t){return t===0?1:1-Math.sqrt((t-(t<100?30:32))/2e4)},p_duty:function(t){return(t-.5)/-.5},p_duty_ramp:function(t){return t/-5e-5},p_repeat_speed:function(t){return t===0?0:-(Math.sqrt((t-32)/2e4)-1)},p_pha_offset:function(t){return(t<0?-1:1)*Math.sqrt(Math.abs(t)/1020)},p_pha_ramp:function(t){return(t<0?-1:1)*Math.sqrt(Math.abs(t))},p_lpf_freq:function(t){return Math.cbrt(t/.1)},p_lpf_ramp:function(t){return(t-1)/1e-4},p_lpf_resonance:function(t){return Math.sqrt((1/(t/5)-1)/20)},p_hpf_freq:function(t){return Math.sqrt(t/.1)},p_hpf_ramp:function(t){return(t-1)/3e-4},sound_vol:function(t){return Math.log(t+1)}},nt={p_env_attack:function(t){return t/44100},p_env_sustain:function(t){return t/44100},p_env_punch:function(t){return t*100},p_env_decay:function(t){return t/44100},p_base_freq:function(t){return t},p_freq_limit:function(t){return t},p_freq_ramp:function(t){return 44100*Math.log(t)/Math.log(.5)},p_freq_dramp:function(t){return t*44100/Math.pow(2,-44101/44100)},p_vib_speed:function(t){return 441e3/64*t},p_vib_strength:function(t){return t*100},p_arp_mod:function(t){return 1/t},p_arp_speed:function(t){return t/44100},p_duty:function(t){return 100*t},p_duty_ramp:function(t){return 8*44100*t},p_repeat_speed:function(t){return t===0?0:44100/t},p_pha_offset:function(t){return 1e3*t/44100},p_pha_ramp:function(t){return 1e3*t},p_lpf_freq:function(t){return t===.1?0:8*44100*t/(1-t)},p_lpf_ramp:function(t){return Math.pow(t,44100)},p_lpf_resonance:function(t){return 100*(1-t*.11)},p_hpf_freq:function(t){return 8*44100*t/(1-t)},p_hpf_ramp:function(t){return Math.pow(t,44100)},sound_vol:function(t){return 10*Math.log(t*t)/Math.log(10)}},pt={p_env_attack:function(t){return t*44100},p_env_sustain:function(t){return t*44100},p_env_punch:function(t){return t/100},p_env_decay:function(t){return t*44100},p_base_freq:function(t){return t},p_freq_limit:function(t){return t},p_freq_ramp:function(t){return Math.exp(Math.log(.5)*t/44100)},p_freq_dramp:function(t){return t*Math.pow(2,-44101/44100)/44100},p_vib_speed:function(t){return 64/441e3*t},p_vib_strength:function(t){return t/100},p_arp_mod:function(t){return 1/t},p_arp_speed:function(t){return t*44100},p_duty:function(t){return t/100},p_duty_ramp:function(t){return t/(8*44100)},p_repeat_speed:function(t){return t<=0?0:t>1378?32:44100/t},p_pha_offset:function(t){return t/1e3*44100},p_pha_ramp:function(t){return t/1e3},p_lpf_freq:function(t){return t/(t+8*44100)},p_lpf_ramp:function(t){return Math.pow(t,1/44100)},p_lpf_resonance:function(t){return(1-t/100)/.11},p_hpf_freq:function(t){return t/(t+8*44100)},p_hpf_ramp:function(t){return Math.pow(t,1/44100)},sound_vol:function(t){return Math.sqrt(Math.pow(10,t/10))}},at={p_env_attack:function(t){return(t/44100).toPrecision(4)+" sec"},p_env_sustain:function(t){return(t/44100).toPrecision(4)+" sec"},p_env_punch:function(t){return"+"+(t*100).toPrecision(4)+"%"},p_env_decay:function(t){return(t/44100).toPrecision(4)+" sec"},p_base_freq:function(t){return t.toPrecision(4)+"Hz"},p_freq_limit:function(t){return t.toPrecision(4)+"Hz"},p_freq_ramp:function(t){return(44100*Math.log(t)/Math.log(.5)).toPrecision(4)+" 8va/sec"},p_freq_dramp:function(t){return(t*44100/Math.pow(2,-44101/44100)).toExponential(3)+" 8va/s^2"},p_vib_speed:function(t){return t===0?"OFF":(441e3/64*t).toPrecision(4)+" Hz"},p_vib_strength:function(t){return t===0?"OFF":"&plusmn; "+(t*100).toPrecision(4)+"%"},p_arp_mod:function(t){return t===1?"OFF":"x "+(1/t).toPrecision(4)},p_arp_speed:function(t){return t===0?"OFF":(t/44100).toPrecision(4)+" sec"},p_duty:function(t){return(100*t).toPrecision(4)+"%"},p_duty_ramp:function(t){return(8*44100*t).toPrecision(4)+"%/sec"},p_repeat_speed:function(t){return t===0?"OFF":(44100/t).toPrecision(4)+" Hz"},p_pha_offset:function(t){return t===0?"OFF":(1e3*t/44100).toPrecision(4)+" msec"},p_pha_ramp:function(t){return t===0?"OFF":(1e3*t).toPrecision(4)+" msec/sec"},p_lpf_freq:function(t){return t===.1?"OFF":Math.round(8*44100*t/(1-t))+" Hz"},p_lpf_ramp:function(t){return t===1?"OFF":Math.pow(t,44100).toPrecision(4)+" ^sec"},p_lpf_resonance:function(t){return(100*(1-t*.11)).toPrecision(4)+"%"},p_hpf_freq:function(t){return t===0?"OFF":Math.round(8*44100*t/(1-t))+" Hz"},p_hpf_ramp:function(t){return t===1?"OFF":Math.pow(t,44100).toPrecision(4)+" ^sec"},sound_vol:function(t){t=10*Math.log(t*t)/Math.log(10);var r=t>=0?"+":"";return r+t.toPrecision(4)+" dB"}};(function(t,r){var n=t||(typeof globalThis<"u"?globalThis:typeof window<"u"?window:{});if(P.exports){var p=Y;P.exports=n.jsfxr=r(p)}else n.jsfxr=r(n.RIFFWAVE)})(G,function(t){return{sfxr:v,convert:{sliders:rt,domain:nt,sliders_inverse:it,domain_inverse:pt,units:at},parameters:{order:I,signed:tt},Params:u,SoundEffect:S,waveforms:{SQUARE:k,SAWTOOTH:g,SINE:a,NOISE:o}}})})(X);var st=X.exports;const ht=J(st);typeof globalThis<"u"&&(globalThis.RIFFWAVE=K);typeof window<"u"&&(window.RIFFWAVE=K);const ot=ht.sfxr;export{ht as default,ht as jsfxr,ot as sfxr};
2
+ //# sourceMappingURL=sfxr-D2N9dVOi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sfxr-D2N9dVOi.js","sources":["../../../../../node_modules/.pnpm/jsfxr@1.4.0/node_modules/jsfxr/riffwave.js","../../../../../node_modules/.pnpm/jsfxr@1.4.0/node_modules/jsfxr/sfxr.js","../../../../../node_modules/.pnpm/jsfxr@1.4.0/node_modules/jsfxr/sfxr.mjs"],"sourcesContent":["/*\n * RIFFWAVE.js v0.03 - Audio encoder for HTML5 <audio> elements.\n * Copyleft 2011 by Pedro Ladaria <pedro.ladaria at Gmail dot com>\n *\n * Public Domain\n *\n * Changelog:\n *\n * 0.01 - First release\n * 0.02 - New faster base64 encoding\n * 0.03 - Support for 16bit samples\n *\n * Notes:\n *\n * 8 bit data is unsigned: 0..255\n * 16 bit data is signed: -32,768..32,767\n *\n */\n\nvar FastBase64 = {\n\n chars: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",\n encLookup: [],\n\n Init: function() {\n for (var i=0; i<4096; i++) {\n this.encLookup[i] = this.chars[i >> 6] + this.chars[i & 0x3F];\n }\n },\n\n Encode: function(src) {\n var len = src.length;\n var dst = '';\n var i = 0;\n var n;\n while (len > 2) {\n n = (src[i] << 16) | (src[i+1]<<8) | src[i+2];\n dst+= this.encLookup[n >> 12] + this.encLookup[n & 0xFFF];\n len-= 3;\n i+= 3;\n }\n if (len > 0) {\n var n1= (src[i] & 0xFC) >> 2;\n var n2= (src[i] & 0x03) << 4;\n if (len > 1) n2 |= (src[++i] & 0xF0) >> 4;\n dst+= this.chars[n1];\n dst+= this.chars[n2];\n if (len == 2) {\n var n3= (src[i++] & 0x0F) << 2;\n n3 |= (src[i] & 0xC0) >> 6;\n dst+= this.chars[n3];\n }\n if (len == 1) dst+= '=';\n dst+= '=';\n }\n return dst;\n } // end Encode\n\n}\n\nFastBase64.Init();\n\nvar RIFFWAVE = function(data) {\n\n this.data = []; // Array containing audio samples\n this.wav = []; // Array containing the generated wave file\n this.dataURI = ''; // http://en.wikipedia.org/wiki/Data_URI_scheme\n\n this.header = { // OFFS SIZE NOTES\n chunkId : [0x52,0x49,0x46,0x46], // 0 4 \"RIFF\" = 0x52494646\n chunkSize : 0, // 4 4 36+SubChunk2Size = 4+(8+SubChunk1Size)+(8+SubChunk2Size)\n format : [0x57,0x41,0x56,0x45], // 8 4 \"WAVE\" = 0x57415645\n subChunk1Id : [0x66,0x6d,0x74,0x20], // 12 4 \"fmt \" = 0x666d7420\n subChunk1Size: 16, // 16 4 16 for PCM\n audioFormat : 1, // 20 2 PCM = 1\n numChannels : 1, // 22 2 Mono = 1, Stereo = 2...\n sampleRate : 8000, // 24 4 8000, 44100...\n byteRate : 0, // 28 4 SampleRate*NumChannels*BitsPerSample/8\n blockAlign : 0, // 32 2 NumChannels*BitsPerSample/8\n bitsPerSample: 8, // 34 2 8 bits = 8, 16 bits = 16\n subChunk2Id : [0x64,0x61,0x74,0x61], // 36 4 \"data\" = 0x64617461\n subChunk2Size: 0 // 40 4 data size = NumSamples*NumChannels*BitsPerSample/8\n };\n\n function u32ToArray(i) {\n return [i&0xFF, (i>>8)&0xFF, (i>>16)&0xFF, (i>>24)&0xFF];\n }\n\n function u16ToArray(i) {\n return [i&0xFF, (i>>8)&0xFF];\n }\n\n function split16bitArray(data) {\n var r = [];\n var j = 0;\n var len = data.length;\n for (var i=0; i<len; i++) {\n r[j++] = data[i] & 0xFF;\n r[j++] = (data[i]>>8) & 0xFF;\n }\n return r;\n }\n\n this.Make = function(data) {\n if (data instanceof Array) this.data = data;\n this.header.byteRate = (this.header.sampleRate * this.header.numChannels * this.header.bitsPerSample) >> 3;\n this.header.blockAlign = (this.header.numChannels * this.header.bitsPerSample) >> 3;\n this.header.subChunk2Size = this.data.length;\n this.header.chunkSize = 36 + this.header.subChunk2Size;\n\n this.wav = this.header.chunkId.concat(\n u32ToArray(this.header.chunkSize),\n this.header.format,\n this.header.subChunk1Id,\n u32ToArray(this.header.subChunk1Size),\n u16ToArray(this.header.audioFormat),\n u16ToArray(this.header.numChannels),\n u32ToArray(this.header.sampleRate),\n u32ToArray(this.header.byteRate),\n u16ToArray(this.header.blockAlign),\n u16ToArray(this.header.bitsPerSample),\n this.header.subChunk2Id,\n u32ToArray(this.header.subChunk2Size),\n this.data\n );\n this.dataURI = 'data:audio/wav;base64,'+FastBase64.Encode(this.wav);\n };\n\n if (data instanceof Array) this.Make(data);\n\n}; // end RIFFWAVE\n\n(function (root, factory) {\n // Handle ESM where 'this' is undefined\n var globalRoot = root || (typeof globalThis !== 'undefined' ? globalThis : (typeof window !== 'undefined' ? window : {}));\n if(typeof define === \"function\" && define.amd) {\n // Now we're wrapping the factory and assigning the return\n // value to the root (window) and returning it as well to\n // the AMD loader.\n define([], function(){\n return (globalRoot.RIFFWAVE = factory());\n });\n } else if(typeof module === \"object\" && module.exports) {\n // I've not encountered a need for this yet, since I haven't\n // run into a scenario where plain modules depend on CommonJS\n // *and* I happen to be loading in a CJS browser environment\n // but I'm including it for the sake of being thorough\n module.exports = (globalRoot.RIFFWAVE = factory());\n } else {\n globalRoot.RIFFWAVE = factory();\n }\n}(this, function() {\n // module code here....\n return RIFFWAVE;\n}));\n\n// Ensure RIFFWAVE is available globally for ESM bundlers (Vite/esbuild)\n// The UMD wrapper may set it on 'exports' instead of globalThis\nif (typeof globalThis !== 'undefined' && !globalThis.RIFFWAVE) {\n globalThis.RIFFWAVE = RIFFWAVE;\n}\nif (typeof window !== 'undefined' && !window.RIFFWAVE) {\n window.RIFFWAVE = RIFFWAVE;\n}\n","// Wave shapes\nvar SQUARE = 0;\nvar SAWTOOTH = 1;\nvar SINE = 2;\nvar NOISE = 3;\n\n// Playback volume\nvar masterVolume = 1;\n\nvar OVERSAMPLING = 8;\n\n// Declare sfxr in module scope for ESM strict mode compatibility\nvar sfxr;\n\n/*** Core data structure ***/\n\n// Sound generation parameters are on [0,1] unless noted SIGNED & thus\n// on [-1,1]\nfunction Params() {\n this.oldParams = true; // Note what structure this is\n\n // Wave shape\n this.wave_type = SQUARE;\n\n // Envelope\n this.p_env_attack = 0; // Attack time\n this.p_env_sustain = 0.3; // Sustain time\n this.p_env_punch = 0; // Sustain punch\n this.p_env_decay = 0.4; // Decay time\n\n // Tone\n this.p_base_freq = 0.3; // Start frequency\n this.p_freq_limit = 0; // Min frequency cutoff\n this.p_freq_ramp = 0; // Slide (SIGNED)\n this.p_freq_dramp = 0; // Delta slide (SIGNED)\n // Vibrato\n this.p_vib_strength = 0; // Vibrato depth\n this.p_vib_speed = 0; // Vibrato speed\n\n // Tonal change\n this.p_arp_mod = 0; // Change amount (SIGNED)\n this.p_arp_speed = 0; // Change speed\n\n // Square wave duty (proportion of time signal is high vs. low)\n this.p_duty = 0; // Square duty\n this.p_duty_ramp = 0; // Duty sweep (SIGNED)\n\n // Repeat\n this.p_repeat_speed = 0; // Repeat speed\n\n // Flanger\n this.p_pha_offset = 0; // Flanger offset (SIGNED)\n this.p_pha_ramp = 0; // Flanger sweep (SIGNED)\n\n // Low-pass filter\n this.p_lpf_freq = 1; // Low-pass filter cutoff\n this.p_lpf_ramp = 0; // Low-pass filter cutoff sweep (SIGNED)\n this.p_lpf_resonance = 0;// Low-pass filter resonance\n // High-pass filter\n this.p_hpf_freq = 0; // High-pass filter cutoff\n this.p_hpf_ramp = 0; // High-pass filter cutoff sweep (SIGNED)\n\n // Sample parameters\n this.sound_vol = 0.5;\n this.sample_rate = 44100;\n this.sample_size = 8;\n}\n\n/*** Helper functions ***/\n\nfunction sqr(x) { return x * x }\nfunction cube(x) { return x * x * x }\nfunction sign(x) { return x < 0 ? -1 : 1 }\nfunction log(x, b) { return Math.log(x) / Math.log(b); }\nvar pow = Math.pow;\n\nfunction frnd(range) {\n return Math.random() * range;\n}\n\nfunction rndr(from, to) {\n return Math.random() * (to - from) + from;\n}\n\nfunction rnd(max) {\n return Math.floor(Math.random() * (max + 1));\n}\n\n/*** Import/export functions ***/\n\n// http://stackoverflow.com/questions/3096646/how-to-convert-a-floating-point-number-to-its-binary-representation-ieee-754-i\nfunction assembleFloat(sign, exponent, mantissa)\n{\n return (sign << 31) | (exponent << 23) | (mantissa);\n}\n\nfunction floatToNumber(flt)\n{\n if (isNaN(flt)) // Special case: NaN\n return assembleFloat(0, 0xFF, 0x1337); // Mantissa is nonzero for NaN\n\n var sign = (flt < 0) ? 1 : 0;\n flt = Math.abs(flt);\n if (flt == 0.0) // Special case: +-0\n return assembleFloat(sign, 0, 0);\n\n var exponent = Math.floor(Math.log(flt) / Math.LN2);\n if (exponent > 127 || exponent < -126) // Special case: +-Infinity (and huge numbers)\n return assembleFloat(sign, 0xFF, 0); // Mantissa is zero for +-Infinity\n\n var mantissa = flt / Math.pow(2, exponent);\n return assembleFloat(sign, exponent + 127, (mantissa * Math.pow(2, 23)) & 0x7FFFFF);\n}\n\n// http://stackoverflow.com/a/16001019\nfunction numberToFloat(bytes) {\n var sign = (bytes & 0x80000000) ? -1 : 1;\n var exponent = ((bytes >> 23) & 0xFF) - 127;\n var significand = (bytes & ~(-1 << 23));\n\n if (exponent == 128) \n return sign * ((significand) ? Number.NaN : Number.POSITIVE_INFINITY);\n\n if (exponent == -127) {\n if (significand == 0) return sign * 0.0;\n exponent = -126;\n significand /= (1 << 22);\n } else significand = (significand | (1 << 23)) / (1 << 23);\n\n return sign * significand * Math.pow(2, exponent);\n}\n\n// export parameter list to URL friendly base58 string\n// https://gist.github.com/diafygi/90a3e80ca1c2793220e5/\nvar b58alphabet = \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\nvar params_order = [\n \"wave_type\",\n \"p_env_attack\",\n \"p_env_sustain\",\n \"p_env_punch\",\n \"p_env_decay\",\n \"p_base_freq\",\n \"p_freq_limit\",\n \"p_freq_ramp\",\n \"p_freq_dramp\",\n \"p_vib_strength\",\n \"p_vib_speed\",\n \"p_arp_mod\",\n \"p_arp_speed\",\n \"p_duty\",\n \"p_duty_ramp\",\n \"p_repeat_speed\",\n \"p_pha_offset\",\n \"p_pha_ramp\",\n \"p_lpf_freq\",\n \"p_lpf_ramp\",\n \"p_lpf_resonance\",\n \"p_hpf_freq\",\n \"p_hpf_ramp\"\n];\n\nvar params_signed = [\"p_freq_ramp\", \"p_freq_dramp\", \"p_arp_mod\", \"p_duty_ramp\", \"p_pha_offset\", \"p_pha_ramp\", \"p_lpf_ramp\", \"p_hpf_ramp\"];\n\nParams.prototype.toB58 = function() {\n var convert = [];\n for (var pi in params_order) {\n var p = params_order[pi];\n if (p == \"wave_type\") {\n convert.push(this[p]);\n } else if (p.indexOf(\"p_\") == 0) {\n var val = this[p];\n val = floatToNumber(val);\n convert.push(0xff & val);\n convert.push(0xff & (val >> 8))\n convert.push(0xff & (val >> 16))\n convert.push(0xff & (val >> 24))\n }\n }\n return function(B,A){var d=[],s=\"\",i,j,c,n;for(i in B){j=0,c=B[i];s+=c||s.length^i?\"\":1;while(j in d||c){n=d[j];n=n?n*256+c:c;c=n/58|0;d[j]=n%58;j++}}while(j--)s+=A[d[j]];return s}(convert, b58alphabet);\n}\n\nParams.prototype.fromB58 = function(b58encoded) {\n this.fromJSON(sfxr.b58decode(b58encoded));\n return this;\n}\n\nParams.prototype.fromJSON = function(struct) {\n for (var p in struct) {\n if (struct.hasOwnProperty(p)) {\n this[p] = struct[p];\n }\n }\n return this;\n}\n\n/*** Presets ***/\n\n// These functions roll up random sounds appropriate to various\n// typical game events:\n\nParams.prototype.pickupCoin = function () {\n this.wave_type = SAWTOOTH;\n this.p_base_freq = 0.4 + frnd(0.5);\n this.p_env_attack = 0;\n this.p_env_sustain = frnd(0.1);\n this.p_env_decay = 0.1 + frnd(0.4);\n this.p_env_punch = 0.3 + frnd(0.3);\n if (rnd(1)) {\n this.p_arp_speed = 0.5 + frnd(0.2);\n this.p_arp_mod = 0.2 + frnd(0.4);\n }\n return this;\n}\n\nParams.prototype.laserShoot = function () {\n this.wave_type = rnd(2);\n if(this.wave_type === SINE && rnd(1))\n this.wave_type = rnd(1);\n if (rnd(2) === 0) {\n this.p_base_freq = 0.3 + frnd(0.6);\n this.p_freq_limit = frnd(0.1);\n this.p_freq_ramp = -0.35 - frnd(0.3);\n } else {\n this.p_base_freq = 0.5 + frnd(0.5);\n this.p_freq_limit = this.p_base_freq - 0.2 - frnd(0.6);\n if (this.p_freq_limit < 0.2) this.p_freq_limit = 0.2;\n this.p_freq_ramp = -0.15 - frnd(0.2);\n }\n if (this.wave_type === SAWTOOTH)\n this.p_duty = 1;\n if (rnd(1)) {\n this.p_duty = frnd(0.5);\n this.p_duty_ramp = frnd(0.2);\n } else {\n this.p_duty = 0.4 + frnd(0.5);\n this.p_duty_ramp = -frnd(0.7);\n }\n this.p_env_attack = 0;\n this.p_env_sustain = 0.1 + frnd(0.2);\n this.p_env_decay = frnd(0.4);\n if (rnd(1))\n this.p_env_punch = frnd(0.3);\n if (rnd(2) === 0) {\n this.p_pha_offset = frnd(0.2);\n this.p_pha_ramp = -frnd(0.2);\n }\n //if (rnd(1))\n this.p_hpf_freq = frnd(0.3);\n\n return this;\n}\n\nParams.prototype.explosion = function () {\n this.wave_type = NOISE;\n if (rnd(1)) {\n this.p_base_freq = sqr(0.1 + frnd(0.4));\n this.p_freq_ramp = -0.1 + frnd(0.4);\n } else {\n this.p_base_freq = sqr(0.2 + frnd(0.7));\n this.p_freq_ramp = -0.2 - frnd(0.2);\n }\n if (rnd(4) === 0)\n this.p_freq_ramp = 0;\n if (rnd(2) === 0)\n this.p_repeat_speed = 0.3 + frnd(0.5);\n this.p_env_attack = 0;\n this.p_env_sustain = 0.1 + frnd(0.3);\n this.p_env_decay = frnd(0.5);\n if (rnd(1)) {\n this.p_pha_offset = -0.3 + frnd(0.9);\n this.p_pha_ramp = -frnd(0.3);\n }\n this.p_env_punch = 0.2 + frnd(0.6);\n if (rnd(1)) {\n this.p_vib_strength = frnd(0.7);\n this.p_vib_speed = frnd(0.6);\n }\n if (rnd(2) === 0) {\n this.p_arp_speed = 0.6 + frnd(0.3);\n this.p_arp_mod = 0.8 - frnd(1.6);\n }\n\n return this;\n}\n\nParams.prototype.powerUp = function () {\n if (rnd(1)) {\n this.wave_type = SAWTOOTH;\n this.p_duty = 1;\n } else {\n this.p_duty = frnd(0.6);\n }\n this.p_base_freq = 0.2 + frnd(0.3);\n if (rnd(1)) {\n this.p_freq_ramp = 0.1 + frnd(0.4);\n this.p_repeat_speed = 0.4 + frnd(0.4);\n } else {\n this.p_freq_ramp = 0.05 + frnd(0.2);\n if (rnd(1)) {\n this.p_vib_strength = frnd(0.7);\n this.p_vib_speed = frnd(0.6);\n }\n }\n this.p_env_attack = 0;\n this.p_env_sustain = frnd(0.4);\n this.p_env_decay = 0.1 + frnd(0.4);\n\n return this;\n}\n\nParams.prototype.hitHurt = function () {\n this.wave_type = rnd(2);\n if (this.wave_type === SINE)\n this.wave_type = NOISE;\n if (this.wave_type === SQUARE)\n this.p_duty = frnd(0.6);\n if (this.wave_type === SAWTOOTH)\n this.p_duty = 1;\n this.p_base_freq = 0.2 + frnd(0.6);\n this.p_freq_ramp = -0.3 - frnd(0.4);\n this.p_env_attack = 0;\n this.p_env_sustain = frnd(0.1);\n this.p_env_decay = 0.1 + frnd(0.2);\n if (rnd(1))\n this.p_hpf_freq = frnd(0.3);\n return this;\n}\n\nParams.prototype.jump = function () {\n this.wave_type = SQUARE;\n this.p_duty = frnd(0.6);\n this.p_base_freq = 0.3 + frnd(0.3);\n this.p_freq_ramp = 0.1 + frnd(0.2);\n this.p_env_attack = 0;\n this.p_env_sustain = 0.1 + frnd(0.3);\n this.p_env_decay = 0.1 + frnd(0.2);\n if (rnd(1))\n this.p_hpf_freq = frnd(0.3);\n if (rnd(1))\n this.p_lpf_freq = 1 - frnd(0.6);\n return this;\n}\n\nParams.prototype.blipSelect = function () {\n this.wave_type = rnd(1);\n if (this.wave_type === SQUARE)\n this.p_duty = frnd(0.6);\n else\n this.p_duty = 1;\n this.p_base_freq = 0.2 + frnd(0.4);\n this.p_env_attack = 0;\n this.p_env_sustain = 0.1 + frnd(0.1);\n this.p_env_decay = frnd(0.2);\n this.p_hpf_freq = 0.1;\n return this;\n}\n\nParams.prototype.synth = function () {\n this.wave_type = rnd(1);\n this.p_base_freq = [0.2723171360931539, 0.19255692561524382, 0.13615778746815113][rnd(2)];\n this.p_env_attack = rnd(4) > 3 ? frnd(0.5) : 0;\n this.p_env_sustain = frnd(1);\n this.p_env_punch = frnd(1);\n this.p_env_decay = frnd(0.9) + 0.1;\n this.p_arp_mod = [0, 0, 0, 0, -0.3162, 0.7454, 0.7454][rnd(6)];\n this.p_arp_speed = frnd(0.5) + 0.4;\n this.p_duty = frnd(1);\n this.p_duty_ramp = rnd(2) == 2 ? frnd(1) : 0;\n this.p_lpf_freq = [1, 0.9 * frnd(1) * frnd(1) + 0.1][rnd(1)];\n this.p_lpf_ramp = rndr(-1, 1);\n this.p_lpf_resonance = frnd(1);\n this.p_hpf_freq = rnd(3) == 3 ? frnd(1) : 0;\n this.p_hpf_ramp = rnd(3) == 3 ? frnd(1) : 0;\n return this;\n}\n\nParams.prototype.tone = function () {\n this.wave_type = SINE;\n this.p_base_freq = 0.35173364; // 440 Hz\n this.p_env_attack = 0;\n this.p_env_sustain = 0.6641; // 1 sec\n this.p_env_decay = 0;\n this.p_env_punch = 0;\n return this;\n}\n\nParams.prototype.click = function() {\n const base = [\"explosion\", \"hitHurt\"][rnd(1)];\n this[base]();\n if (rnd(1)) {\n this.p_freq_ramp = -0.5 + frnd(1.0);\n }\n if (rnd(1)) {\n this.p_env_sustain = (frnd(0.4) + 0.2) * this.p_env_sustain;\n this.p_env_decay = (frnd(0.4) + 0.2) * this.p_env_decay;\n }\n if (rnd(3) == 0) {\n this.p_env_attack = frnd(0.3);\n }\n this.p_base_freq = 1 - frnd(0.25);\n this.p_hpf_freq = 1 - frnd(0.1);\n return this;\n}\n\nParams.prototype.random = function () {\n this.wave_type = rnd(3);\n if (rnd(1))\n this.p_base_freq = cube(frnd(2) - 1) + 0.5;\n else\n this.p_base_freq = sqr(frnd(1));\n this.p_freq_limit = 0;\n this.p_freq_ramp = Math.pow(frnd(2) - 1, 5);\n if (this.p_base_freq > 0.7 && this.p_freq_ramp > 0.2)\n this.p_freq_ramp = -this.p_freq_ramp;\n if (this.p_base_freq < 0.2 && this.p_freq_ramp < -0.05)\n this.p_freq_ramp = -this.p_freq_ramp;\n this.p_freq_dramp = Math.pow(frnd(2) - 1, 3);\n this.p_duty = frnd(2) - 1;\n this.p_duty_ramp = Math.pow(frnd(2) - 1, 3);\n this.p_vib_strength = Math.pow(frnd(2) - 1, 3);\n this.p_vib_speed = rndr(-1, 1);\n this.p_env_attack = cube(rndr(-1, 1));\n this.p_env_sustain = sqr(rndr(-1, 1));\n this.p_env_decay = rndr(-1, 1);\n this.p_env_punch = Math.pow(frnd(0.8), 2);\n if (this.p_env_attack + this.p_env_sustain + this.p_env_decay < 0.2) {\n this.p_env_sustain += 0.2 + frnd(0.3);\n this.p_env_decay += 0.2 + frnd(0.3);\n }\n this.p_lpf_resonance = rndr(-1, 1);\n this.p_lpf_freq = 1 - Math.pow(frnd(1), 3);\n this.p_lpf_ramp = Math.pow(frnd(2) - 1, 3);\n if (this.p_lpf_freq < 0.1 && this.p_lpf_ramp < -0.05)\n this.p_lpf_ramp = -this.p_lpf_ramp;\n this.p_hpf_freq = Math.pow(frnd(1), 5);\n this.p_hpf_ramp = Math.pow(frnd(2) - 1, 5);\n this.p_pha_offset = Math.pow(frnd(2) - 1, 3);\n this.p_pha_ramp = Math.pow(frnd(2) - 1, 3);\n this.p_repeat_speed = frnd(2) - 1;\n this.p_arp_speed = frnd(2) - 1;\n this.p_arp_mod = frnd(2) - 1;\n return this;\n}\n\nParams.prototype.mutate = function () {\n if (rnd(1)) this.p_base_freq += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_freq_ramp += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_freq_dramp += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_duty += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_duty_ramp += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_vib_strength += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_vib_speed += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_vib_delay += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_env_attack += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_env_sustain += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_env_decay += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_env_punch += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_lpf_resonance += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_lpf_freq += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_lpf_ramp += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_hpf_freq += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_hpf_ramp += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_pha_offset += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_pha_ramp += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_repeat_speed += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_arp_speed += frnd(0.1) - 0.05;\n if (rnd(1)) this.p_arp_mod += frnd(0.1) - 0.05;\n return this;\n}\n\n/*** Simpler namespaced functional API ***/\n\nsfxr = {};\n\nsfxr.toBuffer = function(synthdef) {\n return (new SoundEffect(synthdef)).getRawBuffer()[\"buffer\"];\n};\n\nsfxr.toWebAudio = function(synthdef, audiocontext) {\n var sfx = new SoundEffect(synthdef);\n var buffer = sfx.getRawBuffer()[\"normalized\"];\n if (audiocontext) {\n var buff = audiocontext.createBuffer(1, buffer.length, sfx.sampleRate);\n var nowBuffering = buff.getChannelData(0);\n for (var i = 0; i < buffer.length; i++) {\n nowBuffering[i] = buffer[i];\n }\n var proc = audiocontext.createBufferSource();\n proc.buffer = buff;\n return proc;\n }\n};\n\nsfxr.toWave = function(synthdef) {\n return (new SoundEffect(synthdef)).generate();\n};\n\nsfxr.toAudio = function(synthdef) {\n return sfxr.toWave(synthdef).getAudio();\n}\n\nsfxr.play = function(synthdef) {\n return sfxr.toAudio(synthdef).play();\n}\n\nsfxr.b58decode = function(b58encoded) {\n var decoded = function(S,A){var d=[],b=[],i,j,c,n;for(i in S){j=0,c=A.indexOf(S[i]);if(c<0)return undefined;c||b.length^i?i:b.push(0);while(j in d||c){n=d[j];n=n?n*58+c:c;c=n>>8;d[j]=n%256;j++}}while(j--)b.push(d[j]);return new Uint8Array(b)}(b58encoded,b58alphabet);\n var result = {};\n for (var pi in params_order) {\n var p = params_order[pi];\n var offset = (pi - 1) * 4 + 1;\n if (p == \"wave_type\") {\n result[p] = decoded[0];\n } else {\n var val = (decoded[offset] | (decoded[offset + 1] << 8) | (decoded[offset + 2] << 16) | (decoded[offset + 3] << 24));\n result[p] = numberToFloat(val);\n }\n }\n return result;\n}\n\nsfxr.b58encode = function(synthdef) {\n var p = new Params();\n p.fromJSON(synthdef);\n return p.toB58();\n}\n\nsfxr.generate = function(algorithm, options) {\n const p = new Params();\n const opts = options || {};\n p.sound_vol = opts[\"sound_vol\"] || 0.25;\n p.sample_rate = opts[\"sample_rate\"] || 44100;\n p.sample_size = opts[\"sample_size\"] || 8;\n return p[algorithm]();\n}\n\n/*** Main entry point ***/\n\nfunction SoundEffect(ps) {\n if (typeof(ps) == \"string\") {\n var PARAMS = new Params();\n if (ps.indexOf(\"#\") == 0) {\n ps = ps.slice(1);\n }\n ps = PARAMS.fromB58(ps);\n }\n this.init(ps);\n}\n\nSoundEffect.prototype.init = function (ps) {\n this.parameters = ps;\n this.initForRepeat(); // First time through, this is a bit of a misnomer\n\n // Waveform shape\n this.waveShape = parseInt(ps.wave_type);\n\n // Filter\n this.fltw = Math.pow(ps.p_lpf_freq, 3) * 0.1;\n this.enableLowPassFilter = (ps.p_lpf_freq != 1);\n this.fltw_d = 1 + ps.p_lpf_ramp * 0.0001;\n this.fltdmp = 5 / (1 + Math.pow(ps.p_lpf_resonance, 2) * 20) *\n (0.01 + this.fltw);\n if (this.fltdmp > 0.8) this.fltdmp=0.8;\n this.flthp = Math.pow(ps.p_hpf_freq, 2) * 0.1;\n this.flthp_d = 1 + ps.p_hpf_ramp * 0.0003;\n\n // Vibrato\n this.vibratoSpeed = Math.pow(ps.p_vib_speed, 2) * 0.01;\n this.vibratoAmplitude = ps.p_vib_strength * 0.5;\n\n // Envelope\n this.envelopeLength = [\n Math.floor(ps.p_env_attack * ps.p_env_attack * 100000),\n Math.floor(ps.p_env_sustain * ps.p_env_sustain * 100000),\n Math.floor(ps.p_env_decay * ps.p_env_decay * 100000)\n ];\n this.envelopePunch = ps.p_env_punch;\n\n // Flanger\n this.flangerOffset = Math.pow(ps.p_pha_offset, 2) * 1020;\n if (ps.p_pha_offset < 0) this.flangerOffset = -this.flangerOffset;\n this.flangerOffsetSlide = Math.pow(ps.p_pha_ramp, 2) * 1;\n if (ps.p_pha_ramp < 0) this.flangerOffsetSlide = -this.flangerOffsetSlide;\n\n // Repeat\n this.repeatTime = Math.floor(Math.pow(1 - ps.p_repeat_speed, 2) * 20000\n + 32);\n if (ps.p_repeat_speed === 0)\n this.repeatTime = 0;\n\n this.gain = Math.exp(ps.sound_vol) - 1;\n\n this.sampleRate = ps.sample_rate;\n this.bitsPerChannel = ps.sample_size;\n}\n\nSoundEffect.prototype.initForRepeat = function() {\n var ps = this.parameters;\n this.elapsedSinceRepeat = 0;\n\n this.period = 100 / (ps.p_base_freq * ps.p_base_freq + 0.001);\n this.periodMax = 100 / (ps.p_freq_limit * ps.p_freq_limit + 0.001);\n this.enableFrequencyCutoff = (ps.p_freq_limit > 0);\n this.periodMult = 1 - Math.pow(ps.p_freq_ramp, 3) * 0.01;\n this.periodMultSlide = -Math.pow(ps.p_freq_dramp, 3) * 0.000001;\n\n this.dutyCycle = 0.5 - ps.p_duty * 0.5;\n this.dutyCycleSlide = -ps.p_duty_ramp * 0.00005;\n\n if (ps.p_arp_mod >= 0)\n this.arpeggioMultiplier = 1 - Math.pow(ps.p_arp_mod, 2) * .9;\n else\n this.arpeggioMultiplier = 1 + Math.pow(ps.p_arp_mod, 2) * 10;\n this.arpeggioTime = Math.floor(Math.pow(1 - ps.p_arp_speed, 2) * 20000 + 32);\n if (ps.p_arp_speed === 1)\n this.arpeggioTime = 0;\n}\n\nSoundEffect.prototype.getRawBuffer = function () {\n var fltp = 0;\n var fltdp = 0;\n var fltphp = 0;\n\n var noise_buffer = Array(32);\n for (var i = 0; i < 32; ++i)\n noise_buffer[i] = Math.random() * 2 - 1;\n\n var envelopeStage = 0;\n var envelopeElapsed = 0;\n\n var vibratoPhase = 0;\n\n var phase = 0;\n var ipp = 0;\n var flanger_buffer = Array(1024);\n for (var i = 0; i < 1024; ++i)\n flanger_buffer[i] = 0;\n\n var num_clipped = 0;\n\n var buffer = [];\n var normalized = [];\n\n var sample_sum = 0;\n var num_summed = 0;\n var summands = Math.floor(44100 / this.sampleRate);\n\n for(var t = 0; ; ++t) {\n\n // Repeats\n if (this.repeatTime != 0 && ++this.elapsedSinceRepeat >= this.repeatTime)\n this.initForRepeat();\n\n // Arpeggio (single)\n if(this.arpeggioTime != 0 && t >= this.arpeggioTime) {\n this.arpeggioTime = 0;\n this.period *= this.arpeggioMultiplier;\n }\n\n // Frequency slide, and frequency slide slide!\n this.periodMult += this.periodMultSlide;\n this.period *= this.periodMult;\n if(this.period > this.periodMax) {\n this.period = this.periodMax;\n if (this.enableFrequencyCutoff)\n break;\n }\n\n // Vibrato\n var rfperiod = this.period;\n if (this.vibratoAmplitude > 0) {\n vibratoPhase += this.vibratoSpeed;\n rfperiod = this.period * (1 + Math.sin(vibratoPhase) * this.vibratoAmplitude);\n }\n var iperiod = Math.floor(rfperiod);\n if (iperiod < OVERSAMPLING) iperiod = OVERSAMPLING;\n\n // Square wave duty cycle\n this.dutyCycle += this.dutyCycleSlide;\n if (this.dutyCycle < 0) this.dutyCycle = 0;\n if (this.dutyCycle > 0.5) this.dutyCycle = 0.5;\n\n // Volume envelope\n if (++envelopeElapsed > this.envelopeLength[envelopeStage]) {\n envelopeElapsed = 0;\n if (++envelopeStage > 2)\n break;\n }\n var env_vol;\n var envf = envelopeElapsed / this.envelopeLength[envelopeStage];\n if (envelopeStage === 0) { // Attack\n env_vol = envf;\n } else if (envelopeStage === 1) { // Sustain\n env_vol = 1 + (1 - envf) * 2 * this.envelopePunch;\n } else { // Decay\n env_vol = 1 - envf;\n }\n\n // Flanger step\n this.flangerOffset += this.flangerOffsetSlide;\n var iphase = Math.abs(Math.floor(this.flangerOffset));\n if (iphase > 1023) iphase = 1023;\n\n if (this.flthp_d != 0) {\n this.flthp *= this.flthp_d;\n if (this.flthp < 0.00001)\n this.flthp = 0.00001;\n if (this.flthp > 0.1)\n this.flthp = 0.1;\n }\n\n // 8x oversampling\n var sample = 0;\n for (var si = 0; si < OVERSAMPLING; ++si) {\n var sub_sample = 0;\n phase++;\n if (phase >= iperiod) {\n phase %= iperiod;\n if (this.waveShape === NOISE)\n for(var i = 0; i < 32; ++i)\n noise_buffer[i] = Math.random() * 2 - 1;\n }\n\n // Base waveform\n var fp = phase / iperiod;\n if (this.waveShape === SQUARE) {\n if (fp < this.dutyCycle)\n sub_sample=0.5;\n else\n sub_sample=-0.5;\n } else if (this.waveShape === SAWTOOTH) {\n if (fp < this.dutyCycle)\n sub_sample = -1 + 2 * fp/this.dutyCycle;\n else\n sub_sample = 1 - 2 * (fp-this.dutyCycle)/(1-this.dutyCycle);\n } else if (this.waveShape === SINE) {\n sub_sample = Math.sin(fp * 2 * Math.PI);\n } else if (this.waveShape === NOISE) {\n sub_sample = noise_buffer[Math.floor(phase * 32 / iperiod)];\n } else {\n throw \"ERROR: Bad wave type: \" + this.waveShape;\n }\n\n // Low-pass filter\n var pp = fltp;\n this.fltw *= this.fltw_d;\n if (this.fltw < 0) this.fltw = 0;\n if (this.fltw > 0.1) this.fltw = 0.1;\n if (this.enableLowPassFilter) {\n fltdp += (sub_sample - fltp) * this.fltw;\n fltdp -= fltdp * this.fltdmp;\n } else {\n fltp = sub_sample;\n fltdp = 0;\n }\n fltp += fltdp;\n\n // High-pass filter\n fltphp += fltp - pp;\n fltphp -= fltphp * this.flthp;\n sub_sample = fltphp;\n\n // Flanger\n flanger_buffer[ipp & 1023] = sub_sample;\n sub_sample += flanger_buffer[(ipp - iphase + 1024) & 1023];\n ipp = (ipp + 1) & 1023;\n\n // final accumulation and envelope application\n sample += sub_sample * env_vol;\n }\n\n // Accumulate samples appropriately for sample rate\n sample_sum += sample;\n if (++num_summed >= summands) {\n num_summed = 0;\n sample = sample_sum / summands;\n sample_sum = 0;\n } else {\n continue;\n }\n\n sample = sample / OVERSAMPLING * masterVolume;\n sample *= this.gain;\n\n // store the original normalized floating point sample\n normalized.push(sample);\n\n if (this.bitsPerChannel === 8) {\n // Rescale [-1, 1) to [0, 256)\n sample = Math.floor((sample + 1) * 128);\n if (sample > 255) {\n sample = 255;\n ++num_clipped;\n } else if (sample < 0) {\n sample = 0;\n ++num_clipped;\n }\n buffer.push(sample);\n } else {\n // Rescale [-1, 1) to [-32768, 32768)\n sample = Math.floor(sample * (1<<15));\n if (sample >= (1<<15)) {\n sample = (1 << 15)-1;\n ++num_clipped;\n } else if (sample < -(1<<15)) {\n sample = -(1 << 15);\n ++num_clipped;\n }\n buffer.push(sample & 0xFF);\n buffer.push((sample >> 8) & 0xFF);\n }\n }\n \n return {\n \"buffer\": buffer,\n \"normalized\": normalized,\n \"clipped\": num_clipped,\n }\n}\n\nSoundEffect.prototype.generate = function() {\n var rendered = this.getRawBuffer();\n var wave = new RIFFWAVE();\n wave.header.sampleRate = this.sampleRate;\n wave.header.bitsPerSample = this.bitsPerChannel;\n wave.Make(rendered.buffer);\n wave.clipping = rendered.clipped;\n wave.buffer = rendered.normalized;\n wave.getAudio = _sfxr_getAudioFn(wave);\n return wave;\n}\n\nvar _actx = null;\nvar _sfxr_getAudioFn = function(wave) {\n return function() {\n // check for procedural audio\n var actx = null;\n if (!_actx) {\n if ('AudioContext' in window) {\n _actx = new AudioContext();\n } else if ('webkitAudioContext' in window) {\n _actx = new webkitAudioContext();\n }\n }\n actx = _actx;\n \n if (actx) {\n var buff = actx.createBuffer(1, wave.buffer.length, wave.header.sampleRate);\n var nowBuffering = buff.getChannelData(0);\n for (var i=0;i<wave.buffer.length;i++) {\n nowBuffering[i] = wave.buffer[i];\n }\n var volume = 1.0;\n var obj = {\n \"channels\": [],\n \"setVolume\": function(v) { volume = v; return obj; },\n \"play\": function() {\n var proc = actx.createBufferSource();\n proc.buffer = buff;\n var gainNode = actx.createGain()\n gainNode.gain.value = volume;\n gainNode.connect(actx.destination)\n proc.connect(gainNode);\n if (proc[\"start\"]) {\n proc.start();\n } else if (proc[\"noteOn\"]) {\n proc.noteOn(0);\n }\n this.channels.push(proc);\n return proc;\n }\n };\n return obj;\n } else {\n var audio = new Audio();\n audio.src = wave.dataURI;\n return audio;\n }\n };\n};\n\n/*** conversions from slider values, internal, and units ***/\n\n// convert from slider values to internal representation\n\nvar sliders = {\n p_env_attack: function (v) { return v * v * 100000.0 },\n p_env_sustain: function (v) { return v * v * 100000.0 },\n p_env_punch: function (v) { return v },\n p_env_decay: function (v) { return v * v * 100000.0 },\n\n p_base_freq: function (v) { return 8 * 44100 * (v * v + 0.001) / 100 },\n p_freq_limit: function (v) { return 8 * 44100 * (v * v + 0.001) / 100 },\n p_freq_ramp: function (v) { return 1.0 - Math.pow(v, 3.0) * 0.01 },\n p_freq_dramp: function (v) { return -Math.pow(v, 3.0) * 0.000001 },\n\n p_vib_speed: function (v) { return Math.pow(v, 2.0) * 0.01 },\n p_vib_strength: function (v) { return v * 0.5 },\n\n p_arp_mod: function (v) { \n return v >= 0 ? 1.0 - Math.pow(v, 2) * 0.9 : 1.0 + Math.pow(v, 2) * 10; },\n p_arp_speed: function (v) { return (v === 1.0) ? 0 :\n Math.floor(Math.pow(1.0 - v, 2.0) * 20000 + 32)},\n\n p_duty: function (v) { return 0.5 - v * 0.5; },\n p_duty_ramp: function (v) { return -v * 0.00005 },\n\n p_repeat_speed: function (v) { return (v === 0) ? 0 :\n Math.floor(Math.pow(1-v, 2) * 20000) + 32 },\n\n p_pha_offset: function (v) { return (v < 0 ? -1 : 1) * Math.pow(v,2)*1020 },\n p_pha_ramp: function (v) { return (v < 0 ? -1 : 1) * Math.pow(v,2) },\n\n p_lpf_freq: function (v) { return Math.pow(v, 3) * 0.1 },\n p_lpf_ramp: function (v) { return 1.0 + v * 0.0001 },\n p_lpf_resonance: function (v) { return 5.0 / (1.0 + Math.pow(v, 2) * 20) }, // * (0.01 + fltw);\n\n p_hpf_freq: function (v) { return Math.pow(v, 2) * 0.1 },\n p_hpf_ramp: function (v) { return 1.0 + v * 0.0003 },\n\n sound_vol: function (v) { return Math.exp(v) - 1; }\n};\n\nvar sliders_inverse = {\n p_env_attack: function (v) { return Math.sqrt(v / 100000.0); },\n p_env_sustain: function (v) { return Math.sqrt(v / 100000.0); },\n p_env_punch: function (v) { return v; },\n p_env_decay: function (v) { return Math.sqrt(v / 100000.0); },\n\n p_base_freq: function (v) { return Math.sqrt(v * 100 / 8 / 44100 - 0.001); },\n p_freq_limit: function (v) { return Math.sqrt(v * 100 / 8 / 44100 - 0.001); },\n p_freq_ramp: function (v) { return Math.cbrt((1.0 - v) / 0.01); },\n p_freq_dramp: function (v) { return Math.cbrt(v / -0.000001); },\n\n p_vib_speed: function (v) { return Math.sqrt(v / 0.01); },\n p_vib_strength: function (v) { return v / 0.5; },\n\n p_arp_mod: function (v) {\n return v < 1 ? Math.sqrt((1.0 - v) / 0.9) : -Math.sqrt((v - 1.0) / 10.0);\n },\n p_arp_speed: function (v) { return (v === 0) ? 1.0 :\n ( (1.0 - Math.sqrt((v - (v < 100 ? 30 : 32)) / 20000)))},\n\n p_duty: function (v) { return (v - 0.5) / -0.5; },\n p_duty_ramp: function (v) { return v / -0.00005 },\n\n p_repeat_speed: function (v) { return v === 0 ? 0 : -(Math.sqrt((v - 32) / 20000) - 1.0) },\n\n p_pha_offset: function (v) { return (v < 0 ? -1 : 1) * Math.sqrt(Math.abs(v) / 1020) },\n p_pha_ramp: function (v) { return (v < 0 ? -1 : 1) * Math.sqrt(Math.abs(v)) },\n\n p_lpf_freq: function (v) { return Math.cbrt(v / 0.1); },\n p_lpf_ramp: function (v) { return (v - 1.0) / 0.0001; },\n p_lpf_resonance: function (v) { return Math.sqrt((1.0 / (v / 5.0) - 1) / 20) },\n\n p_hpf_freq: function (v) { return Math.sqrt(v / 0.1); },\n p_hpf_ramp: function (v) { return (v - 1.0) / 0.0003; },\n sound_vol: function (v) { return Math.log(v + 1);; }\n}\n\n// convert from internal representation to domain value without units\n\nvar domain = {\n p_env_attack: function (v) { return (v / 44100); },\n p_env_sustain: function (v) { return (v / 44100); },\n p_env_punch: function (v) { return (v * 100); },\n p_env_decay: function (v) { return (v / 44100); },\n\n p_base_freq: function (v) { return v; },\n p_freq_limit: function (v) { return v; },\n p_freq_ramp: function (v) { return (44100*Math.log(v)/Math.log(0.5)); },\n p_freq_dramp: function (v) { return (v*44100 / Math.pow(2, -44101./44100)); },\n\n p_vib_speed: function (v) { return (441000/64. * v); },\n p_vib_strength: function (v) { return (v*100); },\n\n p_arp_mod: function (v) { return (1./v); },\n p_arp_speed: function (v) { return (v / 44100); },\n\n p_duty: function (v) { return (100 * v); },\n p_duty_ramp: function (v) { return (8 * 44100 * v); },\n\n p_repeat_speed: function (v) { return v === 0 ? 0 : (44100./v); },\n\n p_pha_offset: function (v) { return (1000*v/44100); },\n p_pha_ramp: function (v) { return (1000*v); },\n\n p_lpf_freq: function (v) { return (v === .1) ? 0 : 8 * 44100 * v / (1-v); },\n p_lpf_ramp: function (v) { return Math.pow(v, 44100); },\n p_lpf_resonance: function (v) { return (100*(1-v*.11));},\n\n p_hpf_freq: function (v) { return 8 * 44100 * v / (1-v); },\n p_hpf_ramp: function (v) { return Math.pow(v, 44100); },\n\n sound_vol: function (v) { return 10 * Math.log(v*v) / Math.log(10); }\n}\n\nvar domain_inverse = {\n p_env_attack: function (v) { return (v * 44100); },\n p_env_sustain: function (v) { return (v * 44100); },\n p_env_punch: function (v) { return (v / 100); },\n p_env_decay: function (v) { return (v * 44100); },\n\n p_base_freq: function (v) { return v; },\n p_freq_limit: function (v) { return v; },\n p_freq_ramp: function (v) { return Math.exp(Math.log(0.5) * v / 44100); },\n p_freq_dramp: function (v) { return v * Math.pow(2, -44101./44100) / 44100; },\n\n p_vib_speed: function (v) { return (64. / 441000) * v; },\n p_vib_strength: function (v) { return (v / 100); },\n\n p_arp_mod: function (v) { return (1. / v); },\n p_arp_speed: function (v) { return (v * 44100); },\n\n p_duty: function (v) { return (v / 100); },\n p_duty_ramp: function (v) { return (v / (8 * 44100)); },\n\n p_repeat_speed: function (v) { return v <= 0 ? 0 : v > 1378 ? 32 : (44100 / v); },\n\n p_pha_offset: function (v) { return (v / 1000) * 44100; },\n p_pha_ramp: function (v) { return (v / 1000); },\n\n p_lpf_freq: function (v) { return (v / (v + 8 * 44100)); },\n p_lpf_ramp: function (v) { return Math.pow(v, 1 / 44100); },\n p_lpf_resonance: function (v) { return (1 - v / 100) / .11; },\n\n p_hpf_freq: function (v) { return (v / (v + 8 * 44100)); },\n p_hpf_ramp: function (v) { return Math.pow(v, 1 / 44100); },\n\n sound_vol: function (v) { return Math.sqrt(Math.pow(10, v / 10)); }\n}\n\n// convert from internal representation to printable units\n\nvar units = {\n p_env_attack: function (v) { return (v / 44100).toPrecision(4) + ' sec' },\n p_env_sustain: function (v) { return (v / 44100).toPrecision(4) + ' sec' },\n p_env_punch: function (v) { return '+' + (v * 100).toPrecision(4) + '%'},\n p_env_decay: function (v) { return (v / 44100).toPrecision(4) + ' sec' },\n \n p_base_freq: function (v) { return v.toPrecision(4) + 'Hz' },\n p_freq_limit: function (v) { return v.toPrecision(4) + 'Hz' },\n p_freq_ramp: function (v) { \n return (44100*Math.log(v)/Math.log(0.5)).toPrecision(4) + ' 8va/sec'; },\n p_freq_dramp: function (v) { \n return (v*44100 / Math.pow(2, -44101./44100)).toExponential(3) +\n ' 8va/s^2'; },\n\n p_vib_speed: function (v) { return v === 0 ? 'OFF' : \n (441000/64. * v).toPrecision(4) + ' Hz'},\n p_vib_strength: function (v) { return v === 0 ? 'OFF' : \n '&plusmn; ' + (v*100).toPrecision(4) + '%' },\n\n p_arp_mod: function (v) { return ((v === 1) ? 'OFF' : \n 'x ' + (1./v).toPrecision(4)) },\n p_arp_speed: function (v) { return (v === 0 ? 'OFF' :\n (v / 44100).toPrecision(4) +' sec') },\n\n p_duty: function (v) { return (100 * v).toPrecision(4) + '%'; },\n p_duty_ramp: function (v) { return (8 * 44100 * v).toPrecision(4) +'%/sec'},\n\n p_repeat_speed: function (v) { return v === 0 ? 'OFF' : \n (44100/v).toPrecision(4) + ' Hz' },\n\n p_pha_offset: function (v) { return v === 0 ? 'OFF' :\n (1000*v/44100).toPrecision(4) + ' msec' },\n // Not so sure about this:\n p_pha_ramp: function (v) { return v === 0 ? 'OFF' :\n (1000*v).toPrecision(4) + ' msec/sec' },\n\n p_lpf_freq: function (v) { \n return (v === .1) ? 'OFF' : Math.round(8 * 44100 * v / (1-v)) + ' Hz'; },\n p_lpf_ramp: function (v) { if (v === 1) return 'OFF';\n return Math.pow(v, 44100).toPrecision(4) + ' ^sec'; },\n p_lpf_resonance: function (v) { return (100*(1-v*.11)).toPrecision(4)+'%';},\n\n p_hpf_freq: function (v) { \n return (v === 0) ? 'OFF' : Math.round(8 * 44100 * v / (1-v)) + ' Hz'; },\n p_hpf_ramp: function (v) { if (v === 1) return 'OFF';\n return Math.pow(v, 44100).toPrecision(4) + ' ^sec'; },\n\n sound_vol: function (v) { \n v = 10 * Math.log(v*v) / Math.log(10);\n var sign = v >= 0 ? '+' : '';\n return sign + v.toPrecision(4) + ' dB'; \n }\n};\n\n/*** Plumbing ***/\n\n(function (root, factory) {\n // Handle ESM where 'this' is undefined\n var globalRoot = root || (typeof globalThis !== 'undefined' ? globalThis : (typeof window !== 'undefined' ? window : {}));\n if(typeof define === \"function\" && define.amd) {\n // Now we're wrapping the factory and assigning the return\n // value to the root (window) and returning it as well to\n // the AMD loader.\n define([\"./riffwave\"], function(RIFFWAVE){\n return (globalRoot.jsfxr = factory(RIFFWAVE));\n });\n } else if(typeof module === \"object\" && module.exports) {\n // I've not encountered a need for this yet, since I haven't\n // run into a scenario where plain modules depend on CommonJS\n // *and* I happen to be loading in a CJS browser environment\n // but I'm including it for the sake of being thorough\n var RIFFWAVE = require(\"./riffwave.js\");\n module.exports = (globalRoot.jsfxr = factory(RIFFWAVE));\n } else {\n globalRoot.jsfxr = factory(globalRoot.RIFFWAVE);\n }\n}(this, function(RIFFWAVE) {\n // module code here....\n return {\n \"sfxr\": sfxr,\n \"convert\": {\n \"sliders\": sliders,\n \"domain\": domain,\n \"sliders_inverse\": sliders_inverse,\n \"domain_inverse\": domain_inverse,\n \"units\": units,\n },\n \"parameters\": {\n \"order\": params_order,\n \"signed\": params_signed,\n },\n \"Params\": Params,\n \"SoundEffect\": SoundEffect,\n \"waveforms\": {\n \"SQUARE\": SQUARE,\n \"SAWTOOTH\": SAWTOOTH,\n \"SINE\": SINE,\n \"NOISE\": NOISE\n }\n };\n}));\n","// ESM wrapper for sfxr.js (jsfxr)\n// This file provides ES module exports while maintaining backwards compatibility\n// with CommonJS consumers who use the original .js file.\n\n// IMPORTANT: Import riffwave first and set up global BEFORE sfxr.js loads\n// sfxr.js's SoundEffect.generate() expects RIFFWAVE to be a global\nimport RIFFWAVE from './riffwave.js';\nif (typeof globalThis !== 'undefined') globalThis.RIFFWAVE = RIFFWAVE;\nif (typeof window !== 'undefined') window.RIFFWAVE = RIFFWAVE;\n\n// Now import sfxr.js - it can now find RIFFWAVE in the global scope\nimport jsfxr from './sfxr.js';\n\n// Extract the sfxr API for convenience\nconst sfxr = jsfxr.sfxr;\n\nexport { jsfxr, sfxr };\nexport default jsfxr;\n"],"names":["FastBase64","i","src","len","dst","n","n1","n2","n3","RIFFWAVE","data","u32ToArray","u16ToArray","root","factory","globalRoot","module","this","SQUARE","SAWTOOTH","SINE","NOISE","masterVolume","OVERSAMPLING","sfxr","Params","sqr","x","cube","frnd","range","rndr","from","to","rnd","max","assembleFloat","sign","exponent","mantissa","floatToNumber","flt","numberToFloat","bytes","significand","b58alphabet","params_order","params_signed","convert","pi","p","val","B","A","s","j","c","b58encoded","struct","base","synthdef","SoundEffect","audiocontext","sfx","buffer","buff","nowBuffering","proc","decoded","S","d","b","result","offset","algorithm","options","opts","ps","PARAMS","fltp","fltdp","fltphp","noise_buffer","envelopeStage","envelopeElapsed","vibratoPhase","phase","ipp","flanger_buffer","num_clipped","normalized","sample_sum","num_summed","summands","t","rfperiod","iperiod","env_vol","envf","iphase","sample","si","sub_sample","fp","pp","rendered","wave","_sfxr_getAudioFn","_actx","actx","volume","obj","v","gainNode","audio","sliders","sliders_inverse","domain","domain_inverse","units","require$$0","jsfxr"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -10,7 +10,7 @@
10
10
  href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap"
11
11
  rel="stylesheet"
12
12
  />
13
- <script type="module" crossorigin src="/assets/main-B8BdmBfC.js"></script>
13
+ <script type="module" crossorigin src="/assets/main-mMUnnurh.js"></script>
14
14
  <link rel="stylesheet" crossorigin href="/assets/main-CVl-4C5E.css">
15
15
  </head>
16
16
  <body class="bg-dark-bg text-dark-text">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "driftdetect-dashboard",
3
- "version": "0.9.37",
3
+ "version": "0.9.38",
4
4
  "description": "Local web dashboard for Drift architectural drift detection",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {