Problems deploying a plugin


#1

Hello there,

  • I installed the docker plugin builder image and compiled my own plugin

  • I used docker cp to copy my newly made lv2 onto the host machine into ~/mod-plugins and did an export

    LV2_PATH=~/mod-plugins , so my my directory structure looked like this:
    [rajan@malamute ~]$ find $LV2_PATH
    /home/rajan/mod-plugins
    /home/rajan/mod-plugins/bolliedelay.lv2
    /home/rajan/mod-plugins/bolliedelay.lv2/manifest.ttl
    /home/rajan/mod-plugins/bolliedelay.lv2/bolliedelay.ttl
    /home/rajan/mod-plugins/bolliedelay.lv2/bolliedelay.so

  • I started development_server.py of the mod-sdk (up to date with git’s origin/master), opened localhost:9000, made myself a nice GUI and ended up with that:

    [rajan@malamute ~]$ find $LV2_PATH
    /home/rajan/mod-plugins
    /home/rajan/mod-plugins/bolliedelay.lv2
    /home/rajan/mod-plugins/bolliedelay.lv2/manifest.ttl
    /home/rajan/mod-plugins/bolliedelay.lv2/bolliedelay.ttl
    /home/rajan/mod-plugins/bolliedelay.lv2/bolliedelay.so
    /home/rajan/mod-plugins/Bollie_Delay.modgui
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/screenshot-bollie-delay.png
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/thumbnail-bollie-delay.png
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/knobs
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/knobs/boxy
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/knobs/boxy/black.png
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/stylesheet-bollie-delay.css
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/pedals
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/pedals/footswitch.png
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/pedals/boxy75
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/pedals/boxy75/black.png
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/icon-bollie-delay.html
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/utils
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/utils/dropdown-arrow-black.png
    /home/rajan/mod-plugins/Bollie_Delay.modgui/modgui/utils/dropdown-arrow-white.png
    /home/rajan/mod-plugins/Bollie_Delay.modgui/manifest.ttl

  • Now, deploying with the SDK GUI is successful, but on the MOD, my plugin gets the default tin box case and cannot be loaded (Error adding effect)
    Directory structore on the MOD itself:

    [root@modduo ~]# find .lv2/bolliedelay.lv2/
    .lv2/bolliedelay.lv2/
    .lv2/bolliedelay.lv2/bolliedelay.so
    .lv2/bolliedelay.lv2/manifest.ttl
    .lv2/bolliedelay.lv2/bolliedelay.ttl

So there’s no GUI. I also tried to create a GUI for simple amp and could deploy the plugin. At least the simple amp could be loaded by the MOD, but unfortunately only with the standard GUI.

So, I hope, I simply miss a step here. :wink:

Cheers
Bollie

EDIT:
Here’s my source: https://www.ca9.eu/lv2/bolliedelay
Don’t be too hard on me: At least the TAP-Button is not yet “wired” internally. It’s all a work in progress and meant for learning. :wink:


#2

right now the modgui is not added in the original lv2 bundle.
when deploying the SDK is not checking if the modgui is on a separate bundle or not.

for now you can manually add the modgui to the original bundle, by doing (in generic terms):
mv Bollie_Delay.modgui/manifest.ttl bolliedelay.lv2/modgui.ttl
mv Bollie_Delay.modgui/modgui bolliedelay.lv2/
edit bolliedelay.lv2/manifest.ttl and add <modgui.ttl> to the seeAlso property (it’s separated by commas).
delete Bollie_Delay.modgui directory (now empty)


#3

Thanks a lot! That worked! Although I still get “Error adding plugin”, when I want to put it on the pedalboard. My guess would be, that I got something wrong regarding the trigger button. Is there any logfile on the MOD, that I can look at either via the Web-UI or SSH to find out, why adding it to the pedal board isn’t possible?


#4

on your linux system run this:
file bolliedelay.lv2/bolliedelay.so
does it say it’s an ARM binary or Intel one?

If you’re using 1.0 you may need to restart the MOD, not needed in 1.1.

testing the plugin inside the mod can be done like so: (after ssh login)

mod-host -p 1234 -i
add <plugin-uri> 0

The expected output is “resp 0”, anything else should return an error.


#5

@falkTX It indeed was an x86_64 file. I have no idea why, but I guess, it was some leftover from testing my makefile likes this: ~/mod-plugin-builder/plugins/package/bolliedelay/source$ make

After deleting any .so in that directory and using ./build bolliedelay I had a working arm binary.

Thank’s for your support, especially on the weekend! :smiley:

Cheers
Bollie


#6

Any plans to “automate” this any further, to say, that the SDK put anything in the right place?


#7

I also notice that a default-preset.ttl is needed to load a plugin in the pedalboard, is it possible to generate it as well with the MOD-sdk?


#8

Yes, it should be possible to make this easier and append a modgui to the manifest.ttl.

The default-preset.ttl is possible to do on the SDK, to a certain extent.
We need to run the plugin to be able to extract internal lv2 state.
So for that we created this little tool:

It’s included inside the Duo as generate-default-presets binary.


#9

Thanks, works nicely, but, to be honest I would very much prefer to generate the default-preset.ttl just for a single plug, the one I’m working on, instead for the complete folder. So I’ve patched this little tool to allow a given plug-name.
The patch add the possibility to give additional to the lv2_path a plugin-name to generate the default -preset.ttl only for this plug. When no name is given, it behave as before.
I’ll send the patch to github for your review.


#10

Makes sense, I did it that way cause I needed generating the presets for a collection of plugins.
I’ll look into your changes soon.


#11

My plugin works without adding a default preset. Is this now obsolete?


#12

No… presets have always been optional


#13

please can you explain me, how to use “generate” after building, to generate the default-prsets?


#14

Hey,
Any chance of sharing the container?
I was just building one, it seems to works, but the jack client seems to be passing only midi and no audio.