Brian McFee

Results 885 comments of Brian McFee

Here's a very naive (and not fast) multichannel implementation of peak-pick: ```python import numba @numba.jit(nopython=True) def __peak_pick(x, pre_max, post_max, pre_avg, post_avg, delta, wait, peaks): for n in range(0, x.shape[-1]): maxn...

Update: I realized that the above (now hidden) implementation didn't work correctly because numba does not support axis targeting in aggregator functions. I've now rewritten it to use `guvectorize` to...

A couple of things occur to me in looking at `onset_backtrack`: 1. It could be made much more efficient by using `util.localmin` to identify troughs 2. Supporting multi-channel here might...

Update: numbafied multichannel peak picker is now faster than the current scipy version, while retaining minimal memory footprint. The trick is dynamically skipping over unnecessary operations, and entire frames of...

> A couple of things occur to me in looking at `onset_backtrack`: > > 1. It could be made much more efficient by using `util.localmin` to identify troughs In `onset_backtrack`,...

Interesting, thanks for the thorough report. It definitely smells like numerical underflow. Can you check if you still get this issue if the input signal is in float64 format instead...

Quick follow-up, now that I'm back on a proper computer. I tried the above example with float64 format, and it indeed works correctly: ```python wave length: 110250 sampling rate: 22050...

I understand where this idea is coming from, but i think we should be a little careful here. The convention in place now is that notes are defined using scientific...

> Didn't know that A4=440 is actually somewhere defined in relation to pitch, always thought of it as a scale to some reference frequency, e.g. 440 Hz. Of course, but...

> If one wants to support something like MIDI but not quite standard MIDI one could add a pair of conversion functions xxx_to_hz() and hz_to_xxx() to make the distinction clear....