Feature #887
Allow user to set overall pitch range.
Status: | New | Start date: | 2014-03-05 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | % Done: | 0% | ||
Category: | - | |||
Target version: | - |
Description
I suggest this in light of the attached test example (which is of a flute) where the pitch range is almost out of the range allowed by Tony. (ex. the last note in the excerpt is completely out of the range). I think this is more of a problem for high instruments than for low.
History
#1
Updated by Chris Cannam almost 11 years ago
- Assignee set to Matthias Mauch
Matthias, how is the maximum frequency determined?
I've seen some suspicious-looking hardcoded values (like maxValue = 500) in the pYIN code but I think those are output hints rather than determining an actual maximum. Certainly in this flute example some of the correct results are above 500Hz.
#2
Updated by Matthias Mauch almost 11 years ago
Chris Cannam wrote:
Matthias, how is the maximum frequency determined?
I've seen some suspicious-looking hardcoded values (like maxValue = 500) in the pYIN code but I think those are output hints rather than determining an actual maximum. Certainly in this flute example some of the correct results are above 500Hz.
I admit that is confusing, and could be solved better. Apart from where it is defined (which I should improve), the main problem is that I have to define an HMM in which a greater frequency range is costly. Before knowing of the flute case, I modelled pitches from 55Hz and then four octaves, i.e. up to 880 Hz. Now I added another octave (but just saw that even that doesn't capture the last flute note (it's > 1600Hz).
Rachel, what is the frequency range you will need? I will then adapt PYIN.
M
#3
Updated by Rachel Bittner almost 11 years ago
I see the issue with having too large of a pitch range from a computation side. It's for that reason I suggested selecting a range, or a max value that could keep the "total number" of pitches possible constant, but slide possible pitch range up and down. So in the flute case, something like 200Hz - 3000Hz would suffice. So, if that's possible, it seems like a better solution than extending the pitch range. However if it's not, I think capping at 4000Hz would cover all of our cases.
#4
Updated by Matthias Mauch almost 11 years ago
Rachel Bittner wrote:
I see the issue with having too large of a pitch range from a computation side. It's for that reason I suggested selecting a range, or a max value that could keep the "total number" of pitches possible constant, but slide possible pitch range up and down. So in the flute case, something like 200Hz - 3000Hz would suffice. So, if that's possible, it seems like a better solution than extending the pitch range. However if it's not, I think capping at 4000Hz would cover all of our cases.
Great, thanks. And at the low end? Eb2, ie. 77.782 Hz, or A2 (110Hz)? Maybe we can get away with a single sufficient range.
(Also, what's the longest piece you're expecting?)
#5
Updated by Rachel Bittner almost 11 years ago
I'd opt for Eb2 on the low end.
For the longest duration...hard to say. At the moment it's around 5 min. Hopefully there won't be anything longer...