helgoboss / helgobox

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

Make it possible to combine "Make relative" with step setting #702

Open helgoboss opened 2 years ago

helgoboss commented 2 years ago

Make relative produces a continuous increment. At the moment, it will be converted to 1/-1 in some cases or maybe even the target step size will be ignored (?)

We should introduce "Force continuous" #183 but name it as enum:

a) Use incoming step size (allows full sweep) factor b) Use target step size if target discrete factor c) Define custom step size (= force continuous)

Continuous absolute target (volume): a and c make sense. Default: a

Continuous relative target (doesn't exist yet but could exist in future, e.g. with clap format): same as above

Discrete absolute target (navigate within tracks): a, b and c would make sense. Default = a (use incoming step size)

Discrete relative target (mouse scroll wheel): b would make sense. Default = b

Trigger target: like discrete relative target

vonglan commented 2 years ago

Hey, I think this is what I intended with #204 ! Right now I need it again, because a VST I recently purchased (GForce SEM) has only one parameter for pitch, but I have separate virtual (and real) source knobs for coarse and fine. So I would like to use a factor of 0.1 or 0.05 for the "Pitch Fine" virtual source (in case it is from "make relative" or from an encoder).

helgoboss commented 2 years ago

Hey, I think this is what I intended with #204 !

Sounds like something else to me. This issue is not about a general switch, it's about choosing which step size to use, in the GUI via dropdown, not via knob/fader/....

Right now I need it again, because a VST I recently purchased (GForce SEM) has only one parameter for pitch, but I have separate virtual (and real) source knobs for coarse and fine. So I would like to use a factor of 0.1 or 0.05 for the "Pitch Fine" virtual source (in case it is from "make relative" or from an encoder).

You can do that already using conditional activation. Please discuss in #204 if you have new ideas about the general switch.

vonglan commented 2 years ago

I do not mean the "general switch" idea. And I know about conditional activation ;-)

I want to create a mapping, which has as its input a knob, which is converted using "make relative" (in the controller mapping), and then being able to have FINE control with that knob. In other words, moving the knob from one to the other extreme should cover only a small part of the VST parameter range (for example 1/10). I tried to achieve that using Step min = 0.1, but it does not work.

This is my (main) mapping:

{
    kind = "Mapping",
    value = {
        id = "o1S-zNFI9b_GU9taXNXqj",
        name = "8",
        source = {
            kind = "Virtual",
            id = "SY/Osc2PitchFine",
        },
        glue = {
            step_size_interval = {0.001, 0.005},
            step_factor_interval = {1, 5},
        },
        target = {
            kind = "FxParameterValue",
            parameter = {
                address = "ById",
                fx = {
                    address = "ById",
                    chain = {
                        address = "Track",
                    },
                    id = "61A22922-B9CD-9B4F-994F-25CF630FF949",
                },
                index = 1,
            },
        },
    },
}
helgoboss commented 2 years ago

Did you try adjusting target min/max? That's what one usually uses for and restricting the target range. And it works for "Make relative" as well.

vonglan commented 2 years ago

Did you try adjusting target min/max

But then I am stuck to one specific part of the range.

I want to use one mapping, to go from target value 0 to 0.6. Then use the "fine tune" mapping, to go from 0.6 to 0.622. Some time later, I want to go with the "coarse" mapping from 0.622 to 0.422. The "fine tune" to 0.415.

helgoboss commented 2 years ago

Yes, then I guess this FR here could be useful to you. It would allow you to conditionally switch between to "Make relative" mappings with different step sizes.

vonglan commented 2 years ago

Yes. the factor for relative is the important thing for me.

I had some more ideas, which I would like to write down (even though I do not have a use case or a need for them):

helgoboss commented 1 year ago

When implementing this, "Make relative" should also be improved so that repeated arrival of 1.0 increases and repeated arrival of 0.0 decreases. This makes it possible to easily deal with encoders that can only send absolute values. See https://forum.cockos.com/showthread.php?t=277640, Qube Mobi One