Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Machine learning: categorization of patches #50

Open
christofmuc opened this issue Dec 24, 2020 · 2 comments
Open

Machine learning: categorization of patches #50

christofmuc opened this issue Dec 24, 2020 · 2 comments
Labels
Epic Large task

Comments

@christofmuc
Copy link
Owner

I made an experiment, and it seems there is easily enough information in the sysex that when you have a learning data set (have manually or via name assigned categories to a couple of patches), you can train a classifier and then have the rest of the patches automatically assigned into these clusters.

First experiements on the Matrix 1000 showed this works. Kind of.

Not sure about multi-assignments - a cluster algorithm always will choose just one class, but we can actually deal with uncertainty.

Main challenge to productization will be that your python environment will need to contain scikit-learn and other huge python libraries, which is not a friendly install for everybody.

@christofmuc christofmuc added the Epic Large task label Dec 24, 2020
@markusschloesser
Copy link
Collaborator

what did you have in mind w re to which clusters? Also wouldn't the ML need to be aware of the structure of the sysex files?
Sounds really interesting!
One thing which comes to mind, especially when taking your "search for specific parameters" issue into consideration, is searching for sounds with a short decay and short release and putting them under "plucky". Or long attack, long release = pad

@christofmuc
Copy link
Owner Author

Ah! Good one - I could extend the auto-classification from currently using only regex matching on the name of the patch to full calculated predicate expressions on the parameters. So this would be an extension on #51.

Regarding the sysex structure - maybe. My tests ran on extracted parameter values for the Matrix 1000, so yes, it could help. But on the other hands, the learning/clustering algorithm are so generic, you could also just pipe in the sysex vector and see what happens. When you do princpal discriminant analysis, many values will be disregarded anyway to distinguish the clusters. I think its worth a try.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Large task
Projects
None yet
Development

No branches or pull requests

2 participants