Another question about fiddle. I'd like to be able to distinguish between a signal with a pitch and a signal without a picth. It seems to me that fiddle always outputs its "best guess" no matter how reliable it is.
Actually that's not quite true. fiddle~ doesn't output anything at all from its first outlet unless it's pretty certain a pitch has been found.
Yes, he outputs a pitch from the first outlet when he finds one, but then never outputs anything to tell you that a pitch is no more present. When a new stable pitch is found, it is output through the first outlet, but how do you know whether the first pitch had remained stable untill that moment or if it had stopped existing before? That's why I was looking at the third outlet instead.
However, it does continuously output the first estimated peak location it uses to make its pitch calculation from its third outlet. It will also output 0 as a peak location if it can't find a peak,
Yes but it seems to me it is a bit too "tolerant" in saying he can find a pitch, and I was wondering whether there is a way to set the "tolerance".
With the default fiddle~ settings, it seems to output 0 about 15% of the time, which seems quite a lot to me.
With pure noise as an input? Quite a lot????? IF it is supposed to output 0 when it can't find a pitch, I would expect to output 0 about 90% of the time with pure noise as input!!
Anyhow, I think this is a case of using the wrong tool for the job. Pitch/f0 estimators (PDAs) are designed to find pitch in a signal, not to measure noisiness. There are other tools to measure this
Maybe. The fact is that I do want to find a pitch, but I consider "none" as a possible value, i.e. I want to find the pitch if the signal reasonably has one, and ignore it when it is most probably garbage.
I thought there were two kinds of pitch trackers: those which do have a "none" value, and those which assume a pitch must exist and output their best estimation always. (well and a "fuzzy" third type, which always give both a pitch value and an estimated reliability value).
I don't fully understant to which type fiddle belongs, because on one side, it does distinguish whether he does or not detect a stable pitch, since it only outputs a "cooked" pitch when it becomes stable. However, a new cooked pitch is output (AFAIU) when the pitch changes to a new one (and here I don't understand well what it means, for example what is supposed to happen if the pitch changes very very slowly but continuously...) and this involves some mechanism to deal with vibrato (one more thing I don't understand how it works), so I can't imagine it doesn't detect when a stable pitch stops existing, and I would expect to output this information in some way related to the cooked pitch stuff....... That is, it is like he says "NOW I detect a stable pitch of 57.2 ..... ..... ....and NOW I detect a pitch of 60". And what happened in the meantime????
However I'll look at the documentation other people pointed me to, so I'll probably understand all this a bit better.
I find spectral irregularity to be quite a good noisiness metric,
How do you measure (or define) spectral irregularity?
I may want to use spectral irregularity to estimate whether the signal is non-noisy and then use fiddle to get the pitch when it is supposed to exist; I just thought that nobody better than the pitchtracker itself could tell me how difficult it is for it to find the pitch!
but there are several others. If you are interested in this, perhaps take a look at the libxtract feature extraction library, which comes with PD external that wraps its functionality.
Thank you so much. I'll have a look