Showing the changes to python (1 of 1 file). Show all
Unified · Split
| @@ -272,9 +272,16 @@ class process_tempo(process_beat): · 271 unmodified lines | |||
| 272 | self.beat_locations.append(self.tempo.get_last_s()) | 272 | self.beat_locations.append(self.tempo.get_last_s()) |
| 273 | def flush(self, frames_read, samplerate): | 273 | def flush(self, frames_read, samplerate): |
| 274 | import numpy as np | 274 | import numpy as np |
| 275 | bpms = 60./ np.diff(self.beat_locations) | 275 | if len(self.beat_locations) < 2: |
| 276 | median_bpm = np.mean(bpms) | 276 | outstr = "unknown bpm" |
| 277 | sys.stdout.write('%.2f bpm' % median_bpm + '\n') | 277 | else: |
| 278 | bpms = 60./ np.diff(self.beat_locations) | ||
| 279 | median_bpm = np.mean(bpms) | ||
| 280 | if len(self.beat_locations) < 10: | ||
| 281 | outstr = "%.2f bpm (uncertain)" % median_bpm | ||
| 282 | else: | ||
| 283 | outstr = "%.2f bpm" % median_bpm | ||
| 284 | sys.stdout.write(outstr + '\n') | ||
| 278 | 285 | ||
| 279 | class process_notes(default_process): | 286 | class process_notes(default_process): |
| 280 | valid_opts = ['method', 'hop_size', 'buf_size', 'samplerate'] | 287 | valid_opts = ['method', 'hop_size', 'buf_size', 'samplerate'] |