FFT in RNBO

thomas zalud's icon

Hi everyone! I’ve been working on extending the classic FFT7 tutorial patch from the C74 docs and turning it into something more robust and RNBO-ready. The repository contains two versions: Version 1 – optimized for speed and transient response. Version 2 (v1.7) – a major rewrite where the entire logic lives inside gen~. With v1.7, my main focus was improving how the tracker reacts to monophonic signals (e.g. voice, guitar, synth). The goal was to achieve more stable tracking, reduce jitter/small frequency fluctuations, and get a generally calmer response. I’d really appreciate it if anyone has time to take a look at the code! I’m especially interested in feedback on the overall approach or anything that could be improved. https://github.com/voxuser1/A-Tom-Soundware-Developer-s-Patch-Collection/tree/main/FFT%20Tracker

En Chilada's icon

Very interesting project!

I've been getting really high quality results from doing analyses with this one: https://github.com/jundsp/Fast-Partial-Tracking. It runs in Matlab and/or (with minor adjustments) Octave. There are Python and C++ versions over here: https://github.com/BJCOLAS/fast-partial-tracking.

It would be fantastic to have this in rnbo,

cheers

thomas zalud's icon

Thanks! I’ll look into it.

thomas zalud's icon

I’ve pushed a new experimental version v1.8.1 to GitHub.

This update significantly improves stability and now supports 4-voice polyphony much more reliably.

Key changes:
Anti-Ghosting: Voices are no longer simply muted when they appear too close to a stronger neighbor. Instead, the algorithm shifts subsequent voices up to keep all available slots active.
Bass Bias: Added gentle spectral weighting to favor fundamentals over higher harmonics, reducing octave jumping and jitter.

Feedback is very welcome, especially from people working with FFT or gen~ in RNBO.