# getSoundFFTData (Cliente)

> Devolve o espectro de frequências do que o som está tocando agora, para fazer visualizadores.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Função Lua
- **Lado**: Cliente
- **Categoria**: Som
- **URL**: https://wiki.mymp.gg/pt/getSoundFFTData

## Sintaxe

```lua
table|false getSoundFFTData(sound sound, int samples [, int bands = 0])
```

## Parâmetros

| Nome | Tipo | Descrição |
| --- | --- | --- |
| `sound` | `sound` | O elemento `sound`, ou um elemento `dui` para o som do navegador. |
| `samples` | `int` | Quantas amostras analisar: uma potência de 2 entre 256 e 16384. |
| `bands` | `int` | Agrupar o espectro em tantas faixas (até metade de `samples`). 0 devolve o espectro inteiro. *(padrão: `0`)* |

## Retorno

Uma tabela de magnitudes de 0 a 1, ou `false` se os parâmetros não valem ou o som está pausado, terminado ou fora de alcance.

## Exemplo

```lua
local music = playSound("sounds/track.mp3", true)

addEventHandler("onClientRender", root, function()
    local bands = getSoundFFTData(music, 2048, 32)
    if not bands then return end
    for i = 0, 31 do
        local h = math.min(bands[i] * 400, 200)
        dxDrawRectangle(20 + i * 12, 400 - h, 10, h, tocolor(80, 200, 255))
    end
end)
```

### Atenção

A tabela começa no índice 0. Sem `bands`, ela tem `samples / 2 + 1` valores; com `bands`, tem esse número de valores, em faixas que crescem de forma logarítmica.

## Veja também

- [getSoundWaveData (Cliente)](https://wiki.mymp.gg/pt/getSoundWaveData.md): Devolve a forma de onda do que o som acabou de tocar, para desenhar osciloscópios.
- [getSoundLevelData (Cliente)](https://wiki.mymp.gg/pt/getSoundLevelData.md): Devolve o pico de volume de cada canal nos últimos 20 ms do som.
- [getSoundBPM (Cliente)](https://wiki.mymp.gg/pt/getSoundBPM.md): Detecta o andamento do som em batidas por minuto, arredondado para baixo.
