RNBO By Cycling74- Export Max patches to hardware and VST

the need for rebuilding will last only as long as the objects used aren’t in rnbo + we do have confirmation that cycling’s going to be migrating more objects to rnbo. :slight_smile:

2 Likes

Ok, that’s cool if so. I did just notice that you can copy from a Max patcher into a RNBO patcher and it will preserve the connections, so that’s a good sign for the ease of conversion in the future.

here’s the citation by kit clayton.

1 Like

People who have bought RNBO: what’s your impression so far?

The upgrade path for me is very steep (I’ve never had a standalone version of Max so have to pay for that PLUS the cost of RNBO on top…ouch) but I am really excited about the possibilities of RNBO. Of course I can get a 30-day trial but don’t want to activate that right now as I’m generally snowed under and have a major Max project to finish. Want to get the trial when I can dedicate some time to it.

I like it… been using it pretty extensively :slight_smile:

I’ve been creating a 4 track looper with it… which runs on my Percussa SSP Eurorack module.

basically 2 parts to my dev…
a) a new template that targets the Percussa SSP.
(This I’ve shared, so non-developers can create SSP modules)
b) patches
Ive focused on the looper, as its interesting how you interface the RNBO code with the ‘host app’.
so in this example, getting access to the buffer~ from outside the rnbo patch.

