pitch-tracking

Peak detection in Performous code

你离开我真会死。 提交于 2019-12-10 10:05:56
问题 I was looking to implement voice pitch detection in iphone using HPS method. But the detected tones are not very accurate. Performous does a decent job of pitch detection. I looked through the code but i did not fully get the theory behind the calculations. They use FFT and find the peaks. But the part where they use the phase of FFT output, got me confused.I figure they use some heuristics for voice frequencies. So,Could anyone please explain the algorithm used in Performous to detect pitch?

Recorded audio of one note produces multiple onset times

谁说胖子不能爱 提交于 2019-12-08 16:39:14
问题 I am using the Librosa library for pitch and onset detection. Specifically, I am using onset_detect and piptrack. This is my code: def detect_pitch(y, sr, onset_offset=5, fmin=75, fmax=1400): y = highpass_filter(y, sr) onset_frames = librosa.onset.onset_detect(y=y, sr=sr) pitches, magnitudes = librosa.piptrack(y=y, sr=sr, fmin=fmin, fmax=fmax) notes = [] for i in range(0, len(onset_frames)): onset = onset_frames[i] + onset_offset index = magnitudes[:, onset].argmax() pitch = pitches[index,

Autocorrelation returns random results with mic input (using a high pass filter)

霸气de小男生 提交于 2019-12-08 01:48:44
问题 Sorry to ask a similar question to the one i asked before (FFT Problem (Returns random results)), but i've looked up pitch detection and autocorrelation and have found some code for pitch detection using autocorrelation. Im trying to do pitch detection of a users singing. Problem is, it keeps returning random results. I've got some code from http://code.google.com/p/yaalp/ which i've converted to C++ and modified (below). My sample rate is 2048, and data size is 1024. I'm detecting pitch of

Autocorrelation returns random results with mic input (using a high pass filter)

怎甘沉沦 提交于 2019-12-06 07:21:46
Sorry to ask a similar question to the one i asked before ( FFT Problem (Returns random results) ), but i've looked up pitch detection and autocorrelation and have found some code for pitch detection using autocorrelation. Im trying to do pitch detection of a users singing. Problem is, it keeps returning random results. I've got some code from http://code.google.com/p/yaalp/ which i've converted to C++ and modified (below). My sample rate is 2048, and data size is 1024. I'm detecting pitch of both a sine wave and mic input. The frequency of the sine wave is 726.0, and its detecting it to be

FFT pitch detection for guitar string

拈花ヽ惹草 提交于 2019-12-04 12:33:32
I have simply pitch detection. Input (microphone) data are passed to fft routine, then I'm looking for a pitch with maximum value It means: Max(pow(data[i].getRe(), 2) + pow(data[i].getIm(), 2)) for 0<= i < SAmplesSize I need it for detection of guitar string's primary frequency. It works well for freq 440 hz (and maybe higher, i didn't check that) downto 250 hz. Below this value detected frequency is twice as high as it should be, ie. for 195 hz detected frequency is about 380 hz. It looks like it detects higher harmonics below 250 hz. For pure 195 hz tone it detects perfectly, but for quitar

Music Transcription of Wav files in Java [closed]

白昼怎懂夜的黑 提交于 2019-12-03 20:02:05
问题 Closed . This question needs to be more focused. It is not currently accepting answers. Want to improve this question? Update the question so it focuses on one problem only by editing this post. Closed 11 months ago . I have project about music transcription using Java, the thing is,, I have created an applet that records sound and saves it into a WAV file, the player should only play the piece he/she would like to transcribe, after that I am stuck at the point were I have to get information

Pitch detection using FFT for trumpet

ぃ、小莉子 提交于 2019-11-30 18:26:30
问题 How do i get frequency using FFT? What's the right procedure and codes? 回答1: Pitch detection typically involves measuring the interval between harmonics in the power spectrum. The power spectrum is obtained form the FFT by taking the magnitude of the first N/2 bins (sqrt(re^2 + im^2)). However there are more sophisticated techniques for pitch detection, such as cepstral analysis, where we take the FFT of the log of the power spectrum, in order to identify periodicity in the spectral peaks.

Librosa pitch tracking - STFT

柔情痞子 提交于 2019-11-30 18:21:54
I am using this algorithm to detect the pitch of this audio file. As you can hear, it is an E2 note played on a guitar with a bit of noise in the background. I generated this spectrogram using STFT: And I am using the algorithm linked above like this: y, sr = librosa.load(filename, sr=40000) pitches, magnitudes = librosa.core.piptrack(y=y, sr=sr, fmin=75, fmax=1600) np.set_printoptions(threshold=np.nan) print pitches[np.nonzero(pitches)] As a result, I am getting pretty much every possible frequency between my fmin and fmax . What do I have to do with the output of the piptrack method to

Music Transcription of Wav files in Java [closed]

笑着哭i 提交于 2019-11-30 14:03:07
I have project about music transcription using Java, the thing is,, I have created an applet that records sound and saves it into a WAV file, the player should only play the piece he/she would like to transcribe, after that I am stuck at the point were I have to get information from the saved WAV file and use this information to create a MIDI file,, and after creating the MIDI file I have to generate a Musical Score for it (Sheet Music) and all these must be done in Java. I searched everywhere for a clear explanation on how these stuff can be done, but I did not find anything direct :( since I

Librosa pitch tracking - STFT

安稳与你 提交于 2019-11-30 01:37:16
问题 I am using this algorithm to detect the pitch of this audio file. As you can hear, it is an E2 note played on a guitar with a bit of noise in the background. I generated this spectrogram using STFT: And I am using the algorithm linked above like this: y, sr = librosa.load(filename, sr=40000) pitches, magnitudes = librosa.core.piptrack(y=y, sr=sr, fmin=75, fmax=1600) np.set_printoptions(threshold=np.nan) print pitches[np.nonzero(pitches)] As a result, I am getting pretty much every possible