Vocal range recognition plugin effect- pls help

Thread moved to Audio Processing from Adding Features to Audacity - waxcylinder

good day everyone…

i am doing my thesis on adding up plugin effect for audacity which is the vocal range recognition. by now i would like to start my implementation but i don’t know where and how to start.

could anyone help me here??..i really need help by now. pleeaaasseee

thank you and regards.


You asked about this back in August. Audacity recognises pitch by autocorrelation. The functions we use in the source code are here:

and how they are used in Analyze > Plot Spectrum are here:

  • Are you a C++ programmer ? You may not get very far otherwise…

  • What does the plug-in measure exactly - the highest and lowest note in a piece? (have you looked at the Spectrum view in Audacity’s Track Dropdown Menu)? Or are you trying to establish a “key” and tune to it? What is the purpose or “use case” for doing this measurement? Is the plug-in to be used for a solo voice line?

  • Probably you should examine our source code as above and ask your tutor to help you draw up a concise summary of your proposal answering the above questions. Then subscribe to our developers mailing list and ask for advice.




i got the source codes from the links you gave, i’ll study it first for now.

i am more on C++ but as far as my research in audacity is concerned, i found out that you use NYQUIST proglang. is it necessary to use this language in adding up feature in audacity. if that so, i am willing to learn it.

the plug-in will measure the vocal range of a person (soprano, alto, bass, etc…) The plug-in is to be used by a solo voice line only.

for more answers in some questions, i’ll just give it next time.

thanks a lot

It depends what you mean by “plug-in” - the effects built in to Audacity are LADSPA:

although the plug-ins distributed in Audacity’s “Plug-Ins” folder are mostly Nyquist. Audacity will accept third-party LADSPA and Nyquist plug-ins, plus a limited version of VST on Windows and Mac. I’m not sure that Nyquist can do pitch detection (and Audacity Nyquist is itself more limited than pure Nyquist) which is why I did not mention it. But you could join the Nyquist mailing list and ask:

I noticed there are two experimental pieces of code in Audacity that are defined out, but you should take a look at them: EXPERIMENTAL_FIND_NOTES and EXPERIMENTAL_VOCAL_STUDIO. The defines are in Experimental.h (where you would turn them on if you were compiling Audacity), but search the code to find what that code does.



It is an added feature that detects vocal range with the raw voice as the input-- do you think this is possible for audacity?
What language should I use for this kind of effect?

Thanks for the resources you’ve given, it will really help as i start my project. I am hoping i could complete this one until February next year.

If you mean you are detecting pitch from a live vocal recording as an effect, Audacity will not support this with its current architecture - there are no real-time effects. You can run an effect on a pre-existing track. I would definitely compile Audacity with EXPERIMENTAL_FIND_NOTES defined. This gives you a new Find Notes view with notes quantisation in the Track DropDown Menu (that is, it is not an effect, so might work in real time as a recording, but with far more delay than recording with a waveform view). That code is very rough. See if it’s extensible for what you want to do.

Also look at the Pitch (EAC) view in the Track Menu - how close is that to what you want to do? Subscribe to the developers’ list and send us an e-mail when you have your proposal and an idea where it might best fit into Audacity. If you aren’t sure how it fits in, give us a number of options for different levels of functionality in your idea, and we’ll see what might be best.

If you show us that you compiled Audacity, and looked at its code and how its current features work, that will help.



Ah ok… thanks for the idea. What about a recorded voice as an input, can this be considered as an pre-existing track?

Anyway, I may ask, how and where can i compile the codes?

thanks a lot.

Yes, once the track has been recorded and is static, an effect can be run on it.

Anyway, I may ask, how and where can i compile the codes?

Check out the latest Beta/development code here:


If you are on Windows, compile.txt in the “win” folder in the source code has the most up-to-date


Ok. I’ll just download the codes.

About the input, i’ve changed to a pre-recorded track.

Wat do you mean i’ll compile it to “win” folder?

Sorry if i asked too much.

You don’t compile to “win” folder. What I was saying is that if you are on Windows, the easiest way to find out how to compile Audacity is to read compile.txt inside the “win” folder in the source code, that is, this file:


Thank you. I got it already.

I’ll study first everything and I will just update every now and then about my project.

Maybe I still encounter questions in my further study.

Thanks a lot. Regards.