Synthv1.lv2 plugin?

Hello … anyone has “synthv1.lv2” plugin working on Patchbox OS Modep with rapsberry pi3 or pi4 ??

@fcapozzi I don’t see that plugin in the MOD Devices plugins listing or Patchstorage. Looking at the plugin itself it doesn’t have a MOD compatible GUI so I don’t think it will work in MODEP like the rest of the supported plugins. I’m sure it’s possible to create a GUI for MODEP but I’ve personally never done that with an LV2 plugin.

Hi jt, my question is because in the mod-plugin-builder tree there is “samplv1.lv2” plugin that is also available on patchstorage … ad it works. This plugins seems to be written by the same hands … and has the same graphic interface of samplv1. During compilation it is evident that samplv1 is based on qt5 framework as synthv1.lv2 plugin should be.
However synthv1.lv2 compilation fails … may be there is some hacking work to be done for adapting it to the modep environment. i wander however why this plugin is present in the mod-plugin-builder git tree … maybe ad unfinished port work …

Update … i had success in compiling the synthv1.lv2 for modep and … surprise … it works !!!
However no gui … al controls are available by default in the setup page … Since controls are too much is pretty difficult to have a clear command panel . however twiking a bit i assembled some interesting sounds … nice and clear …
Now i guess i need help for add a decent GUI to the code … as is in the samplv1.lv2 plugin but i don’t know how to build it.
By the way for compiling the code i had to add qt5 develop library to my Ubuntu 23.10 distribution.
However there is a no-gui patch in the plugins/package/synthv1 folder that is applied in the compilation so … qt5 environment is needed for compile but after that the lv2 plugin does not have any gui. Clearly in this condition the plugin is very experimental and i don’t guess is usefull to upload to patchstorage yet.

1 Like

Work in progress …
I analyzed in detail the samplv1.lv2 modgui and i understand how to adapt the gui code for the synthv1.lv2 plugin. But there is a problem i need to address first, so i need for your help.

Basically the modgui is a javascript application composed of three main files … an HTML objects description where each element consiste of a “div” section of a specific class that identify elements like switches, knobs and radio buttons. All this elements are placed on top of a background image that represent the instrument shown on the web interface. Then there is a CSS style sheet that define position, style and images to be used in the interface. Finally there is a javascript file that contain functions to handle interactive events. Each control described in the “.ttl” file have to be mapped in the modgui.ttl. I suppose that class identifiers among the elements have to be choosen in a specific list that is needed by Modep mod-host.

I made some try and i have been able to show the lv2 synthv1 plugin background GUI and i have the mod-switch on/off controll working and also a Volume OUT1 working.
So it is an hard work … but in principle is possibile to map each control on the background image and make an interactive interface.

The problem here is that synthv1 plugin has much more controls than the samplv1 counterpart.
Samplv1 has 54 controls while Synthv1 has 145 controls

Synthv1 has 2 synth section each with two oscillator with selectable waveforms and indipendent DCF DCA LFO and DEF sections controls. Then there is also a rich section of effect with reverb, chorus, phaser, flanger compressor and limiter.

So … the choice is or to have a very big background interface having all controls on the screen … or to make a pager selection for switching the three section synth1 synth2 Effects.

Actually the plugin compiled on Linux Ubuntu 23.10 with QT5 interface has this three section pager.
I never see a plugin available on patchstorage that has such a type of multi-page GUI interface already realized, and i did not found the mod-host MOD-UI gui developer referece to handle this.
In principle in javascript is possibile to have a pager interface but this javascript code run within the mod-host engine so i don’t know if such a thing is realizable.

If you know of a plugin that has a multi-page GUI please let me know … so i can look to the GUI code to learn by example. BTW it will be very usefull to have the MOD-UI language specification or such a tutorial.

Sorry for long post … hope to find some GUI developer here.

** Update **
I developed a Mod-GUI interface for synthv1.lv2 plugin … now testing in progress …

A detail zooming …

:slight_smile:

3 Likes

@fcapozzi that is awesome! What tool did you use to create the visual component?

Hi JT, i based my interface looking to the code of samplv1.lv2. I made a sort of reverse engineering process to understand how the gui works. It took about two weeks …

Hoever … the modgui is composed of this components.

A modgui.ttl file that map each control available in the synthv1.ttl file
A background png image,
An html5 file describing each control according a syntax learned by looking to the same file in samplv1 plugin.
A CSS style sheet that position each control on the background
A Javascript code that implement event response and drawing
A few images for the knobs and buttons.

There is a logic that implement the animation built into the modep. For example the lights green buttons switches are made of a tiny image that have either the "on led "and the “off led”, in the style sheet the right one is selected by positioning the beginning of the image to be viewed.

It take time but i could prepare a sort of lesson to upload to youtube the method for implement a simple interface on some plugin … however i learnt that by example so may be there is something actually miss.
I wish i would made a compact interface switching from a synth to the other with some tabs but i didn’t find a way to implement that.

I’m far from being an expert … say that this is my first gui interface that works … however i learnt many things i can share with the community.

1 Like

There’s some bits of info on MOD GUIs SDK here and here.

Hi JT i also found that source … the SDK docker container works nice. It has a limite bunch of ready template layouts that are very usefull and easy to use when controls are not so much.
There are no moving graphic elements since it lacks of javascript code. Nevertheless if you code some usefull plugin it could be the right choiche.
For complex situations like Synths i guess it is less usefull … however is a good knowledge starting point to learn what to do. For example it will be nice to redraw the Dexed GUI and make it similar to the Linux lv2 plugin counterpars … since the provided modep gui available in patchstorage is very poor.
However this process take times and effort … expecially for debugging.

P.S … i have a question for you … when developing i found that i have to reboot the PI4 for the modep host to pick up the modification … but i found that when installing some plugin from patchstorage … the new plugin became immediately available in the plugin toolbars … there is a shorter way to do the same without rebooting the pi4 every time ? If so … how to do it ?

Just restart modep-mod-ui and modep-mod-host:

sudo systemctl restart modep-mod-ui modep-mod-host

Possibly jack too, if the above doesn’t work.

It scans the plugins on startup, so it does not react to outside changes, without being restarted.