export unvoiced frames as 0 frequency
Currently we only export pitch track frames that do have a pitch.
For evaluation purposes, Justin would like all frame values to be exported, presumably with 0 as the pitch when no pitch is detected/annotated.
This sounds possible, but I'm not sure if we should do it. One (weak) argument against it would be that you export something that you do not see in the program.
#1 Updated by Justin Salamon over 5 years ago
I know this is a little out of the blue but I recently had to revisit this issue and wanted to bounce this topic back into everyone's mental space.
For running our evaluation experiments for medleydb we had to add all the missing 0's since mir_eval (and MIREX) expects 0's for silent frames. Eventually we wrote a script to do this "imputation" for all Tony files which worked, but it turned out to be trickier to get right than we initially anticipated.
This issue has now resurfaced when I was contacted by a student using Tony to create f0 annotations (yay!) who is interested in using them for evaluation with mir_eval (again, yay). So basically they're in the same place we were - and I think so will be anyone using Tony + mir_eval for evaluating f0 tracking algorithms, which, hopefully, will be everyone in the near future :)
So, whilst I acknowledge Matthias's concern, I think the stronger argument here is that this is an established enough convention such that a lot of people would find it really useful if Tony did output [timestamp,0] for silent frames. If possible it could be made optional (e.g. via a checkbox in settings), in which case I'd have the default behavior be to yes return zeros, but with the option to not return them if the user so desires.