Gen~ to MOD, build system seems broken

I tried to compile various plugin without success.
By the Mod Watcher;

modduo.support: Job error: Compilation failed!

Or by the max-gen-deploy;

Error: Process 6430975f6fba388c1fc1ada0 failed, contact MOD Team for more details

@falktx @jon
I did send a mail to support@mod.audio about this a few days ago.
Could you check on your side ?
Thanks

Just to give you a quick ping here.
We are trying to check this out, but having problems with the setup for verification. We will try to do it asap.

Ok, thanks.

Could that be the reason why I’m getting “upload failed” all the time? Haven’t been working on it the last couple of weeks, though. Hans

I believe that yes :confused:

Any news on this issue, I know the Mod staff is very busy between AIDA-X and the Expression pedal, but I’m stuck and it looks like I’m not the only one. Please have a look on this problem.Thanks

2 Likes

It still seems to be broken - any idea when the issue is fixed?

Hans

Questions to the community and the Mod team:
For more than a month I can no longer compile LV2-plugins for MOD devices from MAX gen~

  • Am I the only one facing this problem?
  • Nobody cares ?
  • Is this feature of Audio Mod Tools discontinued…?

If this is not the case, please react to this message to get things moving…
Thanks

1 Like

Clearly it has been reported several times already. I’ve merged your topic with this one since it’s of no use to spawn separate topics dealing with exactly the same issue.

@jon it would be nice if this gets dealt with since people are relying on this infrastructure.

(a few years back it was not possible for me to run any of these tools locally, which means that MOD infra is even more so important to be available)

1 Like

we are aware of the issue, but reality is due to lack of resources a few issues end up lingering longer than we want them to be.
for example this week there is superbooth, we are doing preparations for it which takes away time from other things.
it is always a balance between priorities.

for the max-gen builds, something is wrong with the cloud builder on the “DEV” environment.
last time it was a certificate issue, this time something more deep is wrong that involves mongodb and redis. we will try to make some time for this next week.

6 Likes

What would be needed to create a docker container for compiling gen~ plugins off the cloud? Can we help with that somehow?

Good luck at Superbooth and have a great time!

2 Likes

that is doable for sure yes.

a modern setup for building the plugin was setup on GitHub - moddevices/max-gen-plugins: Collection of MAX gen~ based audio plugins used in MOD Audio so we just need to put it inside a container together with a minimal mod-plugin-builder toolchain.

basically something alike:

git clone https://github.com/moddevices/mod-plugin-builder/
cd mod-plugin-builder
# install deps, see mod-plugin-builder readme
./bootstrap.sh moddwarf minimal

git clone --recursive https://github.com/moddevices/max-gen-plugins/
mkdir max-gen-plugins/plugins/${plugin_name}
COPY gen_exported.h gen_exported.cpp max-gen-plugins/plugins/${plugin_name}
sed -e "s/@name@/${plugin_name}/" -e "s/@label@/${plugin_label}" max-gen-plugins/template/DistrhoPluginInfo.h.in > max-gen-plugins/plugins/${plugin_name}/DistrhoPluginInfo.h
make moddwarf

# extract bin/*.lv2 contents out of the container

I can assist in this if you want to try to create such docker file.

4 Likes

Hey! I followed your instructions and created this:

It installs everything necessary and spins up a python Flask server with a frontend that handles everything. You just fill in the plugin info and pass the files and it sends them to the backend where they get compiled and come back as a base64 string which is then sent to the device with a fetch().

The only problem that I have is with the sdk/install cors; I had to do the fetch with mode: 'no-cors', so there is no way to see the results (success/failure) of the request. It works for me but it would be nice to relax the SDKEffectInstaller in mod-ui webserver.py so that it allows requests from 127.0.0.1.

Finally, I am not sure which parameters of DistrhoPluginInfo.h should be changed. I am only setting the brand, name, uri and lv2_category so far and it seems to work for me :stuck_out_tongue:

4 Likes

