Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new param menu #960

Merged
merged 36 commits into from Mar 19, 2020
Merged

new param menu #960

merged 36 commits into from Mar 19, 2020

Conversation

@tehn
Copy link
Member

@tehn tehn commented Dec 2, 2019

do not merge --- PR for testing/tracking

  • new param type: GROUP. fixes #491
  • SEPARATOR now can get a name, which makes it a heading. fixes #491
  • KEY3 on SEP jumps to next SEP (wraps to top)
  • add SYSTEM>AUDIO params automatically to param menu (so they are mappable/etc)
  • new preset read/write interface
  • K1 hold quick access to PRESET and MAP
  • K1 hold + ENC2 jump SEP
  • error handling for attempted group overlap/nesting

sys/audio menu:

  • change display/id names, capitalize groups
  • remove SYSTEM > AUDIO
  • set up mix/levels page

midi mapping:

  • new interface
  • show OSC paths (id)
  • support endless encoders. fixes #560
  • range scaling. fixes #522
  • cc ch select. fixes #551 and #853
  • mapping saving. fixes #600

misc

  • create tTEXT param type fixes #735
  • "hidden" attribute for params = do not show in menu
  • pset "name" attribute to save/load

notes

interface

  • basic tree for EDIT, MAP, PSET
  • EDIT: E3=change val
  • MAP: (midi mapping, show osc names): K3 = enter map edit
  • PSET: E2 scrolls action, E3 slot, K2 back, K3 confirm action. star shows last active pset

quick jump: K1(alt)+K2 = PSET, alt+K3 = MAP toggle

  • PMAP is saved when you save a PSET. there is one PMAP per script. PMAP is loaded on script load if found.

groups

params:add_group("this",2)
params:add_number("num1","num2")
params:add_number("num2","num2")
params:add_number("not","not")

this makes a group with two params. num1 and num1 go in the group (the first two that followed the definition).

groups cannot be nested.

named sep

params:add_separator("filter")

this prints "filter" above the line for the section (otherwise blank)

  • K2 on sep jumps to next sep
  • K1+E2 jumps between seps (plus top line)

hide/show

any param can be hidden from the list. indexing by number only.

params:hide(4)
x = params:visible(4) -- returns false
params:show(4)
  • by default everything is visible.
  • you can hide entire subgroups.
  • generally suggested that hiding happens in init as the menu does not manually rebuild itself unless it's entering/exiting a submenu. ie, more glue would have to be added to signal a menu list rebuild... which seems overkill.
tehn added 24 commits Dec 2, 2019
@tehn
Copy link
Member Author

@tehn tehn commented Jan 29, 2020

midi mapping now works. i apologize that this is taking me forever.

tehn added 6 commits Feb 14, 2020
@ngwese
Copy link
Member

@ngwese ngwese commented Feb 22, 2020

possible bug, for simple scripts which don't draw to the display the main menu gets redrawn on incoming midi data when parameters have been bound to midi.

setup

  • expressive-e touche connected as MIDI device 2
  • script:
function redraw()
  screen.clear()
  screen.update()
end
  • parameters mapped (and saved):
"reverb":"{accum=false, out_hi=2, out_lo=1, ch=1, dev=2, value=0, in_hi=127, in_lo=0, cc=17}"
"rev_eng_input":"{accum=false, out_hi=1, out_lo=0, ch=1, dev=2, value=0, in_hi=127, in_lo=0, cc=19}"

procedure

  • run script (see blank screen)
  • K1 to return to MENU
  • navigate to PARAMETERS
  • K2 then MAP > REVERB > reverb
  • K3 then LEARN
  • K2 then rev_eng_input
  • K3 then LEARN
  • K2 up to PARAMETERS
  • K1 to return to script view
  • touch midi controller and the last MENU screen is drawn but the key and enc handlers from the script are still in effect (it seems)
  • hit K1 three more times to go into and out of script/menu mode eventually installs the menu key and enc handlers
@tehn
Copy link
Member Author

@tehn tehn commented Feb 22, 2020

@ngwese i believe this fixes it

@ngwese
Copy link
Member

@ngwese ngwese commented Feb 23, 2020

@tehn - confirmed, that does indeed fix the redraw bug

@antonhornquist
Copy link
Collaborator

@antonhornquist antonhornquist commented Feb 23, 2020

works great, haven't found any bugs yet!

FWIW some reflections on the UI after testing for a while:

i'm not too fond of params automapping to CC100 when using K3 in the PARAMETER MAP section. i'd prefer setting a mapping to be an explicit action (sometimes you're just navigating around the menu to browse settings with no intent to do an action)

i found it a bit weird that the menu by default (on booting the device and turning E1 right) is navigated into the EDIT > section (presenting the actual parameters and values: levels, reverb, compressor + engine ones) and not the top node (the one with EDIT >, PSET > and MAP >). the way to get to PSET > and MAP > (by pressing K2 once) and the fact that they even exist is not evident without reading docs. i would prefer to start with the top menu node as "home". a regular tree starting from the top is in my opinion simpler and more discroverable (= less support questions).

the shortcuts K1-K2 and K1-K3 work differently depending on where in the menu the user is at the moment. so at the menu top section (presenting EDIT >, PSET >, MAP >) K1-K2 does not work while K1-K3 works like K3, but when navigated into either EDIT >, PSET > or MAP > they work as described in the PR. these also toggle between the EDIT > and PSET > and MAP > sections (for K1-K2 and K1-K3 respectively), rather than navigate to one definite section (as in "K1-K2 always takes you to PSET >"). in my opinion adding modes on top of modes like that makes the UI a bit fiddly.

@tehn
Copy link
Member Author

@tehn tehn commented Feb 24, 2020

thanks for testing!

  1. i think i can easily make the param data save on exit of the screen, that makes sense. of course not getting cc 100 means tuning the value or using LEARN, but i get what you mean (i think?)
  2. this makes sense. on bootup the first nav to the "param home" is fine
  3. i agree. the problem is 3 modes, 2 keys, and a weird classification (in my brain) of the screens. EDIT and MAP are essentially the same, but with different data, so i like the idea of toggling between EDIT and MAP with the same key. but the PSET shorcut breaks down when exiting that screen. it's almost like K3 should cease working (because it's a "toggle") and K2 just takes you back to whatever-was-last-used.
@tehn
Copy link
Member Author

@tehn tehn commented Feb 25, 2020

ok:

  • set default param menu to home on bootup
  • nav keys: alt-K2 now toggles between PSET and last-used MAP/EDIT. alt-K3 toggles MAP/EDIT. this makes more sense to me, treating the pages like toggles.
@tehn
Copy link
Member Author

@tehn tehn commented Mar 9, 2020

fixes #1030

@antonhornquist
Copy link
Collaborator

@antonhornquist antonhornquist commented Mar 10, 2020

tried this again, works well!

@tehn tehn removed the do not merge label Mar 19, 2020
@tehn tehn merged commit ed64ca4 into master Mar 19, 2020
1 check passed
1 check passed
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@tehn tehn deleted the param-renew branch Mar 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants