local sg=soundgen local fade do local fwav=sg:sine():phase(0.75):freq(0.25) fwav=fwav:clamp(0,1) fwav=fwav:add(sg:silence(-1):clamp(-math.huge,0)) function fade(wave,ma,mi) local ff=fwav:freq(1/(mi-ma)):phase(-ma) return wave:am(ff,1,-1) end end local function new() local wave=sg:noise():phase(math.random()*1000):freq(1000):amp(0.25) :pm(sg:triangle():freq(50):am(sg:silence(1):fade(0,0.04),-1,1),-0.01,0.01) :add(sg:sine():amp(0.55):freq(50):pm(sg:noise():freq(500):phase(0.834715384),-0.01,0.01)) wave=wave:fade(0,0.1) wave=wave:fade(0.001,0) return wave end local waves={} for n=0,1-1 do waves[#waves+1]=new():phase(-n*0.1):amp(0.3) end local wave=sg:silence():clamp(0,1):add(unpack(waves)) return wave:compile()