Hi christosku,
Thanks so much for moving forward on this issue !
I did a try in my environment (Mac terminal) but without success (I must specify that it is completely beyond my usual skills…)
Anyway, everything was fine with cloning, .env modif, Docker run, gen-exported files import and settings, but… here is the Log after Upload.
Any idee ?
Best

âś“ Files uploaded successfully

âś“ Modifying Distrho Plugin Info

Building Plugin

make AR=/home/modgen/mod-workdir/moddwarf/host/usr/bin/aarch64-mod-linux-gnu-gcc-ar

CC=/home/modgen/mod-workdir/moddwarf/host/usr/bin/aarch64-mod-linux-gnu-gcc CPP=/home/modgen/mod-workdir/moddwarf/host/usr/bin/aarch64-mod-linux-gnu-cpp CXX=/home/modgen/mod-workdir/moddwarf/host/usr/bin/aarch64-mod-linux-gnu-g++ LD=/home/modgen/mod-

workdir/moddwarf/host/usr/bin/aarch64-mod-linux-gnu-ld PKG_CONFIG=/home/modgen/mod-workdir/moddwarf/host/usr/bin/pkg-config PKG_CONFIG_PATH="/home/modgen/mod-

workdir/moddwarf/staging/usr/lib/pkgconfig" STRIP=/home/modgen/mod-

workdir/moddwarf/host/usr/bin/aarch64-mod-linux-gnu-strip CFLAGS=“-I/home/modgen/mod-workdir/moddwarf/staging/usr/include " CPPFLAGS= CXXFLAGS=”-I/home/modgen/mod-

workdir/moddwarf/staging/usr/include " LDFLAGS="-L/home/modgen/mod-

workdir/moddwarf/staging/usr/lib " EXE_WRAPPER=“qemu-aarch64-static -L /home/modgen/mod-workdir/moddwarf/target” HAVE_CAIRO=false HAVE_OPENGL=false MOD_BUILD=true NOOPT=true

âś— make[1]: /home/modgen/mod-workdir/moddwarf/host/usr/bin/aarch64-mod-linux-gnu-gcc: No such file or directory

âś— Failed to build plugin

1 Like

Hmmm, that’s weird! Can you run docker compose exec modgen bash to enter the container and after you are inside the container cd /home/mod-workdir && ls -al to see if the moddwarf folder exists there?

Does your .env file have MODGEN_INSTALL_MODDWARF set to true? I built my container with support for both modduox and moddwarf and it can build plugins for both platforms without a problem, but I will check what happens if I build it with only moddwarf enabled in the .env file. Maybe I have an error in the Dockerfile that messes up with the moddwarf bootstrapping…

Thank you for trying it out and for your feedback! :slight_smile:

I rebuilt the container with these .env settings (after modifying the .env you have to run docker compose stop and then docker compose up -d --build modgen to rebuild it using the new settings).

MODGEN_SERVER_PORT=5000
MODGEN_INSTALL_MODDUOX=false
MODGEN_INSTALL_MODDWARF=true

And building for moddwarf works fine for me!

4 Likes

YEEAH, wonderful, it works for me too !

I had to try twice from the beginning, but now it’s fine, thanks a lot you saved my work
I was afraid that my Dwarf would become only a toy and no longer a tool… but now it’s cool.

3 Likes

This is really cool! Thanks a lot for the development on this!

Still need to try it, but wondering if it is something we can build upon and then host it on MOD servers.
Can you pick a license for the code? What is your stance on me or MOD building extra stuff on top of this? Particularly for faust and puredata/heavycc stuff, where the procedure for such a thing is basically the same for all. And also as a way to retire the old way of building MAX gen~ based plugins, which is broken at the moment anyhow (and not exactly easy to fix :frowning:)

If you are ok with it we can for sure collaborate on it.

4 Likes

Just a naming note:

While I wanted to edit by ssh my new plugin directly on the Dwarf to transform some knobs into switch, selector, etc… I couldn’t reach the ttl file.
After a backup export of all my LV2s, I noticed that it was not named as on the GUI but had the name max-gen-plugin_dsp.ttl.

Not a too big deal when you know that but could be a bit more complicated and confusing.

1 Like