GetSoundFFTData: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
(Revert edit SDraw which added "more sensible example") |
||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
{{Client function}} | {{Client function}} | ||
This function gets the fast fourier transform | This function gets the 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 | ||
This allows things like visualisations. | This allows things like visualisations. | ||
==Syntax== | ==Syntax== | ||
Line 23: | Line 15: | ||
===Returns=== | ===Returns=== | ||
Returns a table of '''iSamples'''/2 (or '''iBands''' if '''iBands''' is used) floats representing the current audio frame. | Returns a table of '''iSamples'''/2 (or '''iBands'''-1 if '''iBands''' is used) floats representing the current audio frame. | ||
Returns false if the sound is not playing yet or hasn't buffered in the | Returns false if the sound is not playing yet or hasn't buffered in the | ||
case of streams. | case of streams. |
Revision as of 09:25, 10 July 2018
This function gets the 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 This allows things like visualisations.
Syntax
table getSoundFFTData ( element sound, int iSamples [, int iBands = 0 ] )
OOP Syntax Help! I don't understand this!
- Method: sound:getFFTData(...)
Required Arguments
- sound: a sound element that is created using playSound or playSound3D. Streams are also supported
- iSamples: allowed samples are 256, 512, 1024, 2048, 4096, 8192 and 16384.
Optional Arguments
- iBands: 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
Returns a table of iSamples/2 (or iBands-1 if iBands 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.
Example
Click to collapse [-]
ClientsoundHandler = 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 ( 0, i, 1, math.sqrt ( soundFFT[i] ) * 256 ) end end end end addEventHandler ( "onClientRender", getRootElement(), onSoundPlayRender )
Changelog
Version | Description |
---|
1.3.2 | Added player element to use a players voice |
See Also
- getRadioChannel
- getRadioChannelName
- getSFXStatus
- getSoundBPM
- getSoundBufferLength
- getSoundEffectParameters
- getSoundEffects
- getSoundFFTData
- getSoundLength
- getSoundLevelData
- getSoundMaxDistance
- getSoundMetaTags
- getSoundMinDistance
- getSoundPan
- getSoundPosition
- getSoundProperties
- getSoundSpeed
- getSoundVolume
- getSoundWaveData
- isSoundLooped
- isSoundPanningEnabled
- isSoundPaused
- playSFX3D
- playSFX
- playSound3D
- playSound
- setRadioChannel
- setSoundEffectEnabled
- setSoundEffectParameter
- setSoundLooped
- setSoundMaxDistance
- setSoundMinDistance
- setSoundPan
- setSoundPanningEnabled
- setSoundPaused
- setSoundPosition
- setSoundProperties
- setSoundSpeed
- setSoundVolume
- stopSound
- Shared
- playSoundFrontEnd