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

Reply via email to