generally RNBO , feels a bit 1.0, a bit rough around the edges, but I’ve not encountered anything I cannot work with.
(in fairness, Im a more a “can do” person, that looking at … “oh it needs x, y , z”

as a developer, I think its great for prototyping…
the way Im using it, is setting up my dsp code, such that I can lift out the RNBO generated code easily, if I feel I want to go fully native.

but, I think it really shines for non-devs, as the tools/documentation within Max are so good.
thats probably where it excels vs other alternatives (which there are quite a few e.g. Faust/heavy etc)

4 Likes

Appreciate the repy man, thank you.

I’m definitely in the ‘developer’ category in terms of experience and knowledge (been audio coding for most of my ‘career’ :joy:) so your comments there are interesting. What’s your view on it’s power compared to Faust, for example?

Nobody replied to this point I think, so here’s my take on it…

Both MSP and Jitter were originally add-ons to Max and were later made part of Max itself. So it’s possible that RNBO might be part of a future update of Max.

Then again, as you say nobody knows the future and there’s no reason apart from their history to assume they’ll go this way.

In general I think RNBO is a good move, add-on or not, for a custom made future of hardware which the Nord Modulars preceeded so long ago.

You could even have individuals releasing small batches of hardware running on cheap devices. VST’s could be released as test runs.

Come to think of it, VST is a natural progression from the Max for Live ecosystem. And they’ve even been there before with Pluggo.

1 Like

I can’t really say about Faust, as I didn’t really gel with it, so didn’t bother digging very deep.

but, as I said, I think the ‘polish’ is the key to Max/RNBO…
e.g. being able to turn on debugging, and see values floating around the patch, rather than having to add lots of debug code/objects - and thats just one obvious one… its notable pretty much everywhere.

for me, this is really valuable in a prototyping environment, where the primary purpose is to work quickly…

of course the whole visual patching thing is a bit love/hate…
I’d admit, I find it a bit clunky, compared to text/code … but Ive got used to it over the years, and if you get used to abstraction etc, it can be pretty efficient. … and again, for prototyping, it works pretty well.

some get parts of RNBO (for me) that are perhaps not immediately obvious, but important

  • gen~
    don’t overlook this… as where RNBO stop, largely gen can take over :slight_smile:
  • Max/RNBO is running the generated C++
    so its wysiwyg, as far as Ive seen.
  • very easy to create new target platforms
  • build is based on cmake
    important to me, as its how I do my cross-platform/cross-compiling
  • generated code is pretty straightforward
    ok, its not just header based which would have been nicer, but its easy to integrate into project.

things not so great:

  • expensive/not free
    ok, you can use free trial if you don’t save.
    this limits its user base, esp, when targeting non-devs
  • license of generated source
    it’s not really an issue, but not as clean as it could b e.g. straight up MIT , or even just GPL
    (of course, there is no runtime implication/license)
  • no bare metal support
    though, C74 are talking about adding this… useful for things like daisy.

these things add up to it not being ideal for open source projects… which is sad for me as an open source advocate … but hey, Im happy to compromise.


then there is one big unknown… performance of generated code.

really, it’d be cool to review … write the same dsp algo in rnbo/faust etc, generate the code, then run on the same hardware (e.g rPI) and see how the generated code performs.
see how much ‘overhead’ each has.

I’ll say my tests with the Percussa SSP (Arm Cortex A17) haven’t shown any obvious performance issues,


I should also say, one of the supporters of my projects donated the license… as frankly, the price put me off. though in fairness, I didn’t have to use the $$$ for rnbo… so I did still chose this.

But overall, Im glad to have got it… I’ll definitely be using it for a few more projects.
of course, only time will tell how frequently, as also if it will be firmly prototyping only.
also, we will see how many non-developers it will entice to create SSP modules.

but its an exciting development, and for 1.0, I think it does very well.


@boredsofcanada ,
as @muied_lumens said… C74 do this with each new extension of Max - jitter, gen… etc
I guess, they use it as a way to get a bit back on the investment, and also perhaps a way to target those that are already invested into Max ecosystem… so we can refine it :wink:

it is very likely, at some point (2 years?), it will be folded into Max, as this is what they do, again with jitter/gen etc.

honestly, alot of social media has misrepresented rnbo, by dumbing down the message way too much (not C74 fault, they were clear… but social media get carried away, CDM :eyes:)
rnbo is not a max -> vst product, it more specialised, more limited use cases…
as you read above, I like it… but its not going to make every musician a pro plugin developer :wink:

2 Likes

Oh my…

Ha, yes. Honestly took me about three tries to love Max. Coming from a coding background myself it infuriated me when I first tried to learn it but I think once you have a few ‘chops’ it’s quite fun to build stuff quickly.

Thanks for the information, much appreciated :+1:t2:

yeah, I was the same… though I went thru this ‘pain’ largely with Pure Data… which can be excruciating at time. frankly the whole order of execution thing (triggers!) nearly drove me insane.

however, I’ve been digging a bit deeper with max since rnbo, and realised, these days, it has codebox/codebox~ and these pretty much deal with issues I found so painful. (i.e. things like iterative processing)
so, codebox allows for more convention coding in max/rnbo, plus gen for sample rate processing is pretty powerful combo… leaving the visual stuff for what its good at ‘gluing boxes together’ ™ :wink:

which is kind of interesting…
in the end, I mostly used Pure Data as ‘glue’, any significant/complex coding, I would just create an external for (in C++)
but with Max, it looks like I could prototype some of this in codebox/gen.

I mean overall, I still want max to largely be the quick n’ dirty solution…
something I can use until, what Im doing warrants a bit more time.

and thats exactly what Im playing with on this first RNBO module for the SSP, testing the ‘workflow’.
and its been cool…

my template was able to spit out a working SSP module, with parameters and cv exposed , so I could try out the concept, test performance etc…
and now bit by bit, im taking out the template code, and replace it with a ‘module specific’ code, so I can give it a proper UI for users.

as I do this, Im learning more and more, how to ensure the rnbo code is isolated, so that I can easily rip it out, with my own dsp engine, should I chose to do so :slight_smile:

Im also learning more about whats possible (and not) in RNBO, and Max in general… and really hoping to also then move a bit more into gen.

its been a lot of fun … I really do enjoy this kind of iterative development model.
where something is always working, and your chipping away to get the final ‘product’ !

3 Likes

Hi y’all,
been thinking about changing from Pd to Max/RNBO because of the UX improvements an ease of use to export for different platforms.

Do some of you have some long time review? I’ve been using M4L for a while and liking it a lot, but not sure yet about paying the full licenses.

1 Like

I’m pondering trying to make a sampler instrument running on a Raspberry Pi with some physical controls. Does anyone have any general insight or recommendations with using Max + RNBO for this purpose compared to doing it with Pure Data?

Has anyone here made any cool Raspberry Pi based instruments using this?