sound.Generate
Description
Creates a sound from a function.
Arguments
4 function callback
A function which will be called to generate every sample on the sound. This function gets the current sample number passed as the first argument. The return value must be between
-1.0
and 1.0
. Other values will wrap back to the -1 to 1 range and basically clip. There are 65535 possible quantifiable values between -1 and 1.Example
Plays a 2000 Hz sine wave at maximum volume.
local frequency = 2000 -- Hz
local samplerate = 44100
local function data( t )
return math.sin( t * math.pi * 2 / samplerate * frequency )
end
test_sound_id = test_sound_id and test_sound_id + 1 or 10
sound.Generate( "testgen" .. test_sound_id, samplerate, 2, data )
surface.PlaySound( "testgen" .. test_sound_id )