helgoboss / helgobox

Helgobox: ReaLearn & Playtime
https://www.helgoboss.org/projects/helgobox
GNU General Public License v3.0
211 stars 20 forks source link

"Fire after timeout" does not appear to be functioning for sending MIDI messages #1231

Closed tjwrona closed 1 month ago

tjwrona commented 1 month ago

Describe the bug I am trying to send 2 MIDI commands simultaneously to ReaLearn from Guitar Pro and then have ReaLearn map those MIDI commands to specific CC messages and send them out to my hardware device. Because my hardware device cannot handle both messages simultaneously I want to map one of them to use "fire after timeout" within ReaLearn, but the second I try to use that setting the command no longer seems to get sent to my hardware device (no matter how long the timeout is set to)

To Reproduce I am trying to trigger these two ReaLearn mapping simultaneously: image image

If I set both to "fire on press" they seem to work (most of the time) the hardware device gets both commands, but sometimes it will discard one of them because it is receiving them both too quickly one after the other

Expected behavior I would expect the "target" MIDI message to be sent out to the hardware device after the timeout (I tried setting the timeout to all different lengths, none of them seemed to work)

Screenshots See screenshots in "To Reproduce" section

Desktop (please complete the following information):

Additional context This is what it looks like from within Guitar Pro (2 notes being sent simultaneously) image

tjwrona commented 1 month ago

Sending the first note as a "grace note" which happens slightly before the beat in Guitar Pro seems to work... so I will use this as a workaround for now. But ideally I would be able to send both notes simultaneously in Guitar Pro and have ReaLearn delay one of them by about 20 milliseconds to simplify my Guitar Pro charts. image

helgoboss commented 1 month ago

I think "Fire after timeout" is not supported for real-time control, yes (MIDI-source-to-real-time-capable target = real-time control). Would be a new feature.

tjwrona commented 1 month ago

Okay good to know, it is definitely confusing though. I will use the workaround for now because it is working great :)

helgoboss commented 1 month ago

I added an info about this limitation to the reference.