Closed dndrks closed 1 year ago
gosh, this is so good. so good! thank you so much!
I think one thing to make sure of, whichever route we go, is that we make sure to create the data directory if it doesn't exist.
I think I lean towards the path.seamstress
route: it seems more friendly towards novice users sharing their scripts without having to potentially .gitignore
the data
folder or commit it manually? on the other hand, I doubt anybody anywhere is telling a novice git user to do git add .
on the command line, so maybe this worry is unfounded?
yes yes yes, totally agree re: taking the path.seamstress
route.
pushed changes, ready for final review! tytyty @ryleelyman !
summary
this PR introduces keyboard-driven MIDI learn functionality, with supplementary
.pmap
generation and automatic reading at script load :)lingering q's
re: the
.pmap
workflow, i'm curious if it'd be useful to centralize all script-generated seamstress data under<path.seamstress>/data/<seamstress.state.name>/
? on the one hand, i kinda dig all the script-generated data tracing along the invocation, but this seems more of a convenience for someone using a script -- as a script author, i might want to play from my git folder and not worry about keeping itdata
-free.totally open to any ideas you have @ryleelyman !
details
MIDI mapping
enter mapping UI: while running a script, focus the params screen and press SHIFT + M to toggle between the params UI and the mapping UI:
toggle MIDI learn: press ENTER on any unassigned entry (any with a
-
) to toggle MIDI learn:wiggle control: once seamstress receives a MIDI CC on any channel / number / device, it will register the assignment and save a
.pmap
file in theseamstress.state.path
:delete an assignment: in mapping mode, any learned parameter can be cleared with SHIFT + BACKSPACE
.pmap
'swrite whenever a mapping is established, a
.pmap
file is automatically generated with the corresponding data. the.pmap
's filename is built as:seamstress.state.path .. "/" .. seamstress.state.name .. ".pmap"
. to write on-demand:pmap.write()
read whenever a
.pmap
file with the above pattern is detected inseamstress.state.path .. "/" .. seamstress.state.name
, it will be loaded at script launch. to read on-demand:pmap.read()