It is a truth universally acknowledged that a seamstress script, being in posession of a good complexity, must be in want of some params. Talking with @sixolet and @dndrks, we seem to have the foundations of a specification.
seamstress params should be API compatible with norns params.
(I'm curious to see whether improvements can be made to the guts of param types, for example "everything is secretly a controlspec with taper characteristics" would be cool to see.)
seamstress params will be displayed in a separate GUI window
closing this window should not close seamstress; it should be re-openable by keyboard shortcut on the other GUI window (which currently does close seamstress) or by a REPL (Lua) command.
the params window should respond appropriately to clicking, dragging and scrolling
also maybe to typing to set values? that might require more of a lift.
the business logic for this should be written in Lua as much as possible, to encourage contributions from non-Zig coders.
the API for adding one's own params should also be norns-compatible.
params should be MIDI-mappable.
On the Zig side, several things need to be done:
[x] ask the OS for a second window
[x] which does not close seamstress when quit
[x] more generally, figure out the guts of differentiating events according to which window they occur in
[x] refine accuracy of mouse location
[x] refine the display of text to allow, e.g. centering, for more beautiful displays of params.
On the Lua side, several things need to be done:
[x] figure out to what extent we want to copypasta norns business logic
e.g., how much of paramset.lua, controlspec.lua and so forth do we want to import wholesale vs. tweak?
it's very easy to be API-compatible while changing things, I'm discovering :)
[x] write a menu.lua for managing interaction with the OS window.
[x] append a keyboard shortcut to screen.lua for reopening a closed params window
[x] expose a Lua command for reopening a closed params window.
It is a truth universally acknowledged that a seamstress script, being in posession of a good complexity, must be in want of some params. Talking with @sixolet and @dndrks, we seem to have the foundations of a specification.
On the Zig side, several things need to be done:
On the Lua side, several things need to be done:
paramset.lua
,controlspec.lua
and so forth do we want to import wholesale vs. tweak?menu.lua
for managing interaction with the OS window.screen.lua
for reopening a closed params window