Improving plugins_custom_gui and zynthian_engine_jalv.py to add custom GUI to LV2 plugins

Hi @jofemodo , I developer some LV2 plugins with custom python GUI.

Currently, registering custom Python Touch Widgets for 3rd-party LV2 plugins requires modifying plugins_custom_gui inside zynthian_engine_jalv.py, which is overwritten on every system update. Would you consider allowing an external drop-in configuration (e.g. in /zynthian/zynthian-my-data/jalv_custom_gui.json) or auto-detecting a zynthian_widget.py inside the plugin’s LV2 bundle? This would make 3rd-party plugin distribution completely update-proof.

Thank you soo much, I really love my Zynthian and I’m having a lot of fun with it :heart:

ps: this is a plugin I just developed, it’s a replacement for SooperLooper, since I cannot make it work properly (looped tracks often get stuck and do not respond to clicks and commands).

3 Likes

Hi @ascari.maximilian !

Do you have a repository with your code.
I would love to test your plugins.

Thanks!

I second that!

BTW, you can now put your custom widgets in this folder:

/zynthian/zynthian-ui/zyngui/widgets_user

They won’t be overwritten by updates, but they must have the right file name:

zynthian_widget_plugin_name.py

where plugin_name is the “official” plugin’s name lowercased and with spaces replaced by underscores. If you have doubts, look at the UI’s debug log. When creating the processor, it prints a line with the “user custom widget” file name it’s looking for.

Remember that the class inside the file also have to match the filename.

Regards,

1 Like

I am interested to know what issues you have with SooperLooper. It is the most established and feature rich looper available for zynthian so it should be stable and offer most features that users require. We don’t expose all features because some don’t make much sense in zynthian… or at least not to me!

Hi @jofemodo , not yet! As soon as I’ll publish them, I will let you know.

Cool! I’ll give it a try tomorrow. Thanks!

Hi! Yes SooperLooper is a great, features rich plugin and you did a great job.

I tested it on Oram and I had often problems using it, because looped tracks often got stuck and they did not respond to commands (like mute, pause, reverse, and so on).

At the time I didn’t feel like using it in a live show. So I started developing my own Looper, as an experiment. I like to have all the functions on screen without the need to menu dive or to search for the right parameter to tweak.

Recently I started using Vangelis and maybe now SooperLooper works well, but at the moment I find my looper easier to use, mostly because I don’t have to menu dive.

I’m aware of some things that need to be fixed or improved and there are probably bugs I did not find out yet :sweat_smile:

My main goal now is to explore creative ways to use the touch screen and create good user interfaces with limited menu diving.

Next step, I’ll try to use zynthian knobs to change some params, with knobs hardcoded to these params only (when the ui is fullscreen and the default zynthian params column on the right is hidden).

For instance, I want to use knobs to change duration, speed, pitch and volume of each loop. I don’t know how to do it, yet… but I’ll find it out.

Cheers!

I made a quick test and it did not work. No “use custom widget” inside logs. I updated Vangelis last friday. Do I need to update it again?

Thanks

Of course!! How do you think the new feature, implemented today, gets into your zynthian?

cherrs