GetSoundWaveData: Difference between revisions
Jump to navigation
Jump to search
| Line 30: | Line 30: | ||
local bt = getSoundWaveData(handl,512) | local bt = getSoundWaveData(handl,512) | ||
dxDrawRectangle(sx/2,0,1,256,tocolor(255,255,255,127)) | dxDrawRectangle(sx/2,0,1,256,tocolor(255,255,255,127)) | ||
for i= | for i=1,127 do | ||
dxDrawLine(sx/2+64*bt[2*i | dxDrawLine(sx/2+64*bt[2*i],i*2-1,sx/2+64*bt[2*(i+1)],(i+1)*2-1,colors[1]) | ||
dxDrawLine(sx/2+64*bt[2*i-1],i*2-2,sx/2+64*bt[2*(i+1)-1],(i+1)*2-2,colors[2]) | |||
end | |||
end | end | ||
end | end | ||
Revision as of 14:38, 15 December 2013
This function gets the wave form data for an audio stream which is a table of floats representing the current audio frame as a wave. This allows things like visualisations.
If the element is a player, this function will use the players voice.
Syntax
table getSoundWaveData ( element sound, int iSamples )
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.
Returns
Returns a table of iSamples/2 floats representing the current audio frame waveform. Returns false if the sound is not playing yet or hasn't buffered in the case of streams.
Example
This code creates vertical waveform of sound in center of screen from top to bottom. [1] Key 9 - start, key 0 - stop.
Click to collapse [-]
Clientlocal handl = nil
local sx,_ = guiGetScreenSize()
local colors = { tocolor(255,0,0),tocolor(0,255,0) }
function clientRenderFunc()
if(handl) then
local bt = getSoundWaveData(handl,512)
dxDrawRectangle(sx/2,0,1,256,tocolor(255,255,255,127))
for i=1,127 do
dxDrawLine(sx/2+64*bt[2*i],i*2-1,sx/2+64*bt[2*(i+1)],(i+1)*2-1,colors[1])
dxDrawLine(sx/2+64*bt[2*i-1],i*2-2,sx/2+64*bt[2*(i+1)-1],(i+1)*2-2,colors[2])
end
end
end
function musicStartFunc()
if(not handl) then
handl = playSound('btr.mp3')
addEventHandler("onClientRender",root,clientRenderFunc)
end
end
function musicStopFunc()
if(handl) then
stopSound(handl)
handl = nil
removeEventHandler("onClientRender",root,clientRenderFunc)
end
end
bindKey("9","down",musicStartFunc)
bindKey("0","down",musicStopFunc)
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