Question about analysis and stats

hello, i think there is something i’m missing in my patch regarding the analysis process and i was hoping someone would help me understand this a bit better.

i use the abstractions by @jacob.hart like the jh.bufanal to analyse a big folder of around 16k files and then jh.bufanalselect to select the stats and analyses i want to use.

I’m a bit confused which analyses and stats work together and why/why not.

So in this image for expamle i used the analysis “pitch” and the stat “mean” which creates this weird looking nonsense in the plotter. But if i use mfcc + mean then my patch works great.

How come?

Thank you!

And other funny looking analysis that happended this way. They look great but it doesn’t sound sorted in any way:


First I have to say that these drawing are gorgeous! but I know it is not the point :slight_smile:

Second, @jacob.hart will know how his patch works better than me - I’m looking for it now but I don’t seem to know where to find it - we did build a huge database of code so can you help me

I am mostly curious in how pitch mean (at best 2d) is managing to be postprocessed. MFCCs will have to go through a dimension-reduction algo but maybe the said algo is freaking out on 2d-to-2d - or maybe it is expected behaviour and you should bypass that step somehow.

Looking forward to hearing from either of you so I can help a little more

1 Like

Hello @tremblap thank you very much for your answer!

they look good indeed, they just don’t sound that good.

i found the abstractions on @jacob.hart website and they can be found here:

if i understand you correctly, using 2x 1D (e.x. pitch loudness mean mean) the umap could (or should) be bypassed?

anyway, here is my patch, it’s quite messy but the main thing is happening inside the analysator subpatch, which should be a bit neater and which is using @jacob.hart 's stuff.

also, i’ve attached a .zip with analyses made with this patch, idk if they’re helpful
(i’ve omitted the sound because it’s not mine)

analysator.maxpat (110.2 KB)

diyconcat_V1-1_performer.maxpat (253.7 KB) (7.3 MB)

that is what I meant indeed. I’ll let you try that first. UMAP is a clever distorting dimension reduction algorithm, but if you feed it 2d to view in 2d, it is not relevant.

i just tried this, it seems to not output the correct pointsize:

in this patch, the left side is how i had it before and the right side is just bypassing the fluid.umap~not sure if this still needs a step before the fluid.normalize~ so that each point receives two values?

anyway, the hallucinations seem to be gone, but this was analysed with “pitch loudness mean mean” so this looks wrong too. third pic is what comes into the fluid.normalize~, not sure if the pointsize is correct there?

you seem to have only one dimension in your dataset. Check (print) the dataset in which you send the analysis. Also, ping @jacob.hart on his github, there might be a bug in his wrappers. or in your understanding of them, if you can’t request 2 things for instance.

hi again, thank you for your help, i’ve been stuck with this for quite a while and very happy so see some progress!

i figured out that using descriptors like “pitch loudness mean mean” gets only one dimension but “pitch loudness mean high” gets two (still bypassing umap).

i don’t quite understand why mean mean wouldn’t work but if mean high works, i’m happy. thank you!

this means you get 2d from stats (mean and max) from one descriptor. If the patch was doing what you wanted it to do, you should get 4d (you ask for 2 descriptors and 2 stat types)

so I recommend: to study the helper and check where it doesn’t do what you want


to recode it yourself


to fill a bug on github for @jacob.hart to either fix or document it

sorry if I cannot help more - it is someone else’s code and not part of the package per se. Trying to help properly would mean for me to study jacob’s helpers which I can’t do for now…

Thank you for your replies!
I’m quite sure it’s not a bug in the jacob hart stuff but rather a “bug” in my understanding of how stats and descriptors work together and the syntax used.

thank you, this helped me to understand the problem, i’ll try to go on from there, trying to understand what pairs of descriptors and stats work and why.

1 Like