You can do a circular-buffer-type thing where you use fluid.bufsines~
to analyze a window and go from there. This is my go-to approach in SP-Tools, and is what sp.sines~
does. Depending on the @fftsettings
this can get heavily skewed by the transient, as you mention, but I find it quite useful still.
This isn’t as relevant for realtime stuff, but for offline/buffer analysis I found that computing the time centroid and then only analyzing the audio before that point gave me much better results. I think I work through (including code examples) in this thread from a while back.
I wonder if maybe combining something with chroma or something could help nail down the fundamental more? I found I used to get really good results from sigmund~
, which I think takes a different approach to that too.
Also, getting a bunch of missing file errors:
go.onepole.hz: go.onepole.hz: operator/abstraction go.onepole.hz not found in gen domain dsp.gen
go.line.ms: go.line.ms: operator/abstraction go.line.ms not found in gen domain dsp.gen
go.ramp2trig: go.ramp2trig: operator/abstraction go.ramp2trig not found in gen domain dsp.gen
go.ramp2trig: go.ramp2trig: operator/abstraction go.ramp2trig not found in gen domain dsp.gen
live.tab: can't find ef-delay-ms-icon.svg
live.tab: can't find ef-delay-beat-icon.svg