Slicing, analysing and comparing

hi all,

first thanks for the great work!

I would like to see how is it possible to have a similar result to the CataRT library, using the Supercollider implementation.
As I could not find an example doing this, I wanted to ask for suggestions here, in case someone did already.
I imagine the following steps to be requires:

  1. given an audiofile, I can split it into small parts. I can use the OnsetSlice, AmpSlice, TransientSlice or NoveltySlice, depending on the audiofile and the result achieved
  2. Analyse the splitted audiofiles (for example MFCCs) and store the information in an array
  3. ordering the information of the array per similarity and possibly have a visual representation of it.

Are there any given example doing this or part of it?
I could not see any.

Thank you.

Hello!

I recommend you read this NIME paper we wrote, which comes with SuperCollider research code which allow you to do this, amongst many other things. It has Python dependency at the moment since the machine learning material is not public yet…

https://pure.hud.ac.uk/en/publications/adaptive-mapping-of-sound-collections-for-data-driven-musical-int

otherwise there is a way to do that. The workflow would be to slice, then iteratively process mfccs and bufstats on them (there is an example in the help file) then import back in the language via nget the various stats and display them with whatever plotter you want… again the paper above shows visualisation in SC that might inspire you.

in about a year, the 2nd toolbox of machine learning will be out, and then there will be ways of doing that all in flucoma-land :wink:

I’m sure @groma has a few more tricks to offer. More SC examples are coming in the next release, some of which with almost-real-time classification via NMF… stay tuned!

Also, you can see other geekery on our publication page

thanks a lot for your answer.

I read the paper and yes, it handles what I am planning to do but I cannot see any Supercollider code in it. Or am I missing something?

I am looking forward for more SC examples about this procedure :slight_smile:

Oops, it seems we did not put the Github link in the paper… https://github.com/flucoma/FluidCorpusMap has the code. It is research code, but there is enough in there to get you started, alongside all the examples provided (and more to come, check the recent thread with @tedmoore on how to correct my SC style :wink:

ah, thanks for the github link, that helps :slight_smile:

1 Like

Hello - I’m playing catch up, looking at the new stuff in TB2 and found myself asking the exact same Q. So is this code still the approach for scatterplots in SC?

This is ‘old’ research code which does not use our TB2 alpha but a Python bridge that @groma did for a paper, but it is indeed still usable. In fact I do all the time :wink:

OK - thanks – I have a strong urge for an interactive 2D scatter to explore everything with … would you advise this flucomaPlot as the best way to do this – I was looking at an old quark for GNU plot too, but not sure it’s interactive. (I’m very far from fluent in SC) ; )

me neither, but @groma is. So are @tedmoore and @spluta. They will be able to answer better than me if they jump in.

What kind of interactive capabilities are you interested in? I found Max and SC pretty poor at making any kind of usable interface. It seems the web people know how to do this stuff a lot better!

@weefuzzy is working on making @jacob.hart 's JS interface more efficient, but that is for Max. @groma did some cool examples in SC which are in the public folder but these are 1D+slices…

1 Like

Thanks - it could be that I’ve just not found things yet. (late to the party)

@jamesbradbury - even just hover-over playback on scatter plots would make exploration of impact of features, stats, data cleaning/ manipulation, clustering etc. more fun and efficient …

Hi @alicee, I have made what you’re describing in SC. Are you still looking for that tool? It’s kind of woven into other coded stuff, but I could abstract it out for you if you’d like.

1 Like

Hey @tedmoore I’d definitely like to see that code too if you don’t mind sharing.

1 Like

Hi @tedmoore - that’s really kind. If you’re happy to, that’d be wonderful. I’m getting on it, but lots to learn in terms of thinking in SC and some basic visual feedback would be supremely helpful. Cheers. A

As I originally started this thread and I did not find a decent solution by myself, I would like to see the code too, if possible.
I think it would be very useful to include such code in the examples of the flucoma package, I guess many users would profit.

2 Likes

Happy to. I’ll put that together in the next few days and post it here.

3 Likes

many thanks indeed

Thanks all for reviving this, and thanks @tedmoore for being generous.

@buscon, yes something like this will be useful as an example. When I can, I’ll take @groma’s basic scheme from FluidCorpusMap and try to package it up as a utiltiy class with some examples. Because the public release doesn’t yet have all the data-herding tools we’re currently working on, there’d still be a certain amount of boilerplate involved, but hopefully we can come up with something to make it pretty simple.

I guess interactive scatter plots are kind of the hello world of audio corpus exploration, so it definitely makes sense to make it easy for folk.

@jamesbradbury I think either JSUI or something jittery would be up to the job, so I’ll try to have a Max equivalent appear too. Of course, if all the cool kids are using node.js now, I’m sure a d3-based animated visualization is just days away…