HU/getSoundFFTData: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 8: Line 8:
{{OOP||[[sound]]:getFFTData}}
{{OOP||[[sound]]:getFFTData}}
===Kötelező Argumentumok===  
===Kötelező Argumentumok===  
*'''sound:''' egy hangelem, amelyet [[playSound]] vagy [[playSound3D]] segítségével hoztak létre. Valamint a stream is támogatott.
*'''sound:''' egy hangelem, amelyet a [[playSound]] vagy a [[playSound3D]] segítségével hoztak létre. Valamint a stream is támogatott.
*'''iSamples:''' megengedett minták 256, 512, 1024, 2048, 4096, 8192 és 16384.
*'''iSamples:''' megengedett minták 256, 512, 1024, 2048, 4096, 8192 és 16384.



Revision as of 14:29, 17 July 2018

Ez a funkció megkapja a gyors Fourier transzformációt, és létrehoz egy táblázatot az aktuális audiokeret összes frekvenciájáról, amely a spektrum mélyhangján kezdődik, majd halad a középtől a magas értékekig. Ez lehetővé teszi például a vizualizálást.

Szintaxis

table getSoundFFTData ( element sound, int iSamples [, int iBands = 0 ] )

OOP Syntax Help! I don't understand this!

Method: sound:getFFTData(...)


Kötelező Argumentumok

  • sound: egy hangelem, amelyet a playSound vagy a playSound3D segítségével hoztak létre. Valamint a stream is támogatott.
  • iSamples: megengedett minták 256, 512, 1024, 2048, 4096, 8192 és 16384.

Tetszőleges Argumentumok

  • 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.

Vissza adott érték

Returns a table of iSamples/2 (or iBands 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 [-]
Client
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
    end
end
addEventHandler ( "onClientRender", getRootElement(), onSoundPlayRender )

Changelog

Version Description
1.3.2 Added player element to use a players voice

See Also