How to deploy a LV2 plugin to the Duo X?

I’m not quite sure where to begin.

I’m in DSP development for about three years now. First with Pure Data, and later with plugin development using C++ on Linux. I’ve developed a fairly extensive library that allows me to easily create effects. A few things are still a bit clunky, but I’ve managed to establish a pretty good and stable architecture. I’ve even built a complete synthesizer. But I won’t be doing that again; it’s far too complex. It cost me a whole year’s worth of sleepless nights. It was a good project, though, because I learned a lot directly.

Besides satisfying my curiosity, my main interest lies in creating effects that I can actually use myself. So far, I’ve been using Pure Data as my plugin host. It’s quite simple, and with the C&G Organelle, it’s also OTB (outside the box) for live events.

However, I’ve found Pure Data too limiting as a platform, as it’s difficult to integrate properly anywhere. I then decided to also support LV2, which was a good decision. I’ve already created a well-functioning environment there, allowing me to quickly develop plugins. Now I can use my plugins in any Linux based DAW that supports LV2.

It’s just a X11/Cairo based grid environment where I’m able to organize controls in control groups and control groups in the plugin window. Simple, efficient and fully customizable. And reasonably presentable.

And now I’m finally getting to the point: I have a really powerful piece of hardware, namely the Duo X. Along with the C&G Organelle, it’s always with me. And the Duo supports LV2.

I’ve looked at the documentation about Mod Duo development that’s pinned at the top of this area. Unfortunately, many of the links are broken now, and I’m still not entirely clear on what’s left. And supporting the Mod UI platform isn’t really my goal yet. I’m the only user of my plugins, after all. Of course, I will eventually consider releasing the plugins, once I have reached a certain quality standard.

What I want to do, however, is use the Duo X as my OTB platform instead of the Organelle. My first question is whether the Mod platform, with its web editor, also supports LV2 plugins that don’t yet have a Mod UI implemented. LV2 generally supports a basic GUI for plugins that don’t have their own. Does this also work on the Mod platform?

And if so, my next question is how to deploy the plugin to the Duo X. It would be great if someone could point me to some resources on this.

3 Likes

Plugins without a UI will appear with a generic “tin can” on the pedalboard.
All their parameters will be accessible in the settings of course and can be mapped to controls there.

ps; you can also compile PD vanilla patches to LV2 using the cloud builder: http://builder.mod.audio/
This comes with some limitations though. Like not all objects are supported and some behavior is more specific.

2 Likes

Sounds good. Then the only question left for me is how to get my plugin onto the Duo X. There was some documentation somewhere, but unfortunately I can’t find it anymore.

I think the easiest is to copy the entire LV2 bundle over using SCP (Secure CoPy).
As described here: Freezer - freeze your tone forever - #9 by zwabo

Of course you’ll need to make sure that your plugin binary is properly cross-compiled for the DuoX, which is easy enough using GitHub - mod-audio/mod-plugin-builder: MOD Plugin Builder · GitHub

2 Likes

Thanks, @dreamer, for the help here.

@Thomas, indeed, lots of links and documentation are outdated. Actually, the Online Builder (and thanks again @dreamer for mentioning it) is not documented anywhere more than a post of @falkTX here in the Forum.
I’ve been doing a fairly big update / clean up on the MOD Wiki and that should also go there. I still didn’t dive too deep on the plugin development parts of the wiki and I’m still working on the main page, WebGUI user guide and MOD Dwarf user guide (which were all missing quite a lot of stuff released with the last MOD OS updates).
That said, tips on how to organize things, “heads-up” on broken links and outdated stuff are more than welcome :slight_smile: - although we should likely create a thread for that.

3 Likes

Thank you both! This brings me a little further.

My plan was actually to create ARM binaries and then deploy them to the Duo X. For this purpose, I have set up a small environment that at least supports Windows and Linux with currently LV2 and PD plugin interfaces and also x64 and ARM (later perhaps also VST3), which is also the platform of the C&G Organelle. It’s all already there. The MOD Plugin Builder doesn’t really fit in there. But if that’s the way to get plugins on the device, then so be it.

But I would prefer if I could do it without the builder at first. So build it in my environment and then somehow get it over there and register it so that it is available in the Mod Web UI.

Isn’t there perhaps another way other than the builder’s? On the other hand, I’ll probably find that in the builder too. Maybe I should look there.

It’s mainly that mod-plugin-builder will apply device specific optimizations which are useful. A generic ARM64 target won’t run as well as an optimized one.

At minimum you’ll need to use a compatible libc version otherwise the plugin won’t load.

1 Like