Smoothing fluid.mfcc~ outcome

Hello !

I am using a fluid.mfcc~ from a “grainy” sound (not “granny”).
fluid.mfcc~ moves too much… I am trying to smooth its output with several methods:

  • smoothing the input sound (fft freeze, cheap reverb, allpass etc).
  • smoothing the analysis data using the mean, or lowpass, for each component.
  • filtering the output using a threshold, a “gate”, controlled by the first component of the mfcc.

Changing the fftsettings does not seem to change much. I do not know why.
Anyone sees another way to do so ?

Thanks !!


I got no good result by gating with the energy.
It is not perfect but I got better ones by normalizing the mfcc, frame by frame in order to lessen the influence of noise in the next part of my patch.

I get smoother values the same good old fft way: large frames with loads of overlap. 4096 256 is good for instance for some signal. When I don’t care about the noisy component a pre-process of HPSS (or sines but it is quite expensive) is quite fun.

Other more clever approaches could be devised with running averages that reset at attack points.


I did indeed try 4096 256 fftsettings but that does not change much for my case.
I realized I was trying to filter “bad” frames out that are occurring too often to disappear with smoothing.
It is not the first time I am encountering this issue that is more a “philosophical” question than a dsp one: what is noise… My problem is somewhere else… So sorry for the noise here.

But I see that MFCCs are very sensitive for “noise”.

another approach: what about using a small tolerance to incoming data? You can easily calculate euclidian distance between arrays (in my mfcc example there is code for that) and dismiss if too far, otherwise add to your running average?