PT-BR/getSoundFFTData

From Multi Theft Auto: Wiki
Revision as of 19:12, 15 August 2021 by Alvesvin (talk | contribs) (Created page with "__NOTOC__ {{BR/Funcao cliente}} Essa função obtém os dados de Transformada Rápida de Fourier de uma stream de áudio ao qual é uma tabela representando o quad...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:BR/Funcao cliente

Essa função obtém os dados de Transformada Rápida de Fourier de uma stream de áudio ao qual é uma tabela representando o quadro atual do áudio. Essa função permite a visualização do áudio.

O algorítmo de Transformada Rápida de Fourier gera uma tabela com todas as frequências do quadro atual do áudio começando pelos graves, depois médios e então agudos. Se você tiver algum problema verifique o exemplo localizado no repositório de resources do MTA: Visualizador de áudio.

Basta digitar "startmusic <url-da-stream>" no console e a visualização da música será reproduzida no outdoor do cinema proximo à Area 69. Se o elemento que executar esse comando for um jogador, então essa função usará seu microfone para criar a visualização da stream de áudio.

Sintaxe

table getSoundFFTData ( element audio, int samples [, int bandas = 0 ] )

Sintaxe POO(OOP) Não entendeu o que significa isso?

Método: audio:getFFTData(...)

Argumentos necessários

  • audio: um elemento de áudio criado usando playSound ou playSound3D. Streams também são suportadas.
  • samples: samples permitidos são: 256, 512, 1024, 2048, 4096, 8192 and 16384.

Argumentos opicionais

  • bandas: uma opção de pós-processamento que te permite separar os samples na quantidade de bandas ou barras desejadas. Se você precisa apenas de cinco bandas, utilizar esse argumento economiza bastante poder de processamento se comparado à tentativa de fazer isso em Lua.

Retorno

Retorna uma tabela de samples/2 (ou dividido por bandas caso bandas forem usadas) floats representando o quadro atual do áudio. Retorna false se o áudio ainda não está sendo reproduzido ou ainda não foi carregado no caso de streams.

Exemplo

Click to collapse [-]
Client
local audio = playSound ( "audio.wav" )

function onSoundPlayRender ( )
    if ( audio ) then
        local audioFFT = getSoundFFTData ( audio, 2048, 256 )
	if ( audioFFT ) then
            for i = 0, 255 do -- Os dados começam no índice 0
                dxDrawRectangle ( i, 0, 1, math.sqrt ( audioFFT[i] ) * 256 )
            end
        end
    end
end
addEventHandler ( "onClientRender", root, onSoundPlayRender )

Changelog

Version Description
1.3.2 Added player element to use a players voice

Veja também