Exposed the current snapshot of the audio frequency spectrum to the scripting interface and created a small sample as a showcase (sound on!).
The 50 available frequency bins are randomly assigned to 25^2 cubes, and the y-positions are modulated according to the respective amplitudes. Frequencies and amplitudes are log-spaced.
@troy_s Speaking of Beethoven and AT, I also love the picture hidden in one of the Doom 2016 soundtrack spectrograms. The accompanying talk is gold.
@TonyVladusich I honestly don't know! But IIRC, the footprint of FFTW is relatively big. I searched for something more isolated and small (like a snippet) instead of a full-blown library. I have to check the performance, though. I’m relaxed since my mixing thread has so much time to spare, but if performance becomes an issue, I’ll probably resort to something like FFTW because of SSE/AVX intrinsics and all that good stuff. :) Thanks!
@troy_s Exactly. The visualization of it is close to what all the more complex pitch adjustment tools have (Melodyne etc.).
@troy_s Not in the context of audio. That's a nifty tip; I'll play around with it when I have the frequency domain data at hand. I can only imagine that it maps very well to 3D visualizations.
@troy_s I also used the frequency domain info for some simplistic beat detection. But the primary use case was frequency binning and mapping to voxel shapes. Can be used to create fun visual thingies! In-game bar visualizers are just scratching the surface when exposed via a scripting interface
Does someone know a permissively licensed, reliable, and reasonably fast 1D FFT implementation in C - preferably just a single header?
I would love the get my audio visualizer back into my new custom sound system. All my findings so far can merely be described as "diverse".
I watched almost all videos by @TodePond in one go. I can't recommend them enough! Very mesmerizing take on creative coding and content creation.
The first thing in my head this morning was: "Welcome back to the SandPond Saga". I guess tomorrow it'll be "Sorry to interrupt". Welp, let's see. :)