ES/getSoundFFTData

From Multi Theft Auto: Wiki
Revision as of 05:29, 4 January 2014 by DiegoxxDDD (talk | contribs) (Created page with "__NOTOC__ {{Client function}} Esta función obtiene flujos de audio de un sonido y los transforma a tabla de números decimales que representan la trama de audio actual. Esto pe...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Esta función obtiene flujos de audio de un sonido y los transforma a tabla de números decimales que representan la trama de audio actual. Esto permite que cosas como las visualizaciones.

Genera una tabla de todas las frecuencias de la trama de audio actual, que se inicia en el extremo bajo del espectro de frecuencias, medias y altas en ese orden.

En caso de tener algún problema existe un recurso que puede servir como ejemplo: Visualiser

Sólo escribe "startmusic mystreamurl" en la consola y lo reproducirá en la cartelera de cine cerca del Área 51 (drvin_screen).

Si el elemento es un jugador, esta función utilizará la voz jugadores.

Sintaxis

table getSoundFFTData (element Sonido, int Muestras [, int Bandas = 0])

Argumentos obligatorios

  • Sonido: Un sonido que se creó utilizando las funciones playSound o playSound3D.
  • Muestras: Las muestras que utilizara la función para crear la tabla. Las muestras permitidas son 256, 512, 1024, 2048, 4096, 8192 y 16384.

Argumentos opcionales

  • Bandas: La cantidad de bandas o barras a las cuales las muestras de van a dividir. Si sólo se necesitan 5 barras esto ahorra una gran cantidad de energía del CPU en comparación con tratar de hacerlo con 500 barras.

Devoluciones

Devuelve una tabla de Muestras/2 (o Bandas - 1 si son utilizadas) con números decimales representando la trama de audio actual. Devuelve false si el sonido no se está reproduciendo o no hay suficiente información en buffer en el caso de corrientes.

Ejemplo

Este ejemplo hace una visualización simple en el centro superior de la pantalla:

Click to collapse [-]
Cliente
function ReproducirMusica ()
	Musica = playSound ("Musica.mp3", true) -- Reproducir la musica
	addEventHandler ("onClientRender", getRootElement (), Visualizacion) -- Activar la funcion de Visualizacion
end
addEventHandler ("onClientResourceStart", resourceRoot, ReproducirMusica)


local PantallaX = guiGetScreenSize () -- Obtener la resolucion X de la pantalla
function Visualizacion () -- Funcion de Visualizacion
	FFT = getSoundFFTData (Musica, 4096, 21) -- Obtener la tabla en 4096 muestras y 20 barras (la funcion te da una barra menos)
	for X = 0, 20 do -- Establecer que X vale de 0 a 20 (un numero para cada barra) simultaneamente
		FFT [X] = math.sqrt (FFT [X]/6)*128 -- Ajustar las barras para que no se hagan muy largas
		if FFT [X] > 13 then FFT [X] = 13 end -- Limitar las barras a que se estiren un maximo de 13 pixeles
		if FFT [X] < 1 then FFT [X] = 1 end -- Establecer que minimo tengan un pixel de altura
		dxDrawRectangle (PantallaX/2 + X*10 - 98, 0, 5, FFT [X], tocolor (0, 255, 0)) -- Dibujar el rectangulo que representa las barras y ajustarlas a la pantalla
	end
end

Cambios

Version Description
1.3.2 Agregado el elemento jugador para usar la voz de los jugadores

Vea también