On Thu, 3 Jul 2025 09:37:49 +0200 Kristian Amlie <krist...@amlie.name> wrote:
>On 01.07.2025 13:36, Will Godfrey wrote: >> 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. > >Ok. Right now the word "Time" is not even mentioned though, so it's a >bit hard to understand "increment" in that context. Any objections if I >change it to "Time"? > >>> 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. > >Good idea, I like this suggestion. It's both simple and intuitive, best >of both worlds. > >> 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. > >This is just translated directly to the 0-127 range, which is >logarithmic; small steps at first, then big steps. It has the same >response as when you drag the points with the mouse. I don't think we >need to do anything else here, do we? > >> Whatever the choice the wording has to be user friendly - start using words >> like 'delta' and we'll lose many of them. > >Exactly! I think "time" is a good candidate, and it's what's being used >for the knobs (when Free Mode is off). > >> P.S. >> You definitely don't pick the easy ones do you :) > >Haha, no, I suppose not! But you'll see: the patch is not that big! Sorry for the late reply - I've had a great couple of weeks and am just getting sorted after the New Forest Folk Festival. LAC virtually back-to-back with this is a bit bit exhausting! OK, This seems fine. Incidentally, there is a little lee-way with the text. Where names have changed in the past, the text2data code looks through several names to find a match. -- Will J Godfrey _______________________________________________ Yoshimi-devel mailing list Yoshimi-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/yoshimi-devel