RO/getSoundFFTData

From Multi Theft Auto: Wiki
Revision as of 07:50, 2 October 2023 by Hydra (talk | contribs) (→‎Required Arguments)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Această funcție obține datele transformării rapide Fourier pentru un flux audio, care este un tabel de valori float reprezentând cadrul audio curent. Acest lucru permite vizualizări, de exemplu. O transformare Fourier rapidă generează un tabel cu toate frecvențele din cadrul audio curent, care începe de la capătul de jos al spectrului, trecând de la frecvențe medii la cele înalte, în această ordine. În cazul în care întâmpinați probleme, există o resursă de exemplu în depozitul de resurse: Visualiser

Trebuie doar să tastați "startmusic mystreamurl" în consola dvs. și va fi difuzat pe panoul cinematografului de lângă A51. În cazul în care elementul este un jucător, această funcție va folosi vocea jucătorului.

Sintaxă

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

OOP Syntax Help! I don't understand this!

Method: sound:getFFTData(...)


Argumente necesare

  • sound: un element sonor creat cu ajutorul playSound sau playSound3D. De asemenea, sunt acceptate și fluxurile
  • iSamples: Eșantioanele permise sunt 256, 512, 1024, 2048, 4096, 8192 și 16384.

Argumente opționale

  • iBands: opțiunea de post-procesare vă permite să împărțiți eșantioanele în numărul dorit de benzi sau bare, astfel încât, dacă aveți nevoie doar de 5 bare, acest lucru economisește o mulțime de putere de procesare în comparație cu încercarea de a face acest lucru în Lua.

Returnează

Returnează un tabel de iSamples/2 (sau iBands dacă se utilizează iBands) floats reprezentând cadrul audio curent. Returnează false dacă sunetul nu este încă redat sau nu a fost pus în buffer în cazul fluxurilor.

Exemplu

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 )

Actualizări

Version Description
1.3.2 Added player element to use a players voice

Vezi și