On Mon, 27 Jan 2025 10:04:56 +0100
Kristian Amlie <krist...@amlie.name> wrote:

>On 27.01.2025 01:05, ichthyo wrote:
>> On 26.01.25 23:29, Will Godfrey wrote:  
>>> Next, disable LV2 from loading and saving state (as I tried earlier).  
>> 
>> I want to object strongly against that, after all the discussion and
>> the good insight gained. Just amputating some problematic functionality
>> we don't get under control, is a recipe to generate hard to maintain 
>> software.
>> 
>> Why could it be any good to amputate config for the LV2 implementation?
>> 
>> I want to be able to save a changed general config from a LV2 plugin.  
>
>*Global* config should be saveable to the main config from within LV2, I 
>don't think anyone is objecting to that.
>
>> I want to be able to start a new LV2 instance, without having
>> to set a different oscil size and interpolation, or other settings.
>> Kristian has demonstrated why he wants to disable the Program Change
>> to avoid a disaster.  
>
>I agree very much with the incentives here. However, I do not like that 
>the LV2 config messes with the config of regular instances. I feel like 
>they are completely unrelated to LV2, so why should it be saved there? A 
>user could be using regular instances for completely different purposes 
>(and hence different config), and have this regularly screwed up 
>whenever a change is made in LV2.

Yes exactly! Please bear in mind that when I implemented *default* states I
never intended them for LV2 at all. Indeed, they were intended to *mimic* LV2
per instance state storage.

If we do want a generic default config to replace the hard-wired one then it
should be a completely separate file - possibly named 'master-config'.
Presumably it should be applied to both LV2 and stand-alone, and would be
over-ridden by the LV2 stored states, and the same for stand-alone instances
and numbered states.

I've just spent most of the morning going through the files and my notes to
refresh my memory :(

>The current code actually mitigates this somewhat by only saving the 
>option you changed, not the whole set of options. We have not yet talked 
>about whether we want to keep that or not.

It's not applicable to LV2, as on close LV2 stores all the *current* settings
for that instance. For stand-alone I'd want to to keep it.

>> If a LV2 plugin starts, it *should* do all the regular normal config 
>> handling.

Most of the base config is ignored by LV2, as are things like Jack/Alsa in the
instances.

>> That is it loads the base config and the default form Instance 0

No. Only the (new) master-config.

>> 
>> Same on saving. If you change something, it /should indeed write/ to the
>> base and default config, which is the one for Instance-0.

Yes to the few base config settings used, as they should be truly global. Not
so sure about master-state unless specifically requested.

The instance files are quite short and only have instance *configuration* data
(as opposed to global config). These are created automatically when selecting
new instances in stand-alone. They don't have any relevance to LV2.

The state files include this along with the current settings for all parts
(i.e. patch-sets), Sys and Insert effects, MIDI-learn, Vectors, Scales.
Also, other things they include are the currently *selected* bank and preset
root directories.


Finally, the *contents* of Banks and Presets are truly global and are
readable/writable by any instance.

-- 
Will J Godfrey


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

Reply via email to