Issues with Slicing Threshold Sensitivity

Hi everyone,

I’m currently working on a project that involves slicing audio files using the fluid.noveltyslice function. This function requires a threshold parameter that ranges between 0 and 1. Theoretically, I understand that this parameter should help in identifying the slice points based on the novelty of the audio signal. However, I’m encountering some significant issues with its sensitivity.

When I set the threshold around 0.35, the function returns no slice points at all. But if I slightly lower the threshold to 0.33, it suddenly generates around 400 slice points (see attached images). I would have expected the slice points to be more evenly distributed over the 0-1 range of the threshold. This extreme sensitivity is making it difficult to design experimental configurations effectively.

Can anyone explain what is going on here to me? Thank you in advance!

Attachments follow:


A few things.

Using fluid.ampfeature~ (or fluid.bufampfeature~) is useful as you can visualize the curve and make more informed judgements.

If you have the SP-Tools package you can easily check things with the sp.novelty~ helpfile:

The novelty stuff is super different from algorithm to algorithm. Comically so in some cases…

The minslicelength is in hops, which may be kind of small, depending on your material. You can crank that up a bunch, if you are after “novelty” (and not “onsets”).

As far as why it’s going from all-to-nothing with your audio, I don’t really know without having the audio, but the minslicelength would cut a ton of that out.

Hi @vertigo

For the novelty algorithm the @kernelsize attribute also makes quite a difference to both the level and the noisiness of the threshold. Changing the @filtersize attribute can help smooth things a bit too.

Using fluid.noveltyfeature~, as Rodrigo said, will help to look at what’s actually going on.