Machine learning in Max

    Sep 20 2008 | 8:47 pm
    I've heard rumours that someone created some machine learning objects in Max, other than Olivier Pasquet's very nice op.fann neural net objects.
    Was I dreaming?

    • Mar 25 2013 | 2:31 am
      is there any update on this? I'd very much like to find this...
    • Mar 25 2013 | 9:32 pm
      This may also be of interest:
    • Mar 25 2013 | 10:39 pm
      Thanks you guys!
    • Jan 19 2016 | 2:45 pm
      Came across this recently, and thought it may help people if they are going down this road....
    • Mar 02 2016 | 5:38 am
      It looks like the externals at that link just above are Mac only. Any idea how one could get some machine learning into Max on Windows? What about the ml.adaboost that's used in this video?
    • Mar 02 2016 | 12:07 pm
      You could use wekinator to do the machine learning, and ship the results back to max using OSC:
    • Mar 03 2016 | 7:13 pm
      Thanks, I've already found my way down that path a bit. The creator of Wekinator is even teaching a class on machine learning right now and it's very illuminating. Wekinator isn't ideal (at least in my case, for the reasons outlined here but it's made it possible which is bad ass.
    • Mar 24 2016 | 11:17 pm
      What about plugging something written in C++ like ofxLearn ( into Max in MXJ-like fashion? How feasible would that be? I certainly don't have the expertise to know…
    • Mar 25 2016 | 4:07 am
      This may be of interest, "a set of [mubu] objects for probabilistic modelling of motion and sound relationships" The site mentions MuBu for windows, though I can't find it. Hmm. (I coincidentally just came from a presentation Jules made of this work, at which OP was in attendance. It's come full circle, heheh)
    • Mar 25 2016 | 4:26 pm
      I'm curious to know your problems with Wekinator, but I can't read them without a login. It seems likely that Wekinator will soon be able to output pre-trained models in some portable format, either as PiPo plugins (part of MuBu) or plain C++.
      IRCAM's MuBu site also mentions Windows, but doesn't seem to deliver:
    • Mar 26 2016 | 6:39 am
      Oh, I didn't think about the login. Basically it's just that I would like to automate the entire recording and training process as well and not have to rely on manually pre-trained models. There aren't enough OSC messages to do that right now. That, and perhaps the bit of latency incurred by sending OSC around in the first place.
      I found the Windows version of MuBu though:
      I guess it's just that the newest version is Mac-only for the moment. The archives have downloads of all flavors.
    • Mar 28 2016 | 9:27 am
      It seems like the OSC control messages to Wekinator are reasonably complete: I think you can do anything that way that you can with the Wekinator UI, although I haven't really tried.
      I'm actually developing a fork of Wekinator, so I'm genuinely curious about your use cases / feature requests.
    • Mar 28 2016 | 5:04 pm
      Well… It's a lot of the setup of different models that's missing, like model-type and the more detailed parameters. Here's the conversation copied and pasted from that link:
      Ryan Fougner Mar 2, 2016 @ 12:19amPST Just wanted to say that I would also love to be able to control Wekinator from within Max. As it is there doesn't seem to be enough OSC messages to control every aspect of it, plus it would be really great to not have to have it running side-by-side.
      Rebecca Fiebrink Mar 2, 2016 @ 12:26amPST What other OSC control would you want, beyond the ones here: ?
      Ryan Fougner Mar 2, 2016 @ 5:33pmPST Well, ideally, control over everything. I'm looking to implement it in a patch of mine and I'd really like everything to be "under the hood", as they say, and run totally programmatically. I would use an external like if I could find one for Windows, but alas, one doesn't seem to exist.
      My patch allows you to beatbox in MIDI, identifying percussive onsets and creating MIDI notes for them. It's working great but right now the different pitches are assigned more or less randomly and it would be really sweet if some machine learning could match the sound you make to the most similar drum sample available. So I would like to take a folder of samples and analyze each one for a few different qualities (onset time, energy and 0-crossings, and maybe a couple more if I can think of some good ones), setting up each one as the sole example for its own class.
      So I guess the main OSC control would be one to set the number of classes dynamically, as it would change whenever you loaded a new folder.
      Thinking about it more now, I suppose I could set up and save a new project beforehand for every folder I intend to use, but that's a little more tedious than I had hoped for. Really every click that could be automated by an OSC message from the moment you start the program (+ saving/opening projects?) would be valuable, especially if my patch were to be used by people other than me.
    • Mar 30 2016 | 9:05 am
      OK, I understand. The OSC controls don't cover much of what you'd need to create and configure new models.
      It seems unlikely that anyone will take OSC control of Wekinator that far; you really would be better off with some kind of "native" Max implementation of machine learning, if such a thing existed. Ultimately, Wekinator presents an interface around the Weka algorithms: It seems like the ml-lib project could be working on Windows, if they had a windows machine to build with. Maybe you could volunteer to help them?
      For better or worse you've gotten yourself to the leading edge of this research, and the tools ecosystem isn't as developed as you might need. Eventually, I taught myself some lower-level programming languages because of the things I needed to do in Max. Best.
    • Mar 30 2016 | 11:20 am
      Go TO_THE_SUN, Go ml-lib for Max Windows