Slicing advice needed / puredata

Hello,

I’m having trouble slicing a particular sound ( see attachment )
where a succession of saxophone notes are played. This sound is arbitrary, I use it to test my patch and the flucoma library.
I would like to slice each note played ( as precisely as Flucoma can ).
Attacks are audible to my hear, so I tried with ‘fluid.bufampslice’ fiddling with all parameters with no success. Then because the pitch changes are also quite noticeable I tried with ‘fluid.bufnoveltyslice’, using the pitch algorithm, results are better, but the best result I found after fiddling with the different parameters has way too many onsets.

I attached the pure data patch, which slices a sound and plot the slices on 2D , dimensions are “pitch” and “loudness”, adapted from one of the max tutorial videos. ( this could help other pd users )

Any help modifying the patch, or advice after listenning to the sound ( located in the data folder of the attachment ) would be greatly appreciated!

pd.patch.zip (3.3 MB)

That’s a surprisingly challenging file because the attacks are soft, the pitch contour is almost continuous and there are some pronounced changes in level. FWIW, I don’t have much faith in the novelty slicer with pitch even in general, and in this case I think the feature signal might be lost in noise.

One approach to take with tricky files like this is to look at the ‘feature’ versions of the slicer objects (e.g. FluidBufNoveltyFeature) so you can eyeball the signal it’s trying to slice. I did this quickly in max (sorry, don’t have a working PD just now), and the noveltyfeature output wasn’t looking promising.

Something I did try, just to see if it was even possible, was to take the pitch confidence output of FluidBufPitch and then feed that into FluidBufOnsetSlice with a very small FFT size (of 8, because the relative sample rate of the feature curve is much lower than audio rate). Not by any means perfect, but maybe another avenue to explore.

1 Like

Thank you, it got me looking into “features”, things make way more sense now.

If not too complicated for you ,would you post a picture of how you did it in MAX ? so I can translate to pd ? I have a hard time figuring out what you mean…

So, by no means perfect, but I didn’t mess about with thresholds, filter sizes etc, so presumably the segmentation can be improved upon

1 Like

Thanks!

there’s something I don’t get, maybe because of differences between max and pd, what does " slices ons fea" do ? slices is a message to the waveform? ( I was able to use “features” but there’s is no method “slice” for the waveform.

slice is an old name, the official name is indices like in the helpfile’s 2nd patcher at the bottom (markers_for_indices)

1 Like