local rate=44100 local len=1 local bfreq=500 local lacu,pers=1.5,0.5 local octas=4 local rta=0 local oofs={} math.randomseed(os.time()) do local pe=1 for n=1,octas do oofs[n]=math.random()*2-1 rta=rta+(pe) pe=pe*pers end end local sd=love.sound.newSoundData(rate*len,rate,16,1) local function gsample(t) local arg=(bfreq*(t^((1+math.sin(t*2*math.pi)*0.1)*love.math.noise(t*0.1-0.05,5244,love.math.noise(t*1000,2949)*0.01-0.005)))) --print(arg) local nn=0 local pe=1/rta local ao=1 for n=1,octas do local nnn=znoise(arg*ao,n/5+oofs[n])*pe --nn=math.max(-1,math.min(1,nn+nnn)) nn=nn+nnn --print(n,nn,nnn,pe,ao) pe=pe*pers ao=ao*lacu end nn=nn*0.5+znoise((1-t)^(math.sin(t*math.pi*10*math.cos(t*10))*1+6+znoise(423,5453,t*1000)*0.05)*1000)*0.5 nn=nn*1.5 return (nn*(1-t)^5)*(math.min(1,math.max(t*100))^0.5) end for n=0,len*rate-1 do local a=gsample(n/(rate)) sd:setSample(n,a) end return sd