2019-04-15 20:49:41 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-07-06 16:08:05 +08:00
<class name= "AudioEffectSpectrumAnalyzer" inherits= "AudioEffect" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2019-04-15 20:49:41 +08:00
<brief_description >
2021-05-13 08:30:34 +08:00
Audio effect that can be used for real-time audio visualizations.
2019-04-15 20:49:41 +08:00
</brief_description>
<description >
2021-05-13 08:30:34 +08:00
This audio effect does not affect sound output, but can be used for real-time audio visualizations.
2024-04-23 07:41:38 +08:00
This resource configures an [AudioEffectSpectrumAnalyzerInstance], which performs the actual analysis at runtime. An instance can be acquired with [method AudioServer.get_bus_effect_instance].
2021-05-13 08:30:34 +08:00
See also [AudioStreamGenerator] for procedurally generating sounds.
2019-04-15 20:49:41 +08:00
</description>
<tutorials >
2024-03-25 09:20:59 +08:00
<link title= "Audio Spectrum Visualizer Demo" > https://godotengine.org/asset-library/asset/2762</link>
2019-04-15 20:49:41 +08:00
</tutorials>
<members >
2019-06-29 18:38:01 +08:00
<member name= "buffer_length" type= "float" setter= "set_buffer_length" getter= "get_buffer_length" default= "2.0" >
2021-05-13 08:30:34 +08:00
The length of the buffer to keep (in seconds). Higher values keep data around for longer, but require more memory.
2019-04-15 20:49:41 +08:00
</member>
2021-05-13 08:42:49 +08:00
<member name= "fft_size" type= "int" setter= "set_fft_size" getter= "get_fft_size" enum= "AudioEffectSpectrumAnalyzer.FFTSize" default= "2" >
2021-05-13 08:30:34 +08:00
The size of the [url=https://en.wikipedia.org/wiki/Fast_Fourier_transform]Fast Fourier transform[/url] buffer. Higher values smooth out the spectrum analysis over time, but have greater latency. The effects of this higher latency are especially noticeable with sudden amplitude changes.
2019-04-15 20:49:41 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "tap_back_pos" type= "float" setter= "set_tap_back_pos" getter= "get_tap_back_pos" default= "0.01" >
2019-04-15 20:49:41 +08:00
</member>
</members>
<constants >
2021-05-13 08:42:49 +08:00
<constant name= "FFT_SIZE_256" value= "0" enum= "FFTSize" >
2021-05-13 08:30:34 +08:00
Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time.
2019-04-19 17:21:09 +08:00
</constant>
2021-05-13 08:42:49 +08:00
<constant name= "FFT_SIZE_512" value= "1" enum= "FFTSize" >
2021-05-13 08:30:34 +08:00
Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but less stable over time.
2019-04-19 17:21:09 +08:00
</constant>
2021-05-13 08:42:49 +08:00
<constant name= "FFT_SIZE_1024" value= "2" enum= "FFTSize" >
2021-05-13 08:30:34 +08:00
Use a buffer of 1024 samples for the Fast Fourier transform. This is a compromise between latency and stability over time.
2019-04-19 17:21:09 +08:00
</constant>
2021-05-13 08:42:49 +08:00
<constant name= "FFT_SIZE_2048" value= "3" enum= "FFTSize" >
2021-05-13 08:30:34 +08:00
Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time.
2019-04-19 17:21:09 +08:00
</constant>
2021-05-13 08:42:49 +08:00
<constant name= "FFT_SIZE_4096" value= "4" enum= "FFTSize" >
2021-05-13 08:30:34 +08:00
Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time.
2019-04-19 17:21:09 +08:00
</constant>
2021-05-13 08:42:49 +08:00
<constant name= "FFT_SIZE_MAX" value= "5" enum= "FFTSize" >
Represents the size of the [enum FFTSize] enum.
2019-04-19 17:21:09 +08:00
</constant>
2019-04-15 20:49:41 +08:00
</constants>
</class>