helgoboss / helgobox

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

Performance issues since Reaper 6.71 - slow / laggy Automation recording #787

Closed Fleeesch closed 1 year ago

Fleeesch commented 1 year ago

Greetings,

I'm getting some performance issues with ReaLearn and Reaper starting with version 6.71 (Windows 10). Just wondering if I'm the only one getting them.

Everything is smooth as Butter with Reaper 6.69 and ReaLearn 2.14.0, even on my lower-spec devices. I make the jump to 6.71 and automation recording with ReaLearn becomes extremly laggy.

Link to Reaper Foum thread

Issues

What I've tried

Example Project

automation_error_6-71_example.zip Just press play, ReaLearn then translates individual 14-Bit CC sweeps into volume automation data.

Visuals

6.69 behvaiour (normal) bugreport_221213_automation_error_6 69

6.71 behaviour (bad) bugreport_221213_automation_error_6 71

* * Specs * *

Reaper
- Official Realeases: 6.69, 6.71, 6.73
- 64-Bit, Windows

Desktop (custom)
- Win: 10 64-Bit (10.0.19045 Build 19045)
- i5: 2400 CPU @ 3.10GHz
- RAM: 8GB
- GPU: Nvidia Geforce GT 1030

Laptop (Lenovo T480)

- OS: Win 10 64-Bit (10.0.19045 Build 19045)
- CPU: i7-8550U
- RAM: 16GB
- GPU: Intel HD Graphics 620 / NVIDIA GeForce MX150
PucksEvilTwin commented 1 year ago

Your example project behaves the same on my system.

However, recording automation how I normally do it, using OSC via TouchOSC on a Touchscreen monitor, everything is still as smooth as butter.

Fleeesch commented 1 year ago

Are you using ReaLearn to map the OSC messages or Reapers internal OSC control support (the one under the "Control/OSC/web" tag in preferences)?

I'm only getting the slowdown issue with ReaLearn, recording automation with Reapers internal Mackie Control Universal protocol works without a problem.

PucksEvilTwin commented 1 year ago

Im using Realearn’s OSC implementation. Sorry, I figured that would be obvious but it makes sense to be ultra clear. In interest of being clear, I’m using touch automation here when I record my automation on my setup.

Fleeesch commented 1 year ago

No problem at all, it is absolutely not obvious that there might be a difference of outcome when mapping stuff via ReaLearn or Reapers internal Control Surface functionality.

Thanks a lot for your input! I'm going to try to figure out what the cause might be. Still suspecting there's something wrong with the recent versions of Reaper.

helgoboss commented 1 year ago

Interesting. @Fleeesch Did you try older ReaLearn versions with the latest REAPER? Same effect? What about REAPER 6.70? Maybe the REAPER changelog can reveal a suspicious change: https://www.reaper.fm/whatsnew.txt

Sorry, I'm a bit busy at the moment, not enough time to look into it.

Fleeesch commented 1 year ago

@helgoboss Here's a short documentation:

There's another user having UI issues with a recent version of Reaper , unrelated to ReaLearn. The same kind of GUI slowdown also occurs when you drag a fader with the mouse to write automation data in realtime, on a fresh install. Sounds like an issue with Reaper itself. OP also mentoined a huge imrovment in GUI reliability with Reaper 6.69.

I went through the changelogs of the official Reaper releases, the only entry I've found that seems to be GUI-related is this one:

Reaper Release v6.70rc1 - November 14 2022
+ Envelopes: improve redraw of envelope panel knob with touch automation
helgoboss commented 1 year ago

Thanks for the detailed testing, Fleeesch :)

Reaper 6.71+ & Realearn v2.14.0-pre.10+

  • Heavy slowdown of UI, top menu bar flashing, tons of undo points created during automation writing

Oh, so at least this point seems to be associated with changes in ReaLearn. Any chance you can pinpoint which release? 2.3+ to 2.14 is a large gap. Or did you mean 2.13+ instead of 2.3+?

Fleeesch commented 1 year ago

Glad to help. That's a typo indeed, I've meant to write 2.13.0.

From Reaper 6.71 on the heavy issues (top menu flashing) are introduced with Realearn v2.14.0-pre.10. The top menu flashing disappears if you turn off the "Show last undo point in menu bar", but the faulty automation data remains. Prior to Reaper 6.71 I couldn't find any difference in behaviour between ReaLearn versions starting from v2.13.0.

All the weird stuff that's happening seems to be closely related to Reapers GUI drawing. Things get a lot better when I scale down the Reaper window a lot. I initially thought the bottleneck might be my UHD display and some bad GPU compatibility issue, but the behaviour is almost identical on my laptop (Full HD, windows 125% scale).

Here's a demonstration of the menu flashing / undo point creation on a fresh Reaper install:

bugreport_221213_automation_error_flashing_6 71

RattlesnakeLodge commented 1 year ago

To chime in, I've noticed a similar issue, using 2.14 on Reaper 6.73. I noticed the flashy/flickering menu bar when doing simple like adjusting track volume via fader, or track pan via v-pot. No automation, just basic track adjustments.

I looked into undo history, and it's populated with a bunch of tiny increments of track volume adjustments, track pan adjustments, etc. It's quite a lot of undo points. Looking at the performance meter while making fader movement, CPU and disk usage do jump up a bit, likely from the writing of all those undo points.

Flipping into CSI, the issue is not present. Track volume adjustments have only one undo point.

Also, flipping back into ReaLearn, changing the target from Track Volume to a Reaper action (adjust track volume via midi cc/osc) only creates one undo point per adjustment.

helgoboss commented 1 year ago

Thanks @Fleeesch and @RattlesnakeLodge. That's some valuable info. I know why it happens. Preparing a bugfix release.

helgoboss commented 1 year ago

Should be fixed in upcoming release. At least it doesn't write undo points anymore.