Open helgoboss opened 2 years ago
Ah, the reason is that the target "Project: Navigate within tracks" takes absolute values. The "Glue" section calculates the new absolute value based on the total number of tracks and the incoming increment. This behaviour makes sense for discrete increments applied to discrete/continuous targets and continuous increments applied to continuous targets but not really for continuous increments applied to discrete targets. I think the "Glue" section should handle this and quantize continuous increments as +1/-1 if the target is discrete. A speed setting could be added as well in this case.
Oh, but actually the existing behaviour was intended: main/lib/helgoboss-learn/src/mode/mode_struct.rs:6060 says:
/// Yes, we want to ignore the target's atomic step size! We want a full control sweep to
/// always result in a full target sweep!
#[test]
fn continuous_to_discrete_shifted() {
We can't simply change this, also because there are plug-ins out there which expose continuous parameters as discrete parameters with a very large value count (hello NI). The "full control sweep" = "full target sweep" would not work anymore then. So either we ...
This depends on the target, so I think the middle option (additional "make relative" mode) seems wrong. Also when you think of the SY mapping concept. The Controller Compartment sends either relative, or absolute, or "make relative". It is the NI-Plugin related main mapping that knows about the peculiarities of its parameter values.
Context: https://forum.cockos.com/showpost.php?p=2591069&postcount=2420
Setup:
The problem here is that tracks are skipped. Probably because we have continuous increments but this target is discrete.
Quick solutions: