SP-Tools - Machine Learning Tools for Drums and Percussion

For the last few months I’ve been working pretty hard on consolidating a bunch of the stuff I’ve been doing over the last few years into a package that basically piggy-backs on FluCoMa and adds a ton of drum-specific examples, and importantly, tweaks and fine tuning.

At the moment I’d consider it alpha as I’m still going to add some more functionality, I may mess around with the structure some, etc… but so far it’s working pretty well I think.

Here’s a teaser video I made:

And a video overview where I walk you through the overview patch:

It’s all up on GitHub:


Great stuff Rod! No idea you were bringing all that together – really valuable.

1 Like


It’s been bits and pieces here and there, but after cracking a decent classification recipe and getting somewhere useful with other core ideas, I figured it would be good to lump it all together. At the moment I’m trying to refine the standardization stuff from this thread, as well as still plugging away at the time-travel/regression idea, so I’ll add those bits as I develop them.


Yeah this is really great, well done.

Excited to see how the community who uses the same hardware latches on to it!

1 Like



Big v0.2 update adding “controllers” (meta-parameters) and “setups” (scaling and neural network prediction).

I managed to include the stuff from the biasing thread and got the regressor working finally (though can probably be improved).


thanks for sharing this stuff rodrigo!
i’ve been keeping an eye on your SP experiments for a while and the new demos are fantastic

this toolset seems really responsive and quite flexible

i’m downloaded the suite now and have a basic question: does this require config or training like the official SP software? do you have any tips on initial setup?

1 Like


So it really depends on what you want to do. If you wanna do the “SP Software Thing” then you need to use sp.classtrain (or sp.clustertrain) to give it the hits you want to train and stuff. But if you want to do corpus-based sample playback, or loads of the other things in there, then you can just use it as is.

What I’d recommend is creating a class/zone training (ala the SP software) with sp.classtrain and saving that, and then you can also create a setup which is new in v.02 with sp.setuptrain~ and then you have all your bases covered.

One thing I did somewhat avoid doing was trying to build “a sampler”, since that gets quite specific and esoteric for everyone’s needs. There’s some playback stuff in there, mainly for the corpus-based stuff, but the idea is what once sp.classmatch tells you what zone/class you hit, you then play back the sample (or whatever) on your own.

For a v0.3 (or maybe later) I do want to build a somewhat generic sampler ala the SP software/Simpler, but I don’t want to go too far in that direction as that’s essentially its own project (“a sampler”).

Let me know if taht makes sense and/or if you have other questions. It might be worthwhile making a “getting started” video guide too.

1 Like

this is very helpful! i also rewatched the overview clips & plan to try some things this weekend as i have time

1 Like

Let me know how you get on with it and if there’s anything that doesn’t make sense. It’s tricky with something like this as I’ve been pretty engrossed in it for years, so it can be easy to overlook things that aren’t immediately obvious to others.