HMI Widget popup message without assignment to a specific footswitch + showing plugin state by internal changes

Hi, @falkTX.

Is there any plans to make possible shows popup_message without an assignment to a specific param? I would like to show some popup messages when an effect state changes. In my case, the idea is to improve the tetr4 switch for shows the current preset selected when someone assign a MIDI or CV to a plugin footswitch.

I have also other question unrelated. When I change the parameter internally, how can I send the message for the modui and mod hardware?

Example:

  1. There are two distinct buttons that I want to only one be on;
  2. If a user activate one of the two buttons, it’s ok;
  3. When a user activates a second button, the previous that was on is turned off.

I make the code for change detection and change the plugin value, but just setting the parameter value doesn’t have effect on modui or mod hardware. We need to call some special function?

not at the moment, an assignment kinda works as an “opt-in” for users saying “yes, I want to receive popups from this plugin if needed”
allowing any plugin to open a device popup at any moment can quickly get out of hand…

mod-host uses LV2-Extensions/control-input-port-change-request.h at master · KXStudio/LV2-Extensions · GitHub as a way to support this.
API is pretty simple, should be straight forward.
But if you have issues let me know.

1 Like

Ok. I’ll maybe create a parameter called “assign to something to receive notifications”.

It worked, thanks. When I enable a switch, now the previous is disabled :slight_smile:

Peek 22-04-2023 15-11

But now I’m having problems with Mod HMI, specifically on footswitches states (the normal behavior without extensions). I assigned respectively the PRESET 1 and PRESET 2 to the device footswitches B and C of the first page. Both are on latching mode.
image

I was expecting that control input port request extension also changes the footswitch led state. Consider this following example:

  1. The current preset is 1. The led B is on.
  2. when I press the Footswitch C:
    1. the PRESET 2 parameter is changed from 0.0f to 1.0f;
    2. the plugin detects the change and changes its internal state: the current preset is changed from 1 to 2;
    3. the plugin calls: control_input_port->request_change(handle, PRESET_SELECTOR_1, 0.0f);
    4. the web turned down the PRESET 1 parameter, because of request_change() was called;

But on device, both leds B and C are on, when I was expecting that only led C has be on.


@falkTX, on my case, do I need to use the lv2-hmi.h extension or is there another simple extension like control input port request extension that I can request the update of the led status?

EDIT: I’m testing lv2-hmi.h. I think that it would be the most suitable for my case

1 Like

@falkTX , I noticed that the HMI notification only shows the “message alert” if the assigned parameter is be showing on the screen.

I think that it is the desired behavior, but would you consider to relax this restriction? Could be a new function or an additional parameter on lv2hmi.h

I’m trying to show messages when external footswitches are pressed but this limitation implies that they will only be showed if the Dwarf is presenting a specific page :pensive:.

1 Like

Dont think the relaxing of the rules will happen… as I said, it is intentional that dialogs/popups are related to addressings, so that user only sees what is appropriate.
if plugins start using popups left and right, it quickly gets out of hand.

so those are to be used sparingly when nothing else works. that is, get users attention via popup.
it is not meant to be used as some debug mechanism.

if you want to display some “current” value of sorts, use lv2-hmi api stuff to change the value label, or unit, or other related fields.

3 Likes

Ok. Thanks for answering me!