Feature #887

Allow user to set overall pitch range.

Added by Rachel Bittner about 10 years ago. Updated about 10 years ago.

Status:NewStart date:2014-03-05
Priority:NormalDue date:
Assignee:Matthias Mauch% 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.

MusicDelta_LatinJazz_Premix_04.wav - flute 11.5 MB, downloaded 6 times Rachel Bittner, 2014-03-05 01:06 AM

History

#1 Updated by Chris Cannam about 10 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 about 10 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 about 10 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 about 10 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 about 10 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...

Also available in: Atom PDF