preset handling


(catchpharse) #1

Hi LUA experts,

I like to implement preset-management into my tool. Is there already a canonical way to do this (I am speaking a ?lib from danoise somewhere) or shall I use standard LUA function to just write a text file to disk or are there any recommended XML libs for this?

Which route shall I take?

Thank you very much for your thoughts,

catchphrase


(danoise) #2

Is there already a canonical way to do this (I am speaking a ?lib from danoise somewhere)

Haha, I am flattered :wink:

Take a look in the Renoise.Application.API, it contains a bunch of features for exchanging presets.

Also, thread of interest:

https://forum.renoise.com/t/loading-saving-a-fxp-preset-via-lua/45282


(catchpharse) #3

Thanks a bunch, will have a look!

EDIT:

Ah, well, not sure if I made myself clear enough.

My tool has a certain state (set of variables), and I like to save this set of variables as presets, as for example the Epic Arpeggiator did. Preferably in correct XML.

EDIT2:

You are pointing me to DocumentNode, aren’t you? I think, I get the idea…


(danoise) #4

My tool has a certain state (set of variables), and I like to save this set of variables as presets, as for example the Epic Arpeggiator did

Aha, OK yes - now I get it.

For simple tools that have a fixed set of preferences you can simply instantiate the renoise.tool().preferences.

Lookie here:

https://github.com/renoise/xrnx/blob/master/Documentation/Renoise.ScriptingTool.API.lua#L336

What it’s doing, technically, is to create an instance ofrenoise.Document.DocumentNode, which is associated with the tool and automatically loaded on startup. Also, any values that change are automatically saved to the document (not immediately, but as the tool or Renoise is unloaded).

When/if you need more complex stuff I would suggest looking into extending therenoise.Document.DocumentNode as a class, or possibly, invent your own solution.

Here is an example tool I did for Raul which (among other things) implements the renoise prefs as a class. Could be used as a starting point?

https://forum.renoise.com/t/solved-help-create-an-area-with-vertical-scrollbar-with-buttons-in/47059


(catchpharse) #5

This can be perfectly used as a starting point, thank you very much!