helgoboss / helgobox

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

Incremental Button step size seem to behave differently #736

Closed vonglan closed 1 year ago

vonglan commented 1 year ago

An incremental button in my mappings was configured like this: glue = { absolute_mode = "IncrementalButton", wrap = true, step_size_interval = {0.1, 0.1}, step_factor_interval = {1, 5}, }, and used to step by 10%. Now it steps by 1%, and is shown in the GUI as: Speed Min +1 x

helgoboss commented 1 year ago

Whether ReaLearn displays "Speed" or "Step size" depends on the character of the target.

Discrete targets use the "step_factor_interval" setting (called "Speed" in the GUI), continuous targets use the "step_size_interval" setting (called "Step size" in the GUI). So I suppose you are using a different target now, one that's discrete.

I'll close this for now because this is by design. Feel free to reopen if it's something else.

vonglan commented 1 year ago

I think it is changed behavior. I tested with both u-he Diva and TAL 101, and they both respond with 1% steps, whereas I am pretty sure they were 10% originally. I could retest it with an older ReaLearn version, maybe 2.8.2 (that is the higher one of the two, which I used to create the main presets for the two VSTs).

vonglan commented 1 year ago

I used 2.9.1 (2.8 not available in ReaPack, and anyway might not be needed). Diva step size is 5% (because main mapping says: max speed 5%), and then 10% when I change that to 10%. Controller Mapping shows as: Speed Min 10 x.

When I reload the same project with 2.14 pre 9, the controller mapping shows as: Speed Min +1 x. (the plus sign is added) and the incremental change is only 1%.

helgoboss commented 1 year ago

I will check the current behavior in Diva, wanted to give this synth a ride anyway. Which parameter in particular?

helgoboss commented 1 year ago

I used 2.9.1 (2.8 not available in ReaPack, and anyway might not be needed). Diva step size is 5% (because main mapping says: max speed 5%), and then 10% when I change that to 10%. Controller Mapping shows as: Speed Min 10 x.

Ah, this is different from your first report. So it was always "Speed" then?

When I reload the same project with 2.14 pre 9, the controller mapping shows as: Speed Min +1 x. (the plus sign is added) and the incremental change is only 1%.

The "+" sign is just a cosmetic improvement I added at some point.

Maybe this is due to #615? For a long time ReaLearn prevented "step_factor_interval" and "step_size_interval" to deviate in the Lua code (it showed an error message on import if they did ... if it didn't, it must have been a bug). But I lifted this limitation in later versions, see #615 Now both can deviate. And the logic is as described in my first reply in this issue.

vonglan commented 1 year ago

Ah, this is different from your first report. So it was always "Speed" then?

The GUI always showed "Speed", I also wrote that above. I called it "step" before that, because that's more how I think about increments (I think we had the discussion before).

Yes, I am sure it comes from the duplication described in #615 (although I never saw that error message).

VIa Lua export/import, I changed to

absolute_mode = "IncrementalButton", wrap = true, step_size_interval = {0.1, 0.1},

(deleting the step_factor_interval 1,5 line)

This did not help. The GUI still shows speed = +1

When I changed speed with the GUI to +10, the behavior is as expected again, However Lua export now shows both parameters again:

step_size_interval = {0.1, 0.1}, step_factor_interval = {10, 10},

helgoboss commented 1 year ago

That's expected behavior. Mmh, how to explain this ...

So, both step_size_interval and step_factor_interval are two different settings. Completely unrelated since #615 and before that only "married by force" ... they should always have been unrelated, ideally.

They should be saved/exported as two different settings, that's correct. And you should also provide them as two different settings on load/import. If you exactly know you will have a discrete target, then just leave step_size_interval at its default. Vice versa.

vonglan commented 1 year ago

Makes sense, thanks for explaining.