getSoundFFTData
This function gets the fast fourier transform data for an audio stream which is a table of floats representing the current audio frame. This allows things like visualisations. A fast fourier transform generates a table of all the frequencies of the current audio frame which starts at the bass end of the spectrum to mids to highs in that order. Should you have any problems there is an example resource located on the resources repository: Visualiser.
Just type startmusic mystreamurl
in your console and it will play on the cinema billboard near A51. If the element is a player, this function will use the players voice.
OOP Syntax Help! I don't understand this!
- Method: sound:getFFTData(...)
Syntax
table|false getSoundFFTData ( sound/player theSound, int samples, [ int bands = 0 ] )
Required Arguments
- theSound: A sound element that is created using playSound or playSound3D. Streams are also supported.
- samples: Allowed samples are 256, 512, 1024, 2048, 4096, 8192 and 16384.
Optional Arguments
NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use.
- bands (default: 0): Post processing option allows you to split the samples into the desired amount of bands or bars so if you only need 5 bars this saves a lot of cpu power compared to trying to do it in Lua.
Returns
- table|false: fft-data
Returns a table of samples/2 (or bands if bands is used) floats representing the current audio frame. Returns false if the sound is not playing yet or hasn't buffered in the case of streams.
Code Examples
local soundHandler = playSound ( "sound.wav" )
function onSoundPlayRender ( ) if ( soundHandler ) then local soundFFT = getSoundFFTData ( soundHandler, 2048, 256 ) if ( soundFFT ) then for i = 0, 255 do -- Data starts from index 0 dxDrawRectangle ( i, 0, 1, math.sqrt ( soundFFT[i] ) * 256 ) end end endendaddEventHandler ( "onClientRender", getRootElement(), onSoundPlayRender )
Changelog
See Also
Audio Functions
- getRadioChannel
- getRadioChannelName
- getSFXStatus
- getSoundBufferLength
- getSoundBPM
- getSoundEffectParameters
- getSoundEffects
- getSoundFFTData
- getSoundLength
- getSoundMaxDistance
- getSoundMetaTags
- getSoundMinDistance
- getSoundLevelData
- getSoundPan
- getSoundPosition
- getSoundVolume
- getSoundProperties
- isSoundLooped
- getSoundWaveData
- isSoundPanningEnabled
- isSoundPaused
- getSoundSpeed
- playSFX3D
- playSFX
- playSound
- playSound3D
- setRadioChannel
- setSoundEffectEnabled
- setSoundLooped
- setSoundMaxDistance
- setSoundEffectParameter
- setSoundMinDistance
- setSoundPan
- setSoundPanningEnabled
- setSoundPaused
- setSoundPosition
- setSoundProperties
- setSoundSpeed
- stopSound
- setSoundVolume