Porting Max for Live to VST?

As I’ve mentioned before, I really enjoyed Jace Clayton’s book, Uproot: Travels in 21st Century Music and Digital Culture.

I found it rather poignant that after all the effort he put into developing Sufi Plugins with the aim of resetting the musical “defaults” behind his music making tools to a set of concepts based on Moroccan/Berber music, many of the very folks that inspired him to make the plugins can’t really use them due to technical barriers.


The thing is, the plugins are made with Max for Live, and in Africa (and Latin America, and most of the world outside of Europe and USA) most electronic musicians are using pirated copies of FL Studio on cheap Windows desktop computers (likely riddled with trojans from their users’ torrenting habits, it’s just all part of the ongoing chaos that somehow a lot of music emerges from).

Jace mentions in the book that in order to make Sufi Plugins more accessible to his western Sahara collaborators, he’d really like to port the plugins to VST for use in FL Studio.

Cycling74 used to support VST development via Pluggo, but no longer. So, in 2016, what’s the lowest friction way to turn a Max for Live device into a VST plugin, assuming there is zero budget to hire an advanced C++ DSP developer, and the ultimate goal is to give the plugins away for free?


I would have never found these tools otherwise…thank you

Can’t use M4L myself (just adopted Ableton but only have the Intro copy) so if this gets done it’d be the first thing I try to mess with

1 Like

If the M4L Device uses Gen~, there’s a very easy method for exporting that code:

Aside from that, no, there’s not a straightforward method.

There are a number of $(DSP LANGUAGE) to VST exporters.
-Cabbage for CSound
-PdVst and PD-Pulp for Pure Data
-Reaktor instruments/ensembles are always available as all major plug-in formats (a large reason why I’ve focused on Euro Reakt development).
-FLStudio has a built-in modular patching environment. Sort of its own M4L.

Pd and Reaktor have a lot of overlap with Max, so you can make pseudo-ports there.

One of the unfortunate realities, though, is that none of the options are perfect and C++ experience is generally needed at some step of the process when dealing with these exporters, especially when dealing with interfaces.


Pretty sure Sufi Plugins don’t use gen~.

Sounds like I need to put my big boy pants on and attempt some heavy lifting. Well, heavy for me, anyway. It’s something I’ve been meaning to try anyway.


is it open? is he allowing mods? or are you trying to mimic/replicate his work?

It’s Max for Live. There’s always an edit button.

My thinking was that I’d do the work and then donate it to him. You get the distinct impression from the book that he’s not currently getting help with this task.

Of course, I’d contact him before investing a lot of time. Thought I’d try to gather a little info first.

1 Like

having not used it myself i dunno
would it be better for the intended purpose as a max standalone? then even fl studio wouldn’t be needed, right?

One thing to consider is that depending on what is going on under the hood the actual signal processing portion of the plugins might not be where the largest portion of the work would be. Replicating the UIs could be a fair amount of work.

The closest thing to a freely available framework for building cross-platform plugins that I’m aware of would be JUCE.

I haven’t personally built anything with JUCE but it is used in many applications and plugins you are likely familiar with:

Tutorials for VST development (just found)

1 Like

these look amazing!! need to check out…

they seem to be very quickly convertable to max standalone at a first glance. (from the vid)

the question which arises for me is… how to bring these to the people?

and if they have a cracked fl studio, they might aswell download a cracked ableton.
at least in south america afaik, many people already use ableton these days (as everywhere, no surprise)

1 Like

@glia, FL Studio is the whole point. You kinda have to grok the context to understand why.

1 Like

When I contact Jace, I’ll bring up the standalone idea. We’ll see.

1 Like

Here is a simple solution: 1) rewrite the Max patches as PureData (Pd) patches; 2) load the Pd patches as a VST using https://github.com/pierreguillot/Camomile. Step (1) should be relatively easy given the similarities and shared history between Max and Pd.


That really does sound like the lowest friction method available.

1 Like