Page 1 of 1

Wolf Spectrum - Free spectrogram plugin (LV2/VST/Jack)

Posted: Mon Apr 15, 2019 11:40 pm
by pdesaulniers
Screenshot.png
Screenshot.png (98.79 KiB) Viewed 1528 times
Wolf Spectrum is a free spectrogram plugin. It can be used to analyze the frequency content of signals over time. It is meant to be a FLOSS alternative to software like Baudline and the spectrogram in Renoise.

It has already been featured in the unfa livestreams a few time, but this is the first official announcement :)

Right now, it supports vertical scrolling, logarithmic/linear frequency scaling, and configurable block sizes. I plan on adding a few features in future releases, such as horizontal scrolling and the ability to show the frequency at the cursor's position.

To install the plugin, follow the instructions in the README: https://github.com/pdesaulniers/wolf-spectrum

If you encounter some issues with the plugin, please report them. Feature requests are also welcome :)

Thanks!

Re: Wolf Spectrum - Free spectrogram plugin (LV2/VST/Jack)

Posted: Tue Apr 16, 2019 3:28 am
by Michael Willis
Great work! The first thing I looked for in your source code was the FFT implementation. I see you're using a library called kissfft; could you elaborate on how you made your choice? Dragonfly Reverb currently uses Project Nayuki's FFT, but admittedly I didn't spend much time looking; it's just that building FFTW was more complicated than I wanted to deal with, and soon thereafter I found the Nayuki FFT library.

Re: Wolf Spectrum - Free spectrogram plugin (LV2/VST/Jack)

Posted: Tue Apr 16, 2019 9:08 am
by Kott
Ha! I'm just found your plugin today, while lurking for native spectrum vst ))
It works nicely.

Re: Wolf Spectrum - Free spectrogram plugin (LV2/VST/Jack)

Posted: Tue Apr 16, 2019 11:56 pm
by pdesaulniers
Michael Willis wrote:I see you're using a library called kissfft; could you elaborate on how you made your choice?
I went with kissfft instead of FFTW, because it is lighter and easier to integrate.

As for kissfft vs. Project Nayuki's FFT, it seems like they are fairly similar at first glance. I suppose both would've been fine to use in this plugin.

However, I see that Project Nayuki's FFT allocates memory dynamically and frees it at every Fft_transform call: https://github.com/michaelwillis/dragon ... /fft.c#L65

For improving real-time performance, I guess it would be better to reuse the buffers, instead of recreating them every time. I don't know if that would make a huge difference in practice, though :)

Re: Wolf Spectrum - Free spectrogram plugin (LV2/VST/Jack)

Posted: Wed Apr 17, 2019 8:30 am
by sadko4u
LSP Plugins do use their own SIMD-optimized FFT.
Here's a part of code for example:
https://github.com/sadko4u/lsp-plugins/ ... tive/fft.h - native implementation
https://github.com/sadko4u/lsp-plugins/ ... utterfly.h - butterfly implementation for x86 SSE
https://github.com/sadko4u/lsp-plugins/ ... utterfly.h - butterfly implementation for ARM NEON

Re: Wolf Spectrum - Free spectrogram plugin (LV2/VST/Jack)

Posted: Thu May 02, 2019 3:47 am
by Michael Willis
pdesaulniers wrote:As for kissfft vs. Project Nayuki's FFT
I just tried switching to kissfft and can confirm that it is significantly faster than Nayuki FFT. I didn't profile it, but it seems like it is around 10x faster.

Edit: I'm probably exaggerating about 10x, but my spectrogram indeed renderers noticeably faster.