Open RattlesnakeLodge opened 2 years ago
Hi. Without having looked into this in detail, there are some things that you need to be aware of when using the display sources:
<All>
) or multiple lines (Line = <Multiline>
). If you use this and mix it up with single display sources or single line sources, the things you mention are bound to happen! So make sure you don't mix them.Sure you don't have those?
To answer your questions...
ReaLearn uses a "takeover" mechanism to not run into problems as the one you describe in 2.
Any chance you can reproduce this reliably with a minimal set of mappings?
Yes, I just did.
In a test scenario, I setup two instances of Realearn. I named them "Test - base (non-Superior)" and "Test - FX (Superior)".
The same outcome occurs. When the FX plugin UNVEIL is not open or focused, the LCD 1 is showing the name of track 4, color is yellow, as directed by "Test - Base (non-Superior)" instance. When I open UNVEIL, I see a quick blip of cyan on LCD 1, then black. I can initiate your Reaper action "Send feedback now to all instances", and the LCD 1 goes from black to its intended Cyan, displaying the text "100Hz". When I close the plugin, the LCD 1 goes black again, instead of reporting track 4's name in yellow.
I made another video demonstrating this specific test.
Thanks. I mean, can you also attach a test project?
Not sure what you mean by "test project". An .rpp file, exported Lua of my ReaLearn mappings, something else?
RPP file is always the best, at least if you don't use the monitoring FX chain.
I created a very bare test project, re-creating the same scenario from my previous comment. This time I chose ReaEQ for my test case, since everyone with Reaper likely has that FX installed. Same results.
BTW, I DO use the monitoring FX chain, so I am also posting exports of my ReaLearn instances, in case the .rpp file does not contain metadata for the monitoring FX chain.
GitHub apparently has issue with .rpp attachments, so I'm posting a Google Drive link to the .rpp file.
.RPP file https://drive.google.com/file/d/19UEw50neebGmFLIQHGb0aFEqxXgemnnO/view?usp=share_link
Controller Compartment - both instances.txt Main Compartment - X-Touch Test - base.txt Main Compartment - X-Touch Test - FX.txt
Thanks, I could reproduce this. ReaLearn seems to miss an event that should make it suspend the non-superior instance. I'll have a look what causes this.
Ha, no, it's something else. ReaLearn prevents sending repetitive duplicate feedback to devices (which is good). However, it does that on a per-instance basis. So the "FX" instance remembers that it sent a string "LowShlf" to the X-Touch. When the "base" instance takes over, it sends track name to the device. When the "FX" instance takes over again, it still remembers having sent "LowShlf" and doesn't send it anymore. I'm not 100% sure it's your bug but it is one for sure. Fixing.
Just tested on new "pre-10". Still the same behavior, unfortunately. :-( I setup the same test scenario from the project I sent you.
I also noticed this same behavior within the same instance. I tried to do something funky, and trigger different mappings with virtual source "Ch 1 - LCD line 1"...
To compound this, I noticed the same flicker then off issue on the V-Pot LEDs, when I mapped them like the same scenario above. Different values on three Ch 1 V-Pot LED mappings , active only when a particular track monitor mode returned a value of 1. Not sure if this is related, but thought I would record the behavior.
I'm no developer, but I'm wondering if ReaLearn is trying to send new feedback before the "Reset feedback when releasing source" command has finished executing. In other words, possibly an overlap of resetting old feedback and activating new feedback? I tried playing around with disabling "Reset feedback..." in Options. While it's a big pain to keep "Reset feedback" unchecked, disabling it did in fact remedy the test issue.
BTW, LOVE the next and previous buttons on the bottom of the mappings. Huge time-saver! :-)
Can you send me this very simple one-instance setup as RPP? The simpler the better.
Attaching Google Drive link to .rpp file and controller/main compartment exports at the bottom of this comment.
I think I may have possibly stumbled upon the root cause, looking at the real feedback logs.
In my new test scenario, I set up a browse mappings case like the one I previously described. I have a group for each track input monitor mode (Off, Normal, Tape), and a browse mappings target assigned to control source Ch 1 V-Pot. Feedback sources include V-Pot LEDS (single mode), LCD line 1 with static text but different colors, and LCD 2 with different text.
When I make the FIRST positive increment (from mapping 1 to mapping 2) on the browse mappings control (turn V-Pot clockwise by one step), it activates the next mapping in the group as expected. The LCD very briefly shows the new color, but quickly goes black. From the feedback logs, it appears the correct LCD feedback is sent, but immediately reset/cleared.
When I make a NEGATIVE increment, the correct feedback is sent, and no reset/clear MIDI message is sent. LCDs display as they should.
When I turned off "Reset feedback when source is released", everything behaves as it should.
Real Feedback Logs...
Positive increment from mapping 1 to mapping 2 " 87220.877 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 12 38 4E 6F 72 6D 61 6C 20 F7 (Normal) 87220.880 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 72 03 00 00 00 00 00 00 00 F7 (Normal) 87220.882 | ReaLearn qzSXUf54 | Real feedback | B0 30 06 (Normal) 87220.908 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 12 38 4E 6F 72 6D 61 6C 20 F7 (TakeOverSource) 87220.911 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 12 00 4D 6F 6E 69 74 6F 72 F7 (TakeOverSource) 87220.913 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 72 00 00 00 00 00 00 00 00 F7 (FinallySwitchOffSource) "
Negative increment from 3 to 2... " 87659.626 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 12 38 4E 6F 72 6D 61 6C 20 F7 (Normal) 87659.628 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 72 03 00 00 00 00 00 00 00 F7 (Normal) 87659.630 | ReaLearn qzSXUf54 | Real feedback | B0 30 06 (Normal) "
NOW, with "Reset feedback when releasing source" turned off...
Positive increment...
" 87772.511 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 12 38 4E 6F 72 6D 61 6C 20 F7 (Normal) 87772.513 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 72 03 00 00 00 00 00 00 00 F7 (Normal) 87772.515 | ReaLearn qzSXUf54 | Real feedback | B0 30 06 (Normal) 87772.542 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 12 00 4D 6F 6E 69 74 6F 72 F7 (TakeOverSource) 87772.544 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 12 38 4E 6F 72 6D 61 6C 20 F7 (TakeOverSource) "
Negative increment...
" 87840.301 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 12 38 4E 6F 72 6D 61 6C 20 F7 (Normal) 87840.303 | ReaLearn qzSXUf54 | Real feedback | F0 00 00 66 14 72 03 00 00 00 00 00 00 00 F7 (Normal) 87840.305 | ReaLearn qzSXUf54 | Real feedback | B0 30 06 (Normal) "
As I stated in my previous message, it would be great if I could continue to use the "Reset feedback..." option, so I don't have to create a bunch of "Off" mappings for LCDs, V-Pot LEDs, Buttons, and Faders when they're not in use. But if that is the culprit and there is no way to solve this issue, I will make do. :-) I do it in CSI with explicit "NoAction" statements.
Google Drive Link to test project...
https://drive.google.com/drive/folders/1k2GqasJKJhnBrk_fL672XRxHVL4Y8JxD?usp=share_link
Any updates on this issue?
Sorry, I'll look at this bug eventually but I can't promise a date. There's a lot of stuff in the pipeline and Playtime has more priority for me at the moment ... Playtime means fun + business, fixing subtle ReaLearn bugs means no fun + doing things for free ;)
Sir...
I have not had much time to fully test the X-Touch color LCD scribble strips with ReaLearn, but I have started to notice some oddities.
I have adding a mapping schema for basic DAW operation on 3 instances of Realearn, in my monitoring FX chain. These three instances are for my X-Touch, X-Touch extender, and MIDI Fighter Twister. I have it so each one is syncing its compartment parameters with each other. It works flawlessly in basic DAW operation.
Now, I have created three more instances of ReaLearn, tagging them as "Superior". These three are for focused FX mappings. The idea is the mappings in these three will activate when specified FX plugins are in focus. When those plugins are not focused, my control surfaces and MIDI Fighter Twister fall back on the basic DAW operation.
The issue is when pulling up an FX GUI into focus, the X-Touch and X-Touch extender LCDs very quickly "flash" the correct text and colors, but go black within a few milliseconds. Unfocusing the FX plugin also leaves the LCDs black, but only on the X-Touch. The Extender seems to work as expected. Only when I invoke a parameter change tied to display feedback, do the LCD displays refresh. For example, hitting the fader bank button to change parameter 1, thus changing which tracks are represented on each X-Touch channel.
One thing of note: I reverted to basic Mackie and Mackie XT display types at one point, to see if it is the color MIDI messages being the issue. When in Mackie display mode, the upper row / line 1 did not refresh correctly when focusing a plugin, but the bottom row / line 2 did.
I made a quick video to demonstrate, and better explain what this behavior is.
https://photos.app.goo.gl/SP7PgcbwxuEerfno9
All other control and feedback components work as expected, when focusing and unfocusing the FX. All faders, v-pots, v-pot LEDS, buttons and their feedback work. The LCDs are the only ones having issues.
Thanks again in advance for any help with this issue!