]> git.sesse.net Git - pitch/blobdiff - pitch.cpp
Make the ALSA reader handle and recover from underruns.
[pitch] / pitch.cpp
index 6ec6155cde18b4c479340d9cf824c6d705240c14..421c2f24cea126da2dc786f4a918624dd459ac41 100644 (file)
--- a/pitch.cpp
+++ b/pitch.cpp
@@ -9,16 +9,15 @@
 #include "pitchdetector.h"
 
 void print_spectrogram(double freq, double amp);
-void write_sine(int dsp_fd, double freq, unsigned num_samples);
 
 int main()
 {
        PitchDetector pd(SAMPLE_RATE, FFT_LENGTH, PAD_FACTOR, OVERLAP);
-       int fd = get_dsp_fd(SAMPLE_RATE, FFT_LENGTH, OVERLAP);
+       snd_pcm_t *pcm = get_dsp_handle(SAMPLE_RATE);
        for ( ;; ) {
                short buf[FFT_LENGTH / PAD_FACTOR / OVERLAP];
 
-               read_chunk(fd, buf, FFT_LENGTH / PAD_FACTOR / OVERLAP);
+               read_chunk(pcm, buf, FFT_LENGTH / PAD_FACTOR / OVERLAP);
                std::pair<double, double> peak = pd.detect_pitch(buf);
 
                if (peak.first < 50.0 || peak.second - log10(FFT_LENGTH) < 0.0) {