Max gen~ build fails

Description


Building Max gen~ plugin fails following the instructions here: https://wiki.moddevices.com/wiki/Max_gen~#Additional_features_.28advanced.29

How to reproduce


  1. Download max-gen-deploy tool at http://download.moddevices.com/releases/max-gen/max-gen-deploy_v4.tar.gz

  2. Run ./mod-build.sh

  3. The process fails at publish.py:
    File "publish.py", line 45, in <module> release_process = json.loads(req.read().decode()) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads return _default_decoder.decode(s) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 366, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 384, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded

Expected/suggested solution


The error states that it can’t decode a JSON object. So maybe the url (http://pipeline.dev.moddevices.com/maxgen/bundle/) at which the script looks for a JSON file is no longer available. I’m just guessing here. But I would like to hear if there’s something I could do on my end.

Environment

macOS 10.13.6

Have you heard back anything on this? I can’t seem to get either the Max Duo package or the method you are trying to work either. I am getting the same errors.

Unfortunately, I haven’t heard back. Would still like a solution to this though.

With the release of the DUO X, we had some changes in our cloud. The official Max package that can be downloaded from the Max package manager has been updated to support these changes. However, this project has not been updated to support these changes yet. We will have a look at this soon.

If you would like to do any of the advanced steps in the meantime, like changing the ttl and (or) add a GUI, the plugin can still be build with the Max package from the package manager. Once the plugin is built and deployed, it should be located on the device in the directory /root/.lv2/ . The ttl information can be adjusted by entering the device with ssh by running ssh root@192.168.51.1 (the password is “mod”) and adjusting the information there. Alternatively the plugin can also be copied from the device to your computer by going to the terminal and using the following commands:

$ scp -r root@192.168.51.1:/root/.lv2/<plugin-name>.lv2 <local-destination-path>

Now the plugin should be copied to the location that is given at the place of the <local-destination-path> . Once it’s there the changes can be made to the bundle. When the changes are applied the plugin can be deployed to the device again by running:

$ tar cz <plugin-name>.lv2 | base64 | curl -F 'package=@-' http://192.168.51.1/sdk/install

Thanks Bram!

Is there a way to install the Max package without using the Max package manager?
I am running Max using Wine and everything works except for the package manager -_-

Tried locally compiling using the max-gen-skeleton project, but that fails as reported here: Doesn't work with MAX 8.1.8 exports · Issue #2 · moddevices/max-gen-skeleton · GitHub

Btw, the publish.py request to http://pipeline.dev.moddevices.com/maxgen/bundle/ results in a 308 Permanent Redirect.

At the moment there’s no way to install the Max package without using the Max package manager.
This possibility got broken and still needs to be fixed.
Sorry for the inconvenience. Keep us posted if you manage to find a workaround.

Dear Bram,
thank you very much for this information. Unfortunately the first part of the procedure work fine, but on deploying command i get an error “no plugin here” and the process quits without success.
Maybe something new appened on this thread?
Now, I’m just trying to change my max gen~ plugin to permit a parameter to be “toggled” 1 or 0 by the footswitches… Maybe there is a fast solution for allowing that?
thank you very much!

Recently we received some reports that the Max Gen deploy steps are not working. It was not yet fixed. I’m not 100% sure, but this may be the reason for your issue.

Can you please point to me which publish.py specifically?

The fix here is simple, just change the URL to https.

max-gen-deploy_v4.tar.gz from Max gen~ - MOD Wiki

Changing it to https results in:

$ ./mod-build.sh 
Please type your plugin name, then press enter to confirm
testplugin
Submitting process...
{"authorized_by": null, "created": "2021-03-09T20:27:07.919433", "data": {"build_env": "maxgen", "build_id": 309, "builder_version": "1", "buildroot_pkg": "max-gen-plugin", "bundles": [{"mod_license": "free", "name": "testplugin.lv2", "release_number": 0, "supported_bin_compats": ["arm-a7", "aarch64-a53"]}], "developer": "MOD Devices / Cycling '74", "project": "MAX gen~ Plugins", "supported_bin_compats": ["arm-a7", "aarch64-a53"]}, "href": "https://pipeline.dev.moddevices.com/maxgen/bundle/6047da1b1f75a115da604ee6/", "id": "6047da1b1f75a115da604ee6", "logs_href": "https://pipeline.dev.moddevices.com/maxgen/bundle/6047da1b1f75a115da604ee6/logs/", "report_href": "https://pipeline.dev.moddevices.com/maxgen/bundle/6047da1b1f75a115da604ee6/report/", "source-href": "https://pipeline.dev.moddevices.com/maxgen/bundle/6047da1b1f75a115da604ee6/source/", "status": "waiting"}
Traceback (most recent call last):
  File "publish.py", line 46, in <module>
    release_process = json.loads(req.read().decode())
  File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

Alright, I know what the issue is. Give me a couple days and I’ll get this fixed.

2 Likes

Sure, I no longer have a max license though.
Am now looking at hvcc2lv2, probably using dpf, so then we can use puredata to create dsp graphs :slight_smile: