Fluid.bufnmf~ grainy

Hello !

I am using fluid.bufnmf~ on a long file with 40 voices and 200 iterations. This is quite good !! But I still get the “usual” grainy sound from nmf. I know this is intrinsic of the nmf concept so I am using reverb to hide that.

  • Apparently, the amount of iteration improves this. Am I right ?
  • Playing around with the fftsettings does not seem to change much on my side.
  • Other method I found consists on playing with several voices relatively close from each other.

Maybe there would be a way to somehow smooth the gain envelope of voices even if the extraction would not be accurate ?

How would you get rid of the granularity from one single extraction ?

Thank you !!!

I suspect that beyond a certain point, the number of iterations isn’t going to improve matters much. Because this is the most vanilla form of NMF (e.g. no additional regularisation for sparsity, etc), it tends to converge very quickly indeed and not shift very much after that. Are you hearing much difference between say, 50, iterations and 200?

Grouping similar voices certainly helps as well, although you need some mechanism for deciding which belong together.

I think the smoothness of the actviations seems key here (@groma may have wiser thoughts though), although as you say, adding smoothing will cause more leakage between sources. We should certainly consider adding it. Meanwhile, if time’s not a factor, could you do a run, smooth the activations in their buffers, and do another run with fixed activations?

Thank you !!

Are you hearing much difference between say, 50, iterations and 200?

I want to believe: I hear between 50 and 100. Not sure between 100 and 200; now you tell me. :slight_smile:

Grouping similar voices certainly helps as well, although you need some mechanism for deciding which belong together.

I do it by ear (hand) for now. This helps me deciding what to do afterwards (EQ for instance). I am looking for materials for a music-theatre piece where I am planning to only use one unique pitch. So I nmf several pieces from bach and only get one pitch out of them. Then I mix them together.

if time’s not a factor, could you do a run, smooth the activations in their buffers, and do another run with fixed activations?

I actually do not get what activations are.

IDEA: One good option would be having the optional possibility of a buffer~ with voice allocation numbers.

Ah, sorry, the activations are the gain envelopes of the voices. So you can write these out into a separate buffer~ when you analyze, smooth them (maybe with mubu?), then run again but supply your smoothed buffer upfront and keep it fixed.

Ohh yes !! Superb !!
Now I get my mistake. Sorry about that…

Thanks !!