this PR includes a migration of the PSET file mechanisms from norns, with seamstress-specific UI + state management 😃
@ryleelyman , i think this is pretty feature-complete, but please please lmk if there's anything i've overlooked / anything you want to behave differently!! <33
navigation
toggle the PSET menu with SHIFT + P:
use the left and right arrow keys to switch between SAVE, LOAD, and DELETE.
use the up and down arrow keys to navigate the PSET list -- hold ALT to jump by 8 slots.
save
when SAVE is highlighted, press ENTER on any PSET slot to open a text field for naming it:
ESCAPE cancels the write, leaving the slot untouched
ENTER commits the write
scripting
you can use params:write(number, string) to commit a preset to slot number using string name.
you can also specify params.action_write(filename, name, number) as a callback to this action in your script's init()
load
when LOAD is highlighted, press ENTER on any PSET slot to load it:
on successful read, pset >> read: <path_to_file>.pset will print to the console
scripting
you can use:
params:read() to read the last loaded PSET
params:read(number) to read the PSET at slot number
params:read(filepath) to read the PSET at a specific filepath
you can also specify params.action_read(filename, name, number, silent) as a callback to this action in your script's init()
delete
when DELETE is highlighted, press ENTER on any PSET slot to queue it for deletion, which requires secondary confirmation:
scripting
you can use:
params:read() to read the last loaded PSET
params:read(number) to read the PSET at slot number
params:read(filepath) to read the PSET at a specific filepath
you can also specify params.action_delete(filename, name, number) as a callback to this action in your script's init()
data management
I've also added seamstress.state.data, which is an alias for path.seamstress .. "/data/" .. seamstress.state.name .."/").
further:
if a script is loaded and there is not a corresponding seamstress.state.data folder on the device, it is established
if a script has its own PSETs bundled in a data folder at seamstress.state.path, then these are copied over to seamstress.state.data (here's a test script: testing.zip)
this PR includes a migration of the PSET file mechanisms from norns, with seamstress-specific UI + state management 😃 @ryleelyman , i think this is pretty feature-complete, but please please lmk if there's anything i've overlooked / anything you want to behave differently!! <33
navigation
toggle the PSET menu with SHIFT + P:
use the left and right arrow keys to switch between
SAVE
,LOAD
, andDELETE
. use the up and down arrow keys to navigate the PSET list -- hold ALT to jump by 8 slots.save
when
SAVE
is highlighted, press ENTER on any PSET slot to open a text field for naming it:scripting
you can use
params:write(number, string)
to commit a preset to slotnumber
usingstring
name.you can also specify
params.action_write(filename, name, number)
as a callback to this action in your script'sinit()
load
when
LOAD
is highlighted, press ENTER on any PSET slot to load it:on successful read,
pset >> read: <path_to_file>.pset
will print to the consolescripting
you can use:
params:read()
to read the last loaded PSETparams:read(number)
to read the PSET at slotnumber
params:read(filepath)
to read the PSET at a specific filepathyou can also specify
params.action_read(filename, name, number, silent)
as a callback to this action in your script'sinit()
delete
when
DELETE
is highlighted, press ENTER on any PSET slot to queue it for deletion, which requires secondary confirmation:scripting
you can use:
params:read()
to read the last loaded PSETparams:read(number)
to read the PSET at slotnumber
params:read(filepath)
to read the PSET at a specific filepathyou can also specify
params.action_delete(filename, name, number)
as a callback to this action in your script'sinit()
data management
I've also added
seamstress.state.data
, which is an alias forpath.seamstress .. "/data/" .. seamstress.state.name .."/")
.further:
seamstress.state.data
folder on the device, it is establisheddata
folder atseamstress.state.path
, then these are copied over toseamstress.state.data
(here's a test script: testing.zip)