# Tag Info

10

I've never seen the word "Formula" with "AMDF". My understanding of the definition of AMDF is $$Q_x[k,n_0] \triangleq \frac{1}{N} \sum\limits_{n=0}^{N-1} \Big| x[n+n_0] - x[n+n_0+k] \Big|$$ $n_0$ is the neighborhood of interest in $x[n]$. Note that you are summing up only non-negative terms. So $Q_x[k,n_0] \ge 0$. We call "$k$" the "lag". clearly if ...

10

This is what we call in the pitch-detection biz, the "octave problem". First of all, I would change the AMDF to ASDF. And I would not reduce the window size as the lag increases. (Also, I am changing notation to what I consider to be more conventional. "$x[n]$" is a discrete-time signal.) The Average Squared Difference Function (ASDF) of $x[n]$ in the ...

9

If you really insist on using FFT (rather than parametric methods, which wouldn't suffer from time/frequency trade-offs), you can fake a much better resolution by using the phase information to recover the instantaneous frequency for each FFT bin. Partials can then be detected by looking for plateaus in the function giving instantaneous frequency as a ...

9

"Is there a way to measure frequency (detect pitch) better than FFT, that is, with better resolution in less acquisition time?" yes there is. or are. there are multiple better ways to do musical pitch detection in real time that are far, far better than running an FFT. consider : Average Magnitude Difference Function (AMDF) $$Q_x[k] = \sum_n |x[n] - ... 8 From the (limited) description the uHz rotator algorithm sounds like one of the phase-weighted averages from this site, but it's not an algorithm I am familiar with. The Cramér–Rao lower bound^1 for estimating the frequency of sinusoid with amplitude A in white noise with variance \sigma^2 is given by:$$ \mathrm{var}(\hat{f}) \ge \frac{12}{(2\pi)^2\...

7

I'll take an orthogonal tack to answering this question from what Peter K has (validly) already proposed. I assert that the 8-significant-figure claim is little more than marketing-speak; while the software may be able to provide you an estimate with that many digits on it, that doesn't mean that they carry any real information! It appears that the software ...

7

From the ones I've been using I can recommend: YAAFE - very pleasant to work with in Python ESSENTIA - another one I like particularly due to Python integration aubio FEAPI Aquila - friend of mine used it extensively and he likes it a lot Recently I came across this paper and I believe that this should perfectly answer your question. Moffat D. et al - ...

7

Cons: Not as accurate This is just compared to the other methods. I was measuring frequency very accurately to look for clock drift, etc: 1000.000004 Hz for 1000 Hz, for instance. For guitar pitch detection it will be fine. doesn't work for inharmonic things like musical instruments I should have said "it can't find an accurate fundamental if there is ...

6

To answer the "how to shift the frequency of an audio signal up" bit: You could multiply the signal by a sine wave at a high frequency. This would shift and mirror the whole spectrum of the original signal into the high frequencies (multiplication by a sine in the time domain = convolution by a pair of symmetric Dirac in the frequency domain) - the mirror ...

6

Similar to this thread: Is there an algorithm for finding a frequency without DFT or FFT? FFT isn't a particular efficient way of building a tuner. Better (and cheaper) methods include auto-correlation, phased locked loops and delay locked loops, etc.. One example is to use tracking of local maxima and minima to roughly hone in on the fundamental ...

6

This question (about "time-scaling" audio) is closely related to pitch shifting, which is time-scaling combined with resampling. But changing the speed without changing pitch is only time-scaling, so there is no resampling involved (contrary to what thomas has suggested). There are frequency-domain methods (phase-vocoder and sinusoidal modeling) that can ...

5

I have tried the following: Launch Audacity. Generate a 15000 Hz tone in the track created by default. Add a new track. Generate a 15400 Hz tone in the new track. A lower frequency tone appears during playback. The reason is that both tracks have high levels, so their sum exceeds 1.0; and Audacity applies clipping or limiting. This non-linear operation is ...

5

The two concepts are related to two different dimensions or aspects of music which might or might not be correlated. Onset detection is concerned with finding the points in time at which sounds start. Doing this does not require prior knowledge of the particular pitch (or fundamental frequency) of the sound. It may indeed rely on the property that at the ...

5

They may be referring to patent US3800088 by Harald Bode. I have a bunch of images from 15 years ago to explain a way to do frequency shifting so that it has the best chance of sounding good. I would call it single-sideband frequency shifting. Here the range of possible frequencies in the signal are drawn as two arrows each spanning half the circumference ...

5

When I play A3 (220Hz) in my guitar, the fifth string which is A2 (110Hz) also vibrates a bit: it is what is called Sympathetic resonance. Besides other non-linear effects, this could be the case. This phenomenon also occurs sometimes when recording bat calls, you can observe resonance at half the fundamental frequency. Here, the fundamental frequency is ...

4

It could have been Goertzel's algorithm, though it looks at a single frequency rather than a specific band. Another approach is to apply modulation techniques to shift the central frequency of your range of interest into the baseband, aka "zoom FFT". Your intuition about the max to average ratio is good. Another "peakedness" metric is the ratio of ...

4

Cepstrum argument is called quefreency, which is in fact a time domain. So for example if you are looking for the fundamental frequency then you are searching for a peak in a specific range. In your case that's $[0.002; 0.2] \;sec$, which corresponds to $[50; 500] \; Hz$., knowing that $f=\dfrac{1}{t}$. So when you are searching for fundamental frequency, ...

4

Audiophiles don't hear anything unless they are told what to expect. Joke aside, this is equivalent to transposition by a bit less than a semitone. The effect won't be noticed on voices - this is way too low for any kind "chipmunk" effect to be observed. As for music, some people very familiar with the original music might detect the change of tonality and/...

4

Check out chapter 1.3 of this IRCAM paper on multi-F0 estimation. It discusses the difficulties in extracting multiple F0s from a recording, including the handling of overlapping partials, transients, and reverberation, as well as the modeling of domain-specific sources with varied spectral properties.

4

OK I did the two some time ago, TDHS in principle just apply time scale modification and to change the pitch do you need apply interpolation (resample) and it will shift the spectral envelope. For TDHS is hard to find some paper that teach how its really works, I learned the math and how it works in the Burazerovic Dzevdet paper: $N_p$ is defined as the ...

4

Because guitar strings have non-zero stiffness, non-zero diameter, and non-zero displacement, the physical vibration frequency of the string's overtones can be slightly sharp. Thus inharmonic. But this slight inharmonicity might be part of what makes certain real stringed instruments sound more "interesting" than some simplistic additive and waveform ...

4

Here is roughly how it works. A typically musical note is made out of harmonics and the fundamental. The fundamental is also the spacing between the harmonics. For 100 Hz fundamental you would get 100Hz, 200Hz, 300Hz, 400Hz, 500 Hz, etc. For 200 Hz you would get 200Hz, 400Hz, 600 Hz, which is simlar to 100Hz but not the same. Note that specifically 300Hz ...

4

The f[i] * i together determine the phase and frequency at every i so sine wave is only rendered correctly if there is no speed change, so the algorithm must be changed to allow for continuous time i and any change in frequency must not cause a phase jump. So try a phase accumulator approach, where phase for each i is incremented as required by the frequency....

3

The ratio of sample playback rates should be equal to the ratio of pitches you want to obtain. For example, if your C4 note was sampled at 48kHz, you'll need to play it back at $48000 \times \frac{277.18}{261.63} = 50.85kHz$ to make it sound like a C#4.

3

A few points I'd carefully verify the underlying assumptions: most engine noises, hums or buzzes, have lots of harmonics and are therefore a very wide spectrum. The fundamental is rarely the strongest component in there. 5 Hz seems like an awfully narrow bandwidth. You can only get 10 independents samples per second out of a signal that narrow. So if you ...

3

Usually, the envelope of a note will decay. A new note pluck will start (add or replace) a new amplitude envelope with an attack transient. So you might add envelope tracking to your spectral frequency analysis (which may or may not be appropriate for correct pitch estimation).

3

As @jan pointed out, you're probably asking for a little too much, especially if you're looking for a ready implementation. Doing a quick search on Google, I came across several papers that may be a helpful start. In this paper called Multi-pitch Detection Algorithm Using Constrained Gaussian Mixture, the authors use the Expectation Maximization algorithm ...

3

If you are not doing this in low-latency real-time, you can work backwards from the stable portion of the pitch estimate to the transient attack portion of the waveform at the beginning. The sound of a plucked guitar string evolves in a possibly predictable pattern over time (e.g. more so than voice). If you can estimate the onset time and/or have ...

3

so Adamski, what you have here is what we call "the Octave Problem" and is well-known and oft discussed with people who work on the pitch detection problem. first, some definitions. given a quasi-periodic signal, $x(t)$, where $$x(t) \approx x(t+T)$$ in some local region where $t \approx t_0$, we normally define "pitch", measured in octaves as the base-...

3

There is no easy answer to that question. Plenty of algorithms exists which are suitable to that task. Nowadays Non-negative Matrix Factorisation (NMF) is getting more and more popular in this field of research. If you have enough of resources and knowledge then you can try it. It's just a 'fancy' SVD decomposition with some 'constraints and tweaks'. Some ...

Only top voted, non community-wiki answers of a minimum length are eligible