The patterns come from all over the internet.
About doing this on the computer.... I'm coding modules for the axoloti, but I'm no real coder, I just quickly know how to "get around stuff" in a basic environment Eg. I wouldn't know how to play a midi-file using code.. I was lucky to have a midi-play module in synthedit that I could abuse for this..
The sorting process did work more or less as after it, it just made dubstep/breakbeat for over an hour long after that and it sounded nice XD
Though actually sorting techno with techno and breakbeat with breakbeat, didn't go thát well, it's more like a continuous change within the rhythm, but keeping more or less the familiarity when playing the rhymthms one after another.
I'm going to put some more algorithms in there to make multiple sorting processes that I can use after each other and try to make actual groups of certain rhythms, so that you could actually know where for example the "D&B" patterns are in the list.
In the end, I hope to get a nice table that I can upload with the main play-module as a header (atm not sure how though haha Otherwise it will just be a file to put on your SDcard and load it manually). This way, you just need to load that module and have 2995 rhythms ready to use with a counter and selector and some drum modules
Making the actual midi2table converter available is not really useful atm as it depends on how the midi is played by synthedit, and, well, there'll be 2995 patterns already that you can combine in any way you want (just use a pattern on the select input). Though it's possible to make a vst out of the synthedit patch which might do the job, all the steps together to come to a nice table are probably a bit too much and complicated to explain.
Anyways, it should be seen as an 8-channel "grids" module (modular rhythm module with 4 channels), a quick access to try out your patch or to have something to quickly generate some pseudo random rhythm. The trigger outputs are fractional outputs that output a short pulse at a certain velocity. Envelope modules can be changed to have their trigger level set by the incoming trigger (eg. the decay envelope starts at "(1<<27)", which could be changed to "inlet_trigger" and change that inlet from bool to fractional). Most of my drum modules already have that input to allow these velocity-triggers.