Norns: FR: add a "favorite" mechanism to the SELECT menu

Created on 22 Sep 2020  路  13Comments  路  Source: monome/norns

a recent support ticket surfaced a nice feature request for on-norns management of which scripts the SELECT menu presents to the user.

current behavior: all scripts, regardless of direct need (eg. I want to use a script which requires the Molly engine from the Molly project but I won't be using the Molly _script_), surface in the SELECT menu.

desired behavior: user wants to manage, from the norns hardware alone, which scripts the SELECT menu presents.


I put in some thought on this today and realized that currently, holding key 1 in the SELECT menu doesn't execute anything (whereas a press toggles back to the currently running script). so, maybe we can endow a key 1 hold in SELECT with special powers?

proposed behavior:

  • user navigates to SELECT and highlights an entry they want to hide
  • user holds key 1 and presses key 3 to hide the entry from SELECT

    • this two-key gesture adds the filepath for the entry to an ignore.txt

  • when building the visible list, omit any paths from the ignore.txt file
  • when the user holds key 1, the hidden entries are shown again but dim (screen level 2, maybe?)
  • while holding key 1, the user can navigate to a hidden entry with the encoders

    • if they press key 3 while holding key 1, the entry is removed from ignore.txt and will display in the SELECT scroll again

    • if they release key 1 while on a hidden entry, they are re-focused onto the next visible entry

proposed behavior (thank you @pq + @tyleretters for refinement!)

  • SELECT has two sections: favorites + all
  • e3 CW on an all entry defines it as a favorite (adds a * to the right in the all view)
  • favorites are surfaced at the top of the SELECT scroll (by adding to / querying a favorites.txt file?)
  • as the user scrolls down past favorites, they hit a line after which all entries are shown (here, favorites have a *)
  • e3 CCW on a favorite in the all section will remove the * and pull it out of the favorites section of the SELECT scroll (user cannot accidentally remove a favorite in the favorites section
enhancement menu

Most helpful comment

heya, i ended up taking an initial stab at this. i figure instead of putting the * at the end (since there are scripts with longer names) it'd be easiest to put it at the front. ~right now i'm just trying to think of the best way to track the "favorites" at the top.~

All 13 comments

yay! some script management would be awesome. for conversation, i wonder about an inverse affordance... a while ago we briefly discussed "favorites" (https://github.com/monome/norns/issues/987) but maybe this is even better?

oh! @pq , i really like framing this as a positive endowment, rather than a negative.

ok, so what if:

  • the k1+k3 gesture defines a "favorite" (adds a * to the right?)
  • favorites are surfaced at the top of the SELECT scroll (and added to a favorites.txt file?)
  • as the user scrolls down past their favorites, they hit a line after which _all_ entries are shown (favorites again have a *)
  • k1+k3 on a favorite will "un-favorite" it, removing the * and pulling it out of the top section of the SELECT scroll

i'd be curious how other folks respond but sounds great to me. thanks for exploring @dndrks!

i love the favorite, *, and all entries concept.

i have questions around the k1+k3 gesture. it will be a new gesture, no? i wonder if there is another gesture that is already established would work. e3 comes to mind, like in the parameters menu. spin e3 clockwise to toggle *, spin counter to toggle off?

oh, duh, yeah, e3 would be primo. cool, re-scoping!

  • e3 CW on a SELECT entry defines a "favorite" (adds a * to the right)
  • favorites are surfaced at the top of the SELECT scroll (and added to a favorites.txt file?)
  • as the user scrolls down past their favorites, they hit a line after which all entries are shown (favorites again have a *)
  • e3 CCW on a favorite will "un-favorite" it, removing the * and pulling it out of the top section of the SELECT scroll

also perhaps favorites don't have an asterisk on the "upper favorite zone"? it'll just be a column of asterisks which won't be helpful:

ARCOLOGIES      *
ASH             *
AWAKE           * 
CHEAT_CODES     *

and one more thing - maybe you can only toggle favorites on and off from the "lower all zone" because otherwise, toggling it off in the "upper favorite zone" it will cause an unpleasant jump when the script disappears?

love this UI proposition!

heya, i ended up taking an initial stab at this. i figure instead of putting the * at the end (since there are scripts with longer names) it'd be easiest to put it at the front. ~right now i'm just trying to think of the best way to track the "favorites" at the top.~

favorites will now show up at the top of the menu upon reloading the select screen 鉂わ笍

added in #1207 !!

how can i try this out!??!

@tyleretters it's in the main branch, so you can ssh in, cd norns, git pull, ./waf

this is absolutely beautiful. amazing work @zzsnzmn

Was this page helpful?
0 / 5 - 0 ratings

Related issues

catfact picture catfact  路  7Comments

catfact picture catfact  路  9Comments

synthetiv picture synthetiv  路  6Comments

pq picture pq  路  7Comments

okyeron picture okyeron  路  6Comments