hihihi <3
@ryleelyman, seamstress has been such a fantastic project to follow, thank you for extending the inherent fun of scripting musical ideas in Lua to such fantastic depths!!
inspired by discussions on Discord + #18 , i built up a starting point for importing the power of norns params and bending their API and methods for control to use in the seamstress environment. there are a lot of useful things to be done from here, but i feel like these introductory bits would be good to have in many hands.
summary
keyboard nav + interaction
though mouse-based interactions are entirely possible + super fun with seamstress, i think that this environment has a unique opportunity to accommodate many different Accessibility needs than is possible with norns. so, i've rooted all the parameter interactions in keyboard control:
up and down will navigate the params menu
holding ralt while using these keys will jump between separators
right and left will increment and decrement the selected parameter
holding ralt while using these keys will apply large parameter deltas of x10
holding rshift while using these keys will apply fine parameter deltas of /10
enter on a separator will jump to the next separator
enter on a group will enter that group
while in a group, backspace will exit the group
scripting
controlspec-powered params
when scripting for norns, i really like using controlspec to define parameters. under the hood, all the raw values are between 0 and 1, even if they each have different ranges, quantizations, and meaning. this makes modulating values very easy, because i don't need to know how many items an option table has, or whether a parameter is 1-indexed, etc -- i just need to pass a value between 0 and 1. but their flexibility means instantiating them is a little bloated.
so, i've included three 'presets', which are each just controlspec under the hood, following the norns API:
please lmk any thoughts / feedback -- all of this is modified norns code, so i tried to strike a balance with wholesale importing (eg. controlspec.lua was a copy/paste except for fixing up a 5.3-deprecated math function) and purposeful omissions, given the scope of seamstress. there are a lot of directions into which this could be extended (MIDI mapping, PSET management, different parameter types), but hopefully this feels like solid footing from which to jump!
hihihi <3 @ryleelyman, seamstress has been such a fantastic project to follow, thank you for extending the inherent fun of scripting musical ideas in Lua to such fantastic depths!!
inspired by discussions on Discord + #18 , i built up a starting point for importing the power of norns params and bending their API and methods for control to use in the seamstress environment. there are a lot of useful things to be done from here, but i feel like these introductory bits would be good to have in many hands.
summary
keyboard nav + interaction
though mouse-based interactions are entirely possible + super fun with seamstress, i think that this environment has a unique opportunity to accommodate many different Accessibility needs than is possible with norns. so, i've rooted all the parameter interactions in keyboard control:
scripting
controlspec-powered params
when scripting for norns, i really like using controlspec to define parameters. under the hood, all the raw values are between 0 and 1, even if they each have different ranges, quantizations, and meaning. this makes modulating values very easy, because i don't need to know how many items an
option
table has, or whether a parameter is 1-indexed, etc -- i just need to pass a value between 0 and 1. but their flexibility means instantiating them is a little bloated.so, i've included three 'presets', which are each just controlspec under the hood, following the norns API:
params:add_number(id, name, min, max, default, units)
params:add_option(id, name, options, default)
params:add_control(id, name, controlspec, formatter)
visual adjustments
to accommodate color needs + preferences, the highlight color can be defined (in RGB) by the running script:
paramsMenu.highlightColors.r
(default: 0)paramsMenu.highlightColors.g
(default: 140)paramsMenu.highlightColors.b
(default: 140)eg.
test script
please lmk any thoughts / feedback -- all of this is modified norns code, so i tried to strike a balance with wholesale importing (eg.
controlspec.lua
was a copy/paste except for fixing up a 5.3-deprecatedmath
function) and purposeful omissions, given the scope of seamstress. there are a lot of directions into which this could be extended (MIDI mapping, PSET management, different parameter types), but hopefully this feels like solid footing from which to jump!