(fs, x) = UF.wavread('../sounds/piano.wav') w = np.blackman(1501) N = 2048 t = -90 minf0 = 100 maxf0 = 300 f0et = 1 maxnpeaksTwm = 4 H = 128 x1 = x[1.5*fs:1.8*fs] plt.figure(1, figsize=(9, 7)) mX, pX = STFT.stftAnal(x, fs, w, N, H) f0 = HM.f0Twm(x, fs, w, N, H, t, minf0, maxf0, f0et) f0 = UF.cleaningTrack(f0, 5) yf0 = SM.sinewaveSynth(f0, np.array([0.4]), H, fs) UF.play(yf0,fs) f0[f0==0] = np.nan maxplotfreq = 800.0 numFrames = int(f0.size) frmTime = H*np.arange(numFrames)/float(fs) binFreq = fs*np.arange(N*maxplotfreq/fs)/N plt.pcolormesh(frmTime, binFreq, np.transpose(mX[:,:N*maxplotfreq/fs+1])) plt.autoscale(tight=True) plt.plot(frmTime, f0, linewidth=2, color='k') plt.autoscale(tight=True) plt.title('mX + f0 (piano.wav), TWM') plt.tight_layout() plt.show()
salience = run_pitch_salience_function(peak_frequencies, peak_magnitudes) salience_peaks_bins, salience_peaks_saliences = run_pitch_salience_function_peaks( salience) pool.add('allframes_salience_peaks_bins', salience_peaks_bins) pool.add('allframes_salience_peaks_saliences', salience_peaks_saliences) contours_bins, contours_saliences, contours_start_times, duration = run_pitch_contours( pool['allframes_salience_peaks_bins'], pool['allframes_salience_peaks_saliences']) pitch, confidence = run_pitch_contours_melody(contours_bins, contours_saliences, contours_start_times, duration) yf0 = SM.sinewaveSynth(pitch, .6, hopSize, sampleRate) figure(1, figsize=(9, 6)) mX, pX = STFT.stftAnal(audio, sampleRate, hamming(frameSize), frameSize, hopSize) maxplotfreq = 3000.0 numFrames = int(mX[:, 0].size) frmTime = hopSize * arange(numFrames) / float(sampleRate) binFreq = sampleRate * arange(frameSize * maxplotfreq / sampleRate) / frameSize plt.pcolormesh(frmTime, binFreq, np.transpose(mX[:, :frameSize * maxplotfreq / sampleRate + 1])) plt.autoscale(tight=True) offset = .5 * frameSize / sampleRate time = hopSize * arange(size(pitch)) / float(sampleRate)
if __name__ == '__main__': (fs, x) = UF.wavread('../../../sounds/vignesh.wav') plt.figure(1, figsize=(9, 7)) N = 2048 H = 256 w = hamming(2048) mX, pX = STFT.stftAnal(x, fs, w, N, H) maxplotfreq = 2000.0 frmTime = H * np.arange(mX[:, 0].size) / float(fs) binFreq = fs * np.arange(N * maxplotfreq / fs) / N plt.pcolormesh(frmTime, binFreq, np.transpose(mX[:, :N * maxplotfreq / fs + 1])) N = 2048 minf0 = 130 maxf0 = 300 H = 256 f0 = f0Yin(x, N, H, minf0, maxf0) yf0 = SM.sinewaveSynth(f0, .8, H, fs) frmTime = H * np.arange(f0.size) / float(fs) plt.plot(frmTime, f0, linewidth=2, color='k') plt.autoscale(tight=True) plt.title('mX + f0 (vignesh.wav), YIN: N=2048, H = 256 ') plt.tight_layout() plt.savefig('f0Yin.png') UF.wavwrite(yf0, fs, 'f0Yin.wav') plt.show()
(fs, x) = UF.wavread('../../../sounds/piano.wav') w = np.blackman(1501) N = 2048 t = -90 minf0 = 100 maxf0 = 300 f0et = 1 maxnpeaksTwm = 4 H = 128 x1 = x[1.5*fs:1.8*fs] plt.figure(1, figsize=(9, 7)) mX, pX = STFT.stftAnal(x, fs, w, N, H) f0 = HM.f0Twm(x, fs, w, N, H, t, minf0, maxf0, f0et) yf0 = SM.sinewaveSynth(f0, np.zeros(f0.size)+1, np.array([]), 512, 128, fs) f0[f0==0] = np.nan maxplotfreq = 800.0 numFrames = int(mX[:,0].size) frmTime = H*np.arange(numFrames)/float(fs) binFreq = fs*np.arange(N*maxplotfreq/fs)/N plt.pcolormesh(frmTime, binFreq, np.transpose(mX[:,:N*maxplotfreq/fs+1])) plt.autoscale(tight=True) plt.plot(frmTime, f0, linewidth=2, color='k') plt.autoscale(tight=True) plt.title('mX + f0 (piano.wav), TWM') plt.tight_layout() plt.savefig('f0TWM-piano.png') plt.show()
if __name__ == '__main__': (fs, x) = UF.wavread('../../../sounds/vignesh.wav') plt.figure(1, figsize=(9, 7)) N = 2048 H = 256 w = hamming(2048) mX, pX = STFT.stftAnal(x, fs, w, N, H) maxplotfreq = 2000.0 frmTime = H*np.arange(mX[:,0].size)/float(fs) binFreq = fs*np.arange(N*maxplotfreq/fs)/N plt.pcolormesh(frmTime, binFreq, np.transpose(mX[:,:N*maxplotfreq/fs+1])) N = 2048 minf0 = 130 maxf0 = 300 H = 256 f0 = f0Yin(x, N, H, minf0, maxf0) yf0 = SM.sinewaveSynth(f0, .8, H, fs) frmTime = H*np.arange(f0.size)/float(fs) plt.plot(frmTime, f0, linewidth=2, color='k') plt.autoscale(tight=True) plt.title('mX + f0 (vignesh.wav), YIN: N=2048, H = 256 ') plt.tight_layout() plt.savefig('f0Yin.png') UF.wavwrite(yf0, fs, 'f0Yin.wav') plt.show()
salience = run_pitch_salience_function(peak_frequencies, peak_magnitudes) salience_peaks_bins, salience_peaks_saliences = run_pitch_salience_function_peaks(salience) pool.add('allframes_salience_peaks_bins', salience_peaks_bins) pool.add('allframes_salience_peaks_saliences', salience_peaks_saliences) contours_bins, contours_saliences, contours_start_times, duration = run_pitch_contours( pool['allframes_salience_peaks_bins'], pool['allframes_salience_peaks_saliences']) pitch, confidence = run_pitch_contours_melody(contours_bins, contours_saliences, contours_start_times, duration) yf0 = SM.sinewaveSynth(pitch, .6, hopSize, sampleRate) figure(1, figsize=(9, 6)) mX, pX = STFT.stftAnal(audio, sampleRate, hamming(frameSize), frameSize, hopSize) maxplotfreq = 3000.0 numFrames = int(mX[:,0].size) frmTime = hopSize*arange(numFrames)/float(sampleRate) binFreq = sampleRate*arange(frameSize*maxplotfreq/sampleRate)/frameSize plt.pcolormesh(frmTime, binFreq, np.transpose(mX[:,:frameSize*maxplotfreq/sampleRate+1])) plt.autoscale(tight=True) offset = .5 * frameSize/sampleRate time = hopSize*arange(size(pitch))/float(sampleRate) pitch[pitch==0]=nan plot(time, pitch, color='k', linewidth = 2)