On Thu, 26 Jun 2025 14:17:23 +0200
Kristian Amlie <krist...@amlie.name> wrote:

>This is something I've been wanting for a while: The ability to modify 
>free envelope points using MIDI Learn instead of just the ADSR parameters.
>
>This actually turned out to be pretty easy to implement, and I already 
>have a prototype locally which works. Each axis of each point is 
>independent, and you can learn both axes, or only one, it's up to you. I 
>just haven't done the UI part yet, so my prototype depends on saving a 
>MIDI Learn file and then making manual changes before loading it again.
>
>But I do have some questions:
>
>
>- Question 1: What is the meaning of the word "increment" when it comes 
>to envelopes? This is mainly used by the CLI currently, but it will also 
>show up in the MIDI Learn list. Typically it's referred to as "X 
>increment", which in actuality refers to the Time taken for the curve to 
>progress to that point. I don't see how the word "increment" is related 
>though...

It's been a while now... but if I remember right, I did that to make it clear
it's not a simple value but a delta i.e. an offset from the previous point.

>This is important, because currently MIDI Learn data is saved by string 
>value, not index, so the name is set in stone once we pick it.
>
>
>- Question 2: When Ctrl-Shift-clicking on a point, you will learn that 
>specific point, obviously, but there are two axes you could learn. My 
>suggestion for how to present this in the UI is simply:

Ummm. Ctrl + Right mouse button click.

>1. Pops up "Learning Env Freemode Point 2 X (Time)"
>2. It also contains the string "To learn the other axis, click Cancel".
>3. If it is learned, it disappears and only that axis is learned.
>4. If you click cancel, it pops up "Learning Env Freemode Point 2 Y 
>(Amplitude)", and now it will learn that axis instead.
>
>Does that sound reasonable?

In most places I think we use the Shift or sometimes Alt key for a variation.

Possibly a more user friendly answer might be when initiating a learn, for a
single incoming controller to generate a pair of learn lines with slightly
different text lines. e.g.

Part 1 Kit 1 AddSynth Amp Env Point 4 amp
Part 1 Kit 1 AddSynth Amp Env Point 4 time

That sort of wording would ensure they stay together, and the user can later
independently alter the min/max amounts.

Just before reaching the Min.Max controls all incoming values will have been
converted to 0-127 floats and after these are currently then expanded to the
actual required range.

Time is a difficult one. We'd need some form of ranging adjustment as it could
be mS or Seconds. Possibly, Min and Max could be redefined as multiplier and
value.

Whatever the choice the wording has to be user friendly - start using words
like 'delta' and we'll lose many of them.

P.S.
You definitely don't pick the easy ones do you :)

-- 
Will J Godfrey



_______________________________________________
Yoshimi-devel mailing list
Yoshimi-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/yoshimi-devel

Reply via email to