I have been developing an "IMMF0Salience" plug-in that provides an estimate of fundamental frequencies (F0) for audio signals, which can be found at
https://github.com/wslihgt/IMMF0salience. It is still work in progress, but can already be used in some cases.
I wanted to mention in this forum that, recently, I found out the solution for an issue that was bugging me for all this time: the algorithm I developed is based on some matrix processing called "Non-negative Matrix Factorization" (NMF), meaning that it operates most meaningfully when I can process several frames in one go. The architecture of the framework for Vamp-Plugins is appropriate for frame by frame processing, and matrix-like processing is possible, but somewhat tricky. It took me a while, but I could at last make that work, and the solution is on this branch:
https://github.com/wslihgt/IMMF0salience/tree/matrixProcessing.
I describe in more details how I do this, and also the process that led me to this solution on my "blog":
http://durrieu.ch/wordpress/?p=269.
To put it in a nutshell: I did not really understand how the
SampleType and the
SampleRate attributes for the
OutputDescriptor worked, at least not from the documentation. Digging in some other plug-in, I found the correct combination, and that actually helped me understand what the documentation was describing... Don't get me wrong: I do not say the documentation is bad or missing something, but rather that some more examples (or tutorials) would have helped me to figure that out easier.
I hope this little piece of information may help others to develop such plug-ins! Comments are welcome, of course.
Cheers,
Jean-Louis