Using Audio Analysis Objects for Rhythm and Meter

I’m working on a computer improviser in MAX. I am using the flucoma objects to analyse an audio corpus as grains and slices using the various flucoma audio analysis and onset detection objects - this already works very well. I am looking for approaches to detect tempo, repeated rhythmic patterns, and meter in the corpus or an incoming live signal and wondering if there has been any work on this using flucoma already - any suggestions?

Hi Taylor,

Your work on improviser is really interesting! I do not know whether this is what you are looking for or not but, a few months ago, there was a short discussion about BPM estimation for live audio in this thread (BPM estimation from onset or onsetfeatures).

For my setting focussing on live piano, I use the Tempogram approach (based on the FFT of the novelty curve). I have improved a little bit the analysis compared to what was posted in the thread. So, if you are interested in the updated version, please let me know.

1 Like

I am interested, as I am certain many readers are! I need to dive into that thread now, but if you had updated examples that would be appreciated by many I’m sure!

I’m also interested here!

I’ve been thinking of some similar things recently too, though it’s real green atm. Some discussion in this thread on an approach to trying to generate rhythms based on previous input:

1 Like

Thanks for pointing me to this thread. I am messing around with your BPM patch now and it’s very promising. I like that you have a confidence metric, which for my purposes would be very useful.

Yes, if you would be so generous I would love to have a look at an updated version.


Here is the updated version BPM (6.7 MB) . If you find any issue or improve it, please let me know.

On my side, I am following with great interest Taylor’s current work on the “AI musician”!


thank you Philippe! Would you mind if I were to try to include or rework your code for my improviser with attributation, of course?

Not at all! Please go ahead!


wow I now had the time to check your code, this is a fantastic implementation - I’m learning so much!

Thank you dearly for sharing the code! I will most probably port it to SC to play with it and give you credit obviously


Thanks! I am glad you find it interesting and useful!

1 Like