Category Archives: c++

Custom ICE Node: Wave To Spectrum

It’s been something that I wanted to achieve for a quite a while, and finally got the right mix and enough to get it to work. Picking a WAVe file, get the spectrum decomposition of it (using a Fast Fourier Transform library named KISS FFT) and finally wrap the whole thing into a Custom ICE Node so that I could use it to drive particles.

Here is a few trial, one using a typical spectrum bars, and the other one using spectrum information to drive strands and deformation.

I’ve also made a tutorial on how to use the plug-in:

And finally here is a screenshot of the ICE Tree (there is a smaller ICE Tree before that that sets for each point its frequency, a normalized value between 0 and 1 covering the full frequency range from the audio file):

wavespectrum_commented

Scene is available for download: spectrumBars scene.

I am not an expert in C++ nor in Softimage Development, so there is sure some room for improvement! The code is available just for that 🙂 You can browse and fork it on Github: https://github.com/claudevervoort-perso/xsi-audio-spectrum. The DLL is also available on GitHub.