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