The elusive log-log Centroid

I remember some discussion a while back (like first or second plenary) where the core centroid algorithm was (eventually) going to be revamped to be log-log.

I had completely forgotten about it, but in all the recent discussions around MFCCs, I remembered as I still generally use centroid for all my timbral analysis because I can wrap my head around it better.

Is this still something that’s in the cards?

yes, but not urgently so… since the code is now public, maybe someone from the community will propose a pull request after coding it!

From what I remember when we spoke about it last “it was complicated”.

I’m certainly not gonna be able to be the one to do a PR for it, but curious where that got left off. Was it just a matter of coming up with a formula that works well with how centroid “transposes”?

I presume the other log part would be easier, since it would just be a matter of treating the amplitude per bin in a log manner(?).

As you say, one of the log is indeed easy. The other one is a lot more involved, and since there are limited numbers of hours a day, this has been reprioritised. You have a fun and read about the various log centroids implementations out there. IIRC just the ircam object have a few in itself… and then, what units to use for musicians, etc… so do to a proper job it needs proper headspace, hence being parked until such space emerges… but as the code is public, someone might have the knowledge and need earlier than that.

That is the beauty of open source. We hope that people will benefit not just from finished implementations, but also from transparent ones on which they can bring something too, each in their area of specialisation…

I take it you guys were dissatisfied with the ircam implementation of log centroid? And/or that this is an area where there’s no “standard” or agreed upon implementation?

definitely. If you have any question in descriptor-land, 2 reference libraries and 1 reference papers pop up all the time:
https://essentia.upf.edu/reference/streaming_Centroid.html
and
https://librosa.github.io/librosa/generated/librosa.feature.spectral_centroid.html
and
Peeters: a large Set… (the paper @a.harker points at in his descriptor library)

There are a few Max references too: zsa.descriptors, ircamdescriptors, and again @a.harker’s

I’m sure @jamesbradbury @weefuzzy and @groma might have one or two more… But my approach now, as I try to find the most musical interface all the time and I need to make sure I don’t say too many naive things to the amazing lab, is to see if there is a consensus amongst all of these. If there is one, it might help at least bounce against something…

I’ll let you find out for yourself now about log centroid :slight_smile:

1 Like