Save settings on Exit & Manually Saving Settings

Option: Save settings on exit

If Renoise crashes after making settings that are saved in Config.xml or KeyBindings.xml, the settings will be lost.
If you have multiple Renoise instances running, if you make important settings in Renoise instance A and then close Renoise instance B after closing Renoise instance A, those settings will be lost.
This is just an example, but I wondered if it could be solved by the following options.

  • Preferences: (checkbox) Save settings on exit
    • Default: Check
    • Uncheck the checkbox to not automatically save settings
  • Preferences: (button) Save Settings
  • Menu: File > Save Settings
  • Shortcut key: Save Settings
  • API: Save Settings

*“Save Settings” is an overwrite save to the settings file.

I think this makes no sense. Renoise already is saving prefs on exit. But if it crashed, the config might be invalid and it would be not good to save it. On the other hand, it tries to save the song data while a crash. I think Renoise is quite complete here already.

Save settings manually might help indeed though, for some edge cases.

API Save Settings is not a good idea, now any plugin could force a settings save, so out of control of the user.

I am writing through a translation service, so apologies if my wording is incorrect.
It is my intention to make automatic save on exit (current behavior) an option so that the operation saves the configuration only manually.
This would eliminate the need to write to the configuration file on exit and make the configuration file read-only except when writing manually, which I believe would make it more crash-resistant, more stable, and more robust.

Since I am using Renoise in a live performance environment with 4 to 8 instances running concurrently and abusing it heavily, I would like the behavior and design to be as robust and crash-resistant as possible.
With this proposal, I am offering a perspective that may be useful for such stable behavior.

Sorry if I’m wrong, but I don’t see much point in that point, since Renoise Lua allows arbitrary commands to be executed by os.execute().

https://files.renoise.com/xrnx/documentation/!%20Introduction.txt.html#h2_4

  • The Renoise Lua API also allows global File IO and external program execution (via os.execute()) which can obviously be hazardous. Please be careful with these, as you would with programming in general…
1 Like

Hm, yes I agree with you. Good counterpoints.

1 Like