You are not recognized as the original poster of this topic.
let nHz=n=>459*(2**(n/12)),TAU=Math.PI*2,sine=x=>Math.sin(x*TAU),absPow=(x,y)=>Math.pow(Math.abs(x),y)*Math.sign(x),list=[[-16,0],[-4,4],[-1,5],[-5,8],[-4,10],[-9,12],[-16,14], [3,0],[7.8,1],[13.2,2],[1,5],[-1.3,10],[-2,12], [20.2,15,.25], [4,1],[6,3.5],[4,8],[3,13],[0,0],[1,4],[7,11]].flatMap(a=>[a,[a[0]+(Math.random()-.5)*.2,a[1]+Math.random()*.1,...(a[2]?[a[2]]:[])],[a[0]+(Math.random()-.5)*.3,a[1]+Math.random()*.1,...(a[2]?[a[2]]:[])]]).sort((a,b)=>a[1]-b[1]),len=16,voices=[],sampleRate=16e3,timer={time:0,add:(65/(60/4))/sampleRate,noteIdx:0};
return t=>{
timer.time+=timer.add;
if(timer.time>=len){timer.time%=len;timer.noteIdx=0;}
while(timer.noteIdx<list.length&&
list[timer.noteIdx][1]<=timer.time){
voices.push({f:nHz(list[timer.noteIdx][0]),d:10,ot:0,t:0,v:list[timer.noteIdx][2]||(.5+Math.random()*.5),c:Math.random()<.5?0:1});
timer.noteIdx++;
}
let o=[0,0];
for(let i=0;i<voices.length;i++){
let v=voices[i];
o[v.c]+=absPow(sine((v.ot+=v.f/sampleRate)*.5001),1/v.v)*sine(v.ot*.255)**2*((1-(v.t/v.d))**Math.max(7-t*.2,.8))*Math.cos(v.t*v.v*2)*v.v;
v.t+=timer.add;v.f+=v.t*.8/sampleRate;
if(v.t>=v.d){voices.splice(i,1);i--;}
}
let k=(absPow(sine(2/(.1+timer.time%2)),1+timer.time*.2)*Math.min(t*.05,1.5))+Math.random()*.1*(1-((timer.time+1)*.5%1))**20;
o[0]-=k;o[1]-=k;
return[Math.tanh(o[0]*.2),Math.tanh(o[1]*.2)];
}