20 lines
496 B
Lua
20 lines
496 B
Lua
|
local sg=soundgen
|
||
|
local waves={}
|
||
|
local function sign(n)
|
||
|
return n>0 and 1 or (n<0 and -1 or 0)
|
||
|
end
|
||
|
for n=1,32 do
|
||
|
local a=sg:noise(0):phase(n):freq(50*2^(n^0.8*2)):amp(0.5^(n/2)^1.2)
|
||
|
local b=sg:noise(0):freq(50*n)
|
||
|
waves[n]=sg:new(function(self,t)
|
||
|
local aa=(n)/100
|
||
|
local t=t
|
||
|
local y=a:sample(t^(0.15*((n-1)^1.1/30+1))+b:sample(t)*aa)
|
||
|
return math.abs(y)^2*sign(y)
|
||
|
end)
|
||
|
end
|
||
|
local wave=sg.add(unpack(waves)):amp(1.2)
|
||
|
wave=wave:fade(0.001,0)
|
||
|
wave=wave:fade(0.001,0.5)
|
||
|
return wave:compile()
|