{"repo":"tavurth/godot-fft","free":true,"listed":false,"github":"https://github.com/tavurth/godot-fft","clone":"git clone https://github.com/tavurth/godot-fft.git","description":"Fast Fourier Transform in GDScript","language":"GDScript","stars":66,"topics":["godot","fast-fourier-transform","fft","godotengine"],"license":"MIT","category":"game-templates","readme_excerpt":"Table of Contents 1. Installation 2. Usage 3. Notes 4. Performance 5. Reference When to use Pure GDScript, no dependencies, works everywhere. If you need performance and already use NumDot, use nd.fft() instead. Installation 1. Install addon 2. Enable plugin from project settings The singleton FFT is autoloaded at project start. Usage Input can be a plain Array of floats or a PackedFloat64Array (interleaved [re0, im0, re1, im1, ...] ). Output is always PackedFloat64Array . Notes fft and ifft modify the input PackedFloat64Array in-place for speed. Pass a duplicate if you need the original preserved: Thread safe. Twiddle factor cache uses a mutex on first population per size, after which reads are lock-free. Callers must ensure input arrays are not shared across threads. Performance For per-frame use at 60fps, N It demonstrates FFT-based frequency analysis of a playing audio stream, rendered as a bar spectrum with log-spaced frequency bins and dB scaling. How it works - AudioPlayer decodes the WAV stream to a mono PCM buffer and slices a sample window aligned to the current playback position, compensating for hardware output latency - demo.gd runs the FFT each frame, maps bins to log-spaced frequency bands, converts magnitude to dB, and smooths the result over time - Spectrum renders the smoothed values as colored bars scaled to the control's size Running the demo 1. Open /demo/demo.tscn 2. Assign a WAV file (PCM, any sample rate) to the AudioStreamPlayer node 3. Run the scene ","default_branch":null,"files":null,"tree":[],"storefront":"/r/tavurth","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tavurth/godot-fft/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}