Pitch detection human vocals - speaking & singing - pitch tracker vor Vaudio Gist


im doing a small Experiment for vocal notations and need some help.

Its real time notation of speaking and singing.
Basically trying to Move a Circle between -1 to +1 on Y-Axis depending on the Voices Pitch.
So limited to ~37,6831Hz - 1495,5576Hz as suggested by other software.

Ive tried the Pitch Tracker Contribution but it will only detect very clear notes. No speaking. Singing works but its very good for instruments. ( Its Vaudio Version is not working for me )

Now im trying to use the VAudio Gist node but im confused by its output.
If its based on this it should work in a similar way like the pitch Tracker Contribution: https://github.com/adamstark/Gist

The OfxGist Version of this can Limit Min and Max Input Fequency and will Output pYIN Pitch Method Pitch. Resulting in a -1 if its not accurate. Its working very well for Vocals
tested it here : https://code.soundsoftware.ac.uk/projects/tony

Here is a Patch Screeny of what im trying to do:

Heres the patch

Gist VocalPitch.v4p (32.7 KB)

Is using the Vaudio Gist Version possible to get less jittery results?
How can i Filter the incoming Audio? Limit Incoming Spectrum?
How can i Ignore inaccurate Pitch Results or define better rules for ignoring its Output?
Frequency Difference, or RMS does not work that well for this…

This application works really accurate and seems to be based on the same Pitch detection. What am i doing wrong :) My main Problem is that when ur speaking results are very Random. I know that this makes somewhat sense but i need a way of filtering out results that appear inaccurate. Short Peaks while talking for example…

1 Like

It appears that consonants can create high pitch and high DB Level frequencies, but they are very short.
How would i filter these short but energetic inputs without losing overall accuracy…
Limiting now 82Hz to 1047Hz but still intense peaks in higher ranges…

to filter out frequencies that you don’t want in the pitch tracker use a bandpass filter, or a lowpass + highpass filter before the pitch detection.

any half decent vst equalizer can do that. also the Filter node would work, but it doesn’t have frequency settings in Hz.

slightly sidetracked: @tonfilm what is the units on the filter if not in Hz?

there is no exact linear relation but roughly 0…20kHz. you can always turn on resonance to self-oscillation and check with a spectrum analyzer where you are at.

I guess a boring filter with cut off in Hz would be a good learning project in VL

go ahead, the internet should have all the knowledge :)
vaudio comes with a template for VL. btw. have to check whether it still runs with latest release candidate.

the frequency pin IS in Hz. otherwise I couldn’t have done this:



the Vaudio filter node has a frequency pin with a audio in - how do i input the fequency low & high i want to filter?
Dont really understand how the node works…

@Tonfilm Dont really want to use a vst, wanted to use this to try out the Vaudio pack a bit more…

the filter has also a frequency offset pin which is a number and it’s in Hz. I used bandpass with transistor ladder so I could have narrow “samples” on each note I cared about (in my case 7 octaves, 84 notes so 84 filters + one low pass below and one high pass above to help filter out low- and high broad spectral voices leaking into the range I’m interested in like kickdrum, hihats or claps)
of course if you want gist involved you could just have 2 filters for your range, a high pass first to filter out the unwanted low frequencies and a low pass second to filter out unwanted high frequencies

oh, forgot that i changed that some time ago… i remember it’s not perfectly accurate, but good enough for most scenarios.

as microdee said, have two in series. one lowpass and one highpass.

one of the main strengths of VAudio is VST integration, put a VST dll besides your patch and set it’s path in the VSTHost node. VAudio has only the very basic audio processing nodes because you can download anything as a VST. no need for me or anyone to re-write algorithms that have been written 100 times before.

in your case i’d recommend the ReaEQ from here: REAPER | ReaPlugs

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.