Bug #868
funny candidate pitch track glitches
Status: | Closed | Start date: | 2014-02-04 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | Matthias Mauch | % Done: | 0% | |
Category: | - | |||
Target version: | - |
Description
We observe that very often, the candidate pitch tracks obtained from pYIN are displayed incorrectly (or at least very implausibly) with large short upward bursts.
Why does this happen? Resolve it :)
Screen shot attached.
History
#1 Updated by Matthias Mauch about 10 years ago
- Assignee set to Matthias Mauch
#2 Updated by Matthias Mauch about 10 years ago
- File pyin.dylib added
Much improved now! There still are some glitches, but they also have to do with Tony not knowing how pYIN changes timestamps -- we'll have to take account of that sometime.
I upload a new version of pyin, will soon push to pyin repo as well.
#3 Updated by Chris Cannam about 10 years ago
Did you push your latest changes? I'd like to test.
I notice the code currently in the repo has a nasty case of the unsigned-comparison bug:
https://code.soundsoftware.ac.uk/projects/pyin/repository/entry/LocalCandidatePYIN.cpp#L352
(Comparing an unsigned value against -1 for the loop termination condition. See e.g. http://soundsoftware.ac.uk/c-pitfall-unsigned for more on this subject)
#4 Updated by Matthias Mauch about 10 years ago
I notice the code currently in the repo has a nasty case of the unsigned-comparison bug:
https://code.soundsoftware.ac.uk/projects/pyin/repository/entry/LocalCandidatePYIN.cpp#L352
That was indeed nasty. Made it less nasty. but it's still kinda a hack.
(Comparing an unsigned value against -1 for the loop termination condition. See e.g. http://soundsoftware.ac.uk/c-pitfall-unsigned for more on this subject)
Ok thanks.
I really want to find a more principled solution to the problem of multiple pitch tracks. Haven't yet.
#5 Updated by Justin Salamon about 10 years ago
- File Screen Shot 2014-02-18 at 1.42.36 PM.png added
I was trying out Tony with a real 'test-case' - imagine pYin misses a small bit of melody, creating a discontinuity in the f0 curve, and I want to use Tony to fill in the missing gap, even if it's very small. I just tried doing this, and got the following back (see image attached). Any idea what's going on?
#6 Updated by Justin Salamon about 10 years ago
- File Screen Shot 2014-02-18 at 4.20.07 PM.png added
Also, still some glitches? (see attached)
#7 Updated by Matthias Mauch about 10 years ago
Yes, that's sad but true.
I think there are two things we need to do here:
- get a more principled approach to actually obtaining the candidates -- this is a bit silly to do with pyin as it is, actually, so I will need to think about it more clearly.
- make Tony understand the timestamps that pyin is using (pyin, knowing how YIN uses the spectrum, shifts the timestamps forward to coincide with where the temporal centroid of the YIN analysis is, i.e. one quarter block-size into the frame, and hence also returns them shifted forward... Tony doesn't know that yet).
So this is work for me and Chris respectively, I think. I hope I can work on this soon.
Cheers,
Matthias
#8 Updated by Matthias Mauch about 10 years ago
I think I've done both now, see: https://code.soundsoftware.ac.uk/issues/870
Maybe that needs a review by Chris though...
#9 Updated by Chris Cannam over 4 years ago
- Status changed from New to Closed