Thierry Rochebois' pitch tracking method

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

These are excerpted drawings from Thierry Rochebois' french patent on pitch tracking that was used in Canam's Ongaku. As canam went bankrupt the fees for this patent had not been paid and it is now public domain.

The algo consists in two blocks :
- the first block takes the input samples and create a fifo list of maximas.
- the second block evaluates the periodicity of the signal based on the information in this list.

The first step of the first block consist in a lowpass filter to limit the number of maximas and to reject noise. A 50Hz or 60Hz rejecting filter can be added to prevent some problems.

Based on this signal, the first block detects maximas:

Image

The amplitudes and "dates" of the maxima are interpolated by parabolic interpolation. (for convenience the dates are integers in the examples but they must be floats in the algo to obtain precise pitch detection).
They are put in the fifo list :

Image

Image

for each maximum, a "force" coefficient is calculated, it corresponds to the amplitude difference between the maximum and surrounding maxima. A "strong" maximum (for example 4) is not likely to disappear from one cycle to the other, a weak one can easily disappear because the maxima can "fuse" together (here 6 and 7).

Now, we are finished with the per-sample block that creates the maxima list. We switch to the pitch evaluation block.

Based on the last say 10 maxima, we select the stronger one (based on the force parameter).
Image
Image

This is the REFERENCE maximum.

Now, based on this REFERENCE maximum, we are looking for CANDIDATES. Many candidates will be evaluated and the best will be elected...

FOR EACH CANDIDATE :

Candidates can be pre-selected based on their amplitude compared to the REFERENCE :

Image

Image

Two maxima sublists are extracted from the REFERENCE and the CANDIDATE. The dates are set relative to the reference and to the candidate.
Image
Image

The two lists are merged and a flag describes the source (Reference or Candidate).
Image

Now, maxima are processed by pairs:
Image

A "distance" evaluation is performed
for each pair of maxima we accumulate the distance evaluator :
- When the sources (RC or CR) of the pair are different we add the absolute difference of their amplitudes.
- When the sources are equal (CC or RR) we add the forces of the two maxima.

Based on the distances of the candidates, the best candidate is elected. The difference of the dates of the elected candidate and of the reference is the period of the signal.

Here it is.

As far as I remember many other things were implemented in Ongaku to prevent octaviation. This patent only describes the basics.

Paul

PS I will not be online next week.
Science is the belief in the ignorance of the experts.
Richard P. F
EYNMAN

Post

I tag this and many, many thanks for posting it.

Post

thx Paul for this. It looks like a good algo, and an excellent starting place for further work. It reminds me of the 'cancelling circles' method used in another paper, but this seems to be of a higher calibre :)

DSP
Image

Post

I have a few spare minutes for a short note :?
The force parameter of the elected candidate can be compared to a threshold level to discriminate noise from a periodic signal. It is interesting when processing voice.
Science is the belief in the ignorance of the experts.
Richard P. F
EYNMAN

Post

Paul, the Image after
FOR EACH CANDIDATE :

Candidates can be pre-selected based on their amplitude compared to the REFERENCE :
is unavailable..
ref: http://img213.imageshack.us/img213/3797/fig6a3jz.jpg

Anychance of a reupload?

thx
DSP
Image

Post

duncanparsons wrote:Paul, the Image after
FOR EACH CANDIDATE :

Candidates can be pre-selected based on their amplitude compared to the REFERENCE :
is unavailable..
ref: http://img213.imageshack.us/img213/3797/fig6a3jz.jpg

Anychance of a reupload?

thx
DSP
It seems to work again today :?: :!:
Science is the belief in the ignorance of the experts.
Richard P. F
EYNMAN

Post

Hmm, must have been servers playing up! I've saved the page now, so that should keep me off the streets for a day or two :)

DSP
Image

Post Reply

Return to “DSP and Plugin Development”