Development Topics > Plugin Development

Coding in Vamp and Compiling it..

<< < (2/2)

cannam:
Hazel,

No, the Vamp plugin host does not do any filtering or other DSP preprocessing on the audio data you receive.

I'm not aware of whether there is documentation available for the methods and code used in the Aubio library or not.  You could try its author's PhD thesis (http://aubio.org/phd/) which is quite informative about some of the methods involved, although I'm not sure whether it really covers coding documentation.

If you were using the Aubio library, you could link either dynamically or statically against it -- linking statically would mean you did not need to distribute the library separately, but you would need to build Aubio as a .lib static library.  Alternatively, you could simply draw techniques from it via copy and paste, or use the Aubio code as inspiration.

Note that Aubio is licensed under the GPL, which means that if you draw code from it either by copying it or linking to it, you will need to license your own code under the GPL also (if you publish it), which means providing your source code and properly acknowledging the copyright of the Aubio code, among other things.

I'm not sure that I understand the other question -- it is certainly possible to discriminate on the basis of frequency if your code calculates it, although maintaining a stable frequency estimate (i.e. without artifacts like wild diversions at note onsets) is not all that simple.  That "while" you have should probably be an "if", of course.  The process() function receives a single block of audio each time it is called, so if it can process one block and make a pitch discrimination based on only that block and any prior information it may have, then it can return a feature, perhaps one having a single value that indicates the class of voice (0 for soprano, 1 for tenor or whatever) with an appropriate label.  Check the AmplitudeFollower example plugin for a plugin that returns one single-featured value per process call.  Of course, I'm making an assumption that may not be correct about what your plugin is intended to calculate in terms of returned feature structure.


Chris

haze:
hi,

If vamp doesn't have any filtering or DSP, can i add to the vamp codes on filtering the audio input because I am required to filter the noise first before analyzing the range? Also, where on the codes will I add it, is it still in the process() function or I'll add another function for it.

My sample codes is supposed to be "if" instead of "while", sorry for that.

Thanks.

haze:

--- Quote from: cannam on January 26, 2009, 14:30:13 ---
The process() function receives a single block of audio each time it is called, so if it can process one block and make a pitch discrimination based on only that block and any prior information it may have, then it can return a feature, perhaps one having a single value that indicates the class of voice (0 for soprano, 1 for tenor or whatever) with an appropriate label. 


--- End quote ---

This idea could be considered, if ever, the labels will be in the output() , right?.

haze:
Hi

Would it be possible to add a DSP Application for Vamp Plugin? Specifically filtering of sound signals.

If so, could you help me to do it. This is a part of my undergrad study which I should filter first the sound signals before analyzing the voice ranges.

Thank you.

Hazel

Navigation

[0] Message Index

[*] Previous page

Go to full version