Bug : Midi message ignored with lv2:enabled button toggled


#1

Hi.
I made a plugin called Plujain Ramp and It seems to works well on the Mod Duo except one little thing.

source code is here :

The plugin is provided in two versions, Plujain Ramp and Plujain Ramp Live, the trouble only concerns Plujain Ramp Live. I need to explain one of its features to explain the bug.

Plujain Ramp Live provides 1 midi in/out port to synchronize multiple instances of the plugin without having a rolling transport and make very worked tremolo sounds. For this, it sends “Midi start” and “Midi Stop” messages to its midi output, of course it can also receive and treat this messages in midi_in.
The plugin contains a port named “Active” that has the property lv2:enabled, this port is needed because it prevents artefacts and plugin sends a midi message when it’s toggled (under conditions…).
On the Mod Duo only, a second instance of Plujain Ramp Live do not receive the midi message when the first one instance is actived/deactivated. I tried to change the Midi Start/Stop messages to Midi note on/off and it the same. I also seen that midi message has been well sent (tested with a fluid organ plugin).

I just tried to comment the line “lv2:designation lv2:enabled ;” of the “Active” port in the .ttl, and this way it works nice. But it’s a shame that this port doesn’t activate/deactivate the pedal button, and it will confuse the users. It also means I need to make another one version of the plugin for the mod.

Cheers.


#2

It’s a bit unclear to me what the problem is.
You wrote, your first instance send the midi message correctly? You wrote, "other " plugs receive the message. Just your second instance of Plujain Ramp, didn’t receive the message, or, didn’t act as expected?
So, do you expect that the second instance switch it’s own state from bypassed to enabled when receive the midi start message, or do it just set some internal used values?


#3

I understand that it can be a bit unclear, it’s quite complex.

You wrote, your first instance send the midi message correctly? You wrote, "other " plugs receive the message.

Correct, that’s it.

Just your second instance of Plujain Ramp, didn’t receive the message, or, didn’t act as expected?

Second (or third, or more…) instance didn’t receive the message. I tried to modify the behaviour of the plugin directly at reception of message in code, but message never come. As I said, remove the lv2:enable in active port in the .ttl file fix this problem.

So, do you expect that the second instance switch it’s own state from bypassed to enabled when receive the midi start message, or do it just set some internal used values?

No, It just set some internal used values. I don’t know if a plugin can change from code its externals parameters… curiosity, is it possible ? desirable ?


#4

No, that’s why I ask, it’s possible, but not supported by the LV2 specs and could lead to u-defined beehive.

So that sound’s indeed strange. I guess you talk about the case were the plugin (slave instance) is in enabled state. Then, indeed, it shouldn’t make a difference if a plug have defined a port with lv2:enable


#5

So that sound’s indeed strange.

Yes I agree. It sounds like the bug would be: No midi message arrive to an instance if another instance of the same plugin has been deactivate during this buffer period.

I guess you talk about the case were the plugin (slave instance) is in enabled state.

Absolutely. Plugin has to be activated to make effect work, then midi messages decide if effect works. If plugin is deactivated, sound is bypass (except a little fade at deactivation to prevent artefacts).


#6

That smells like a global var, didn’t it?