Mutable Instruments Max port

By vb, 20/02/2020

It’s been more than a year ago that I have started working on the mutable instruments source code available here, to bring the sound and thoughtful layout of some of these fabulous eurorack modules into Cycling74’s Max. The project is not nearly finished (and might not ever be…), but I want to use this space to make the intermediate results available.

A huge thanks goes to Émilie Gillet, the original author of the mutable instruments module family, for making the sources publicly available for people to explore, learn and derive new stuff from!

So here we go – currently there are versions of:
Plaits, Rings, Clouds, Braids and a few additional objects inspired by selected features of the orignal modules (download see below).

Still in the workings are:
Elements, Frames, Marbles, Warps

source code will be available on github soon.
Source code is avaible on github.

latest versions (compiled for macOS) running in Max8,
vb.mi-objects (a max package) containing:
vb.mi.plts~ — a clone of the Plaits module
vb.mi.rngs~ — a clone of the Rings module
vb.mi.brds~ — a clone of the Braids module
vb.mi.clds~ — a clone of the Clouds module
vb.mi.verb~ — reverb unit from the Elements module
vb.mi.mu~ — µ-law companding for degrading audio signals (from Clouds)
vb.mi.pvoc~ — phaseVocoder from the Clouds module
vb.mi.reson~ — a resonator based on the resonator section from the Elements module
vb.mi.omi~ — ‘ominous’ a dark 2×2-op FM synth voice (from Elements)

Some demo sounds (from early developement…):



What about SuperCollider?

In the meantime I’ve started to experiment with translating some of the modules into UGen plugins for SuperCollider 🙂 In my experience SuperCollider lends itself especially well for hosting these modules, as many of them really start to shine when their parameters are modulated thoughtfully and precisely – something that SC is very good at!
You can find the currently available collection (compiled for macOS) here: mi-UGens, or in the downloads section (scroll down all the way).


Sources on gitHub.
And some sound examples:

26 Comments

  1. daniel says:

    hallo volker,
    ich bin ein großer fan deiner vb-objects für max
    nur schaffe ich es nicht die mutable instruments module zum laufen zu bringen.
    (unter macos & max8)
    gibt es dafür eine besondere vorgehensweise ?
    (sind das keine .mxo dateien?)

    danke dir & beste grüsse!
    daniel

    • vb says:

      Hallo Daniel,
      nach dem Download, zip Dateien entpacken und in ~/Documents/Max 8/Library kopieren.
      Max allenfalls neustarten.
      viele Grüsse,
      Volker.

  2. Alfonso Santimone says:

    Hi Volker, is there any OSX specific things in the code? I would like to try a port to Win (as for the other yours stuff which is Mac only…mostly i’d like to port aubio)

    • vb says:

      Hi Alfonso, no nothing OSX specific. IIRC I used Apple’s vDSP only to evaluate the trigger inputs, but that can be circumvented easily. I’m still in the process of tidying up the sources, should be ready soon.

  3. Clark says:

    Hi Volker, I downloaded the mutable instrument externals and all work except Braids. Is there any reason I wouldn’t be getting any sound from the help file patch after turning on the dac and playing the kslider? I can see other signals running in the patch but am getting no output from the braids object.

    thanks a ton for making these!

    • vb says:

      Any errors in the max console? Can you try unchecking the resample option and toggle the dac off/on – does that make any difference?

  4. Clark says:

    I get this error in the Max console.

    vb.mi.brds~: vector size can’t be smaller than 16 samples, sorry!

    unchecking the resample option and toggling the dac didn’t fix it for me.

    Thanks again for the help.

    • vb says:

      vb.mi.brds~: vector size can’t be smaller than 16 samples, sorry!

      well, this sounds quite clear then. Set Max’s signal vector size to 16 or higher and it should work.

  5. Clark says:

    Thanks! That works. I’ve mainly used Max for MIDI tasks and haven’t used MSP much so I had never even noticed the vector size setting in the audio settings.

  6. Victor Kashirin says:

    Thank you so much for sharing these patches. I just tried to play with resonator, and it’s beautiful, eager to try the rest. Do you have plans to make M4L devices out of those modules? Let me know if you need help with it.

  7. Jacob says:

    Wow. I’ve just been playing with the help files for these. What amazingly cool sound design possibilities. Thank you very much for your time in porting these to Max. All the best! Jacob

  8. Clément says:

    Hi Volker ! First I wanted to thanks you for this great works. I have a small problem with the Clouds module, in Looping Delay mode the “Position” does nothing (as far as I know it should control the delay time). Am I doing something wrong ?

    • vb says:

      Hi, ‘postion’ in looping delay mode is working fine here. Maybe you have an older version?

  9. Clément says:

    Sorry I didn’t see you answer !
    You were right, the external I was using was actually an older version, frozen in the the device. Thanks a lot 🙂

  10. Dario says:

    Hello Volker! First of all thanks for sharing all this amazing work with all of us 🙂
    I really sincerely appreciate it. I was wondering if you would be keen on sharing your current version of Marbles as I would love to give it a try and maybe give some feedback?
    Best!

    • vb says:

      Hi Dario, you can find a test version here. Please note, that this is unfinished, documentation is incomplete and the help-file is still a mess 🙁 have fun 🙂

  11. Adrian says:

    Hey Volker, is there any difference in sound from the max objects to the “real” mi module? Great work btw!
    And why did you decide to create max objects rather than build the modules in gen~?

    Cheers

    • vb says:

      Hi, thanks for your interest. The objects should be pretty close to the originals, but I haven’t done any serious comparisons, yet.
      The original code base is written in C++ and contains large numbers of classes and data files. A translation to gen~ would have been _much_ more work than creating max externals. And although gen~ is a nice addition to max, imho it doesn’t lend itself easily/practically for larger projects.

  12. Adrian says:

    Something weird I’ve found. When opening the .maxhelp of plaits, it sometimes won’t load the external and just mark the external object orange. Any idea?

  13. Alan says:

    Hey! Thanks for the modules! But I have a really dumb question, I downloaded the zip and moved it to ~/Documents/Max 8/Library as you pointed out before. But I can only open the help files on max and I can’t open it on Live as an external max instrument, I’m sure I’m missing something but I’m not sure what it is! Any help would be amazing!

    • vb says:

      hey, these are externals for max. For making use of them in ableton live, you need to write max4live devices.

  14. max says:

    thanks so much for making these. they are absolutely phenomenal and expand SuperCollider in exactly the way that it needs to be expanded, for me. it’s a really great thing to have these, truly.

  15. wilson says:

    Hey! These externals are absolutely fantastic! I’ve seen the latest updates on GitHub and I can’t wait for your official release of Marbles and Warps :). If you release anything else, I might need to start selling the rest of my modules haha

    • vb says:

      I might need to start selling the rest of my modules haha

      The physical modules are much more than the software, of course! Marbles and Warps are ready – more or less. just need to find the time to finish help files and packaging 🙂

  16. wilson says:

    Awesome! Are they updated in GitHub as well? I’ll go ahead and take a little look at them prior to the help being released.

What do you think?

Leave a Reply

Your email address will not be published. Required fields are marked *