41 lines
922 B
Lua
41 lines
922 B
Lua
|
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
|