glClear(GL_COLOR_BUFFER_BIT);
for ( ;; ) {
+ SDL_Event event;
+ while (SDL_PollEvent(&event)) {
+ switch (event.type) {
+ case SDL_KEYUP:
+ if (event.key.keysym.sym == SDLK_ESCAPE) {
+ exit(0);
+ }
+ break;
+ case SDL_QUIT:
+ exit(0);
+ }
+ }
+
short buf[FFT_LENGTH / PAD_FACTOR / OVERLAP];
read_chunk(fd, buf, FFT_LENGTH / PAD_FACTOR / OVERLAP);
std::pair<double, double> peak = pd.detect_pitch(buf);
glVertex2f(MAX_X, 0.0f);
glEnd();
- glBlendFunc(GL_SRC_ALPHA, GL_ONE);
-
- double peak_pos = find_pos(peak.first);
-
- glBegin(GL_QUADS);
- glColor4f(0.0, 1.0f, 0.0f, 0.2f);
- glVertex2f(peak_pos - 0.1, 0.0f);
- glVertex2f(peak_pos - 0.1, 1.0f);
- glVertex2f(peak_pos + 0.1, 1.0f);
- glVertex2f(peak_pos + 0.1, 0.0f);
- glEnd();
+ if (peak.second - log10(FFT_LENGTH) >= 0.0) {
+ double peak_pos = find_pos(peak.first);
+
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+ glBegin(GL_QUADS);
+ glColor4f(0.0, 1.0f, 0.0f, 0.2f);
+ glVertex2f(peak_pos - 0.1, 0.0f);
+ glVertex2f(peak_pos - 0.1, 1.0f);
+ glVertex2f(peak_pos + 0.1, 1.0f);
+ glVertex2f(peak_pos + 0.1, 0.0f);
+ glEnd();
+ }
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
glBegin(GL_LINES);