websfx
Version:
Play synthesized UI sound effects using the Web Audio API
2 lines • 5.43 kB
JavaScript
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.websfx={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});function t(e){return Math.min(1,Math.max(0,e))}let n,r={volume:1};function i(){if(r.volume<=0)return;let e=o();return e?.context.state===`suspended`&&e.context.resume().catch(()=>void 0),e}function a(e){return e?.volume!==void 0&&(r={volume:t(e.volume)},n&&(n.master.gain.value=r.volume)),{...r}}function o(){if(n)return n;if(typeof AudioContext>`u`)return;let e;try{e=new AudioContext}catch{return}let t=e.createGain();return t.gain.value=r.volume,t.connect(e.destination),n={context:e,master:t},n}let s=1e-4;function c(e){let n=i();if(!n)return;let{frequency:r,endFrequency:a,duration:o=.1,delay:c=0,attack:l=.005,type:u=`sine`,volume:d=1,pitch:f=1}=e,p=t(d),m=r*f;if(o<=0||p<=0||m<=0)return;let{context:h,master:g}=n,_=h.currentTime+c,v=_+o,y=h.createOscillator(),b=h.createGain();y.type=u,y.frequency.setValueAtTime(m,_),a!==void 0&&y.frequency.exponentialRampToValueAtTime(Math.max(1,a*f),v),b.gain.setValueAtTime(s,_),b.gain.exponentialRampToValueAtTime(p,_+Math.min(l,o)),b.gain.exponentialRampToValueAtTime(s,v),y.connect(b),b.connect(g),y.start(_),y.stop(v)}function l(e={}){let n=i();if(!n)return;let{duration:r=.1,delay:a=0,attack:o=.002,type:c=`lowpass`,frequency:l=1500,q:u,volume:d=1,pitch:p=1}=e,m=t(d);if(r<=0||m<=0)return;let{context:h,master:g}=n,_=h.currentTime+a,v=_+r,y=h.createBufferSource(),b=h.createBiquadFilter(),x=h.createGain();y.buffer=f(h),b.type=c,b.frequency.setValueAtTime(Math.max(1,l*p),_),u!==void 0&&(b.Q.value=u),x.gain.setValueAtTime(s,_),x.gain.exponentialRampToValueAtTime(m,_+Math.min(o,r)),x.gain.exponentialRampToValueAtTime(s,v),y.connect(b),b.connect(x),x.connect(g),y.start(_),y.stop(v)}function u(e,t={}){let{gap:n=.02,type:r=`sine`,...i}=t,a=0;for(let t of e){let e=t.duration??.08;c({frequency:t.frequency,duration:e,delay:a,type:r,...i}),a+=e+n}}let d=/* @__PURE__ */ new WeakMap;function f(e){let t=d.get(e);if(t)return t;let n=Math.floor(e.sampleRate),r=e.createBuffer(1,n,e.sampleRate),i=r.getChannelData(0);for(let e=0;e<n;e+=1)i[e]=Math.random()*2-1;return d.set(e,r),r}let p={frequency:1e3,endFrequency:700,duration:.05,type:`triangle`,volume:.8};function m(e,t=0){c({...p,...e,delay:t})}function h(e={}){m(e)}function g(e={}){c({frequency:900,duration:.04,type:`sine`,volume:.4,...e})}function _(e={}){c({frequency:1200,duration:.05,type:`sine`,volume:.5,...e})}function v(e={}){c({frequency:700,endFrequency:500,duration:.06,type:`triangle`,volume:.7,...e})}function y(e={}){c({frequency:500,endFrequency:750,duration:.06,type:`triangle`,volume:.7,...e})}function b(e={}){c({frequency:440,endFrequency:660,duration:.3,attack:.05,type:`sine`,volume:.7,...e})}function x(e={}){m(e),m(e,.09)}function S(e={}){l({duration:.1,type:`bandpass`,frequency:1200,q:2,volume:.4,...e})}function C(e={}){c({frequency:150,endFrequency:60,duration:.18,type:`sine`,volume:.9,...e}),l({duration:.12,type:`lowpass`,frequency:500,volume:.3,...e})}function w(e={}){l({duration:.03,type:`bandpass`,frequency:2500,q:1,volume:.5,...e})}function T(e={}){u([{frequency:660,duration:.06},{frequency:990,duration:.09}],{type:`sine`,gap:0,volume:.65,...e})}function E(e={}){u([{frequency:990,duration:.06},{frequency:660,duration:.09}],{type:`sine`,gap:0,volume:.65,...e})}function D(e={}){c({frequency:300,endFrequency:900,duration:.18,type:`triangle`,volume:.65,...e})}function O(e={}){c({frequency:900,endFrequency:300,duration:.18,type:`triangle`,volume:.65,...e})}function k(e={}){c({frequency:700,endFrequency:350,duration:.15,type:`sine`,volume:.65,...e})}function A(e={}){c({frequency:350,endFrequency:700,duration:.15,type:`sine`,volume:.65,...e})}function j(e={}){let{frequency:t=880,...n}=e;c({frequency:t,duration:.15,type:`sine`,volume:.7,...n})}function M(e={}){u([{frequency:523.25,duration:.08},{frequency:659.25,duration:.08},{frequency:783.99,duration:.08},{frequency:1046.5,duration:.16}],{type:`sine`,gap:.02,volume:.65,...e})}function N(e={}){u([{frequency:220,duration:.12},{frequency:165,duration:.18}],{type:`square`,gap:0,volume:.45,...e})}function P(e={}){u([{frequency:880,duration:.08},{frequency:660,duration:.08},{frequency:880,duration:.08},{frequency:660,duration:.08}],{type:`square`,gap:.04,volume:.4,...e})}function F(e={}){u([{frequency:600,duration:.09},{frequency:450,duration:.14}],{type:`triangle`,gap:.01,volume:.65,...e})}function I(e={}){u([{frequency:880,duration:.1},{frequency:1320,duration:.18}],{type:`sine`,gap:.08,volume:.65,...e})}function L(e={}){u([{frequency:900,duration:.05},{frequency:1350,duration:.07}],{type:`sine`,gap:.03,volume:.6,...e})}function R(e={}){c({frequency:1100,endFrequency:800,duration:.09,type:`sine`,volume:.65,...e})}function z(e={}){c({frequency:500,endFrequency:250,duration:.12,type:`triangle`,volume:.7,...e})}function B(e={}){c({frequency:500,endFrequency:1400,duration:.12,type:`sine`,volume:.65,...e})}e.back=k,e.beep=j,e.cancel=F,e.click=h,e.close=O,e.configure=a,e.copy=L,e.deselect=E,e.doubleClick=x,e.drag=S,e.drop=C,e.error=N,e.focus=_,e.forward=A,e.hover=g,e.longPress=b,e.notification=I,e.open=D,e.paste=R,e.press=v,e.reaction=B,e.release=y,e.remove=z,e.select=T,e.success=M,e.type=w,e.warning=P});
//# sourceMappingURL=index.umd.min.js.map