soundtest/sounds/1.lua
2024-05-26 17:27:13 +05:00

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