Support in Mod UI for lv2 port group extension

Hello,

I’d like to see support for lv2 port group extension in mod. This would improve greatly the effect settings page.

I already implemented a prof of concept and if there is interest I would invest some of my spare time implementing this feature, but I need some mentoring since c++, python are not the programming languages I’m more familiar with.

To get an idea this is TAP Equalizer/BW before:

And after (mod-ui patched and the plugin ttl enriched with lv2 port groups):

I really enjoy mod and I’d like to give something back to the community.

Andrea.

Please, show me the code: GitHub - sejerpz/mod-ui at features/lv2groups

12 Likes

Nice !

maybe I’m confused but parameters have nothing to do with port groups?
afaik port groups relate to audio and cv ports.

although I really like this parameter grouping in the settings!

[edit: I guess these can apply to both audio/cv and parameters/control ports? neat! this would certainly be a big improvement for the plugin settings]

1 Like

Disclaimer: I’m still pretty new to all this (LV2, C++, Python, Mustache.js, etc…).

From what I understand in the specs, groups are mainly meant for audio streams (mono, stereo, ambisonic), but then I came across this post [1] on the Zynthian forum, dug a bit deeper, and found some .ttl files (like [2]).

Looks like groups can actually be applied to any port and in drumkv1.ttl, for example, they’re even used on regular control ports.

This is just a proof of concept, but honestly it’s super handy. With Dwarf, my first frustration was trying to assign a button to the mod-mixer plugin, without groups, I had to carefully read every label just to find the right channel.

[1] LV2 Controllers Groups - #2 by jofemodo - Software Updates - Zynthian Discourse
[2] drumkv1/src/drumkv1.lv2/drumkv1.ttl at main · rncbc/drumkv1 · GitHub

2 Likes

Yeah this UX is really nice. Of course not necessarily all plugins would support it, but it would certainly enhance the experience for those that can!

Perhaps you can open a Draft PR on Github so code review can be done there.

2 Likes

Done, I didn’t know Draft PR of Github: nice!

2 Likes

That’s super handy! Especially for plugins with lots of controls.
Perhaps you could change the white text to black text on the yellow background.
And maybe you could try something like dividers to mark the different sections instead of colors. To make it a bit less in your face. But it might be too unclear then of course.

Nice work!

1 Like

Sure, this is just a preliminary implementation.

For example this could be another simple approach with less visual impact:

:wave: Andrea

4 Likes

although I would actually color the stripe on the knobs as well. would make it much easier to visually see which sections belong together!

3 Likes

That’s a good idea, but I don’t know if is really feasible.

The knob is an image and should be regenerated with a transparent stripe in order to color with css and from what I see there are several knobs (3 to 17 steps and more).

Here a quick hack: dirty edited the knob.png file to make the stripe transparent and added some css class and divs to paint the stripe.

Looks good, but not perfect:

or this with a thinner top border:

Andrea

5 Likes

This is great! makes it look much less “generic” (even though it still is of course).

I never liked the whole “everything is a purple knob” UI and it’s so hard to navigate and find the right controls.
This will hopefully help a lot!

1 Like

Yeah, I like the last screenshot too! :blush: But to really complete it, I still need to think through all the assets involved (like switches, LEDs, etc…).

For now, I think this is good enough as a starting point. I’ll wait for some feedback on the general approach from mod developers. In the meantime, I also asked on the LV2 irc channel if using the port groups extension is the right choice.

6 Likes

This one hits the spot for me.

In general; great idea and something that would really help smoothen the experience for me.
You’ve got my vote!

5 Likes