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

restructure dust scripts, SELECT menu, allow "projects" #446

Closed
tehn opened this issue Jul 2, 2018 · 9 comments
Closed

restructure dust scripts, SELECT menu, allow "projects" #446

tehn opened this issue Jul 2, 2018 · 9 comments
Assignees
Labels
Milestone

Comments

@tehn
Copy link
Member

@tehn tehn commented Jul 2, 2018

dust restructuring

  • move dust/lib to norns repo. encourage lua libs and engines to be collaboratively maintained/developed.

  • remove the dust repo entirely. dust is now the local user folder. establish a "factory pack" of scripts that ship with a new device, or represent a cleanly-flashed image.

  • proper matron startup behavior for non-existent ~/dust

projects

  • project folder logic. "projects" can contain a bunch of extra files in their folder:

  • default pset files (these should get automatically copied to dust/data if the scripts data/subfolder does not exist on first run

  • other data files (and/or default data files)

  • audio files

  • "private" libs/engines can exist inside a dust script subfolder ie /scripts/tehn/lib. lua subfiles need to be called by include (basically do_file with path logic) as require will not watch these paths (and deal dynamically with reloading). scripts should not attempt to use private libs from another project.

  • standard init/reset behaviors for script data folder ie contents of scripts/mlr/data is default data (psets/etc)

file management

see maiden issue

  • upload single file from host
  • download single to host
  • upload zip (project) from host and auto-uncompress

git integration

see maiden issue

  • add git url
  • pull git
  • reset git (in case of local edits)
  • generate ssh keys
  • push git

new menu behavior

  • SELECT menu is a flat list, no folder diving. scripts represented this way:
mlr
earthsea/polyperc
earthsea/pluck
ish
tehn/mlr
tehn/mlr/alt
tehn/others/halfsecond

where the folder structure is:

mlr/mlr.lua
earthsea/polyperc.lua
earthsea/pluck.lua
ish.lua
tehn/mlr/mlr.lua
tehn/mlr/alt.lua
tehn/others/halfsecond.lua
  1. a "project" folder with a single file named the same as the folder.
    2-3. a project folder with several files.
  2. a raw lua file in the root folder
    5-7. within a subfolder, same pattern
  • note 'lib' and 'data' folders are ignored in the list

  • STARS (or favorites, whatever) is a set list. scripts can be added and sorted in specific order

  • reset default script data (if default data is present for the project)

transition

  • fix all existing scripts to ensure they're not broken by this change

  • encourage versioning in scripts. 1.0.0

@tehn tehn added the menu label Jul 2, 2018
@tehn tehn self-assigned this Jul 2, 2018
@tehn
Copy link
Member Author

@tehn tehn commented Jul 2, 2018

extra feature (future):

  • favorites / set list. be able to line up a bunch of scripts for sequential execution.
  • be able to launch scripts in this set list with specific pset files (or passing args to init() ?)
@nf
Copy link
Collaborator

@nf nf commented Aug 10, 2018

favorites / set list.

counterproposal: 'select >' menu shows 5 most recently used scripts and 'all >' at the bottom to browse everything. or maybe even the favs list could be auto-populated by LRU until the user has nominated favorites.

@tehn
Copy link
Member Author

@tehn tehn commented Aug 11, 2018

@nf very good suggestion

@jasonw22
Copy link

@jasonw22 jasonw22 commented Aug 12, 2018

How will script, library, and engine updating work, especially when script changes depend on library or engine changes? As a user, how will I be informed about changes?

@jasonw22
Copy link

@jasonw22 jasonw22 commented Aug 12, 2018

monome/maiden#115 seems relevant to my questions, although project organization is an important piece of the puzzle.

@okyeron
Copy link
Contributor

@okyeron okyeron commented Aug 13, 2018

From a user perspective, what happens when I have 100+ scripts? That'd be a bunch of knob turning thru a long flat list.

Being able to subdivide a mass of scripts into groups (sub-folders similar to the current setup) would still be very useful.

@tehn
Copy link
Member Author

@tehn tehn commented Aug 13, 2018

re: long flat lists, agreed this is a concern.

alphabetical sorting and knob acceleration should make navigating relatively painless, but there's also been a proposition to have a "favorites" functionality which could be an ordered list, which would double as a "setlist" for sequential script execution during performance, for example.

we can explore the possibility of keeping subfolders, but i'm certainly not convinced that per-author is the correct structure.

@nf
Copy link
Collaborator

@nf nf commented Aug 13, 2018

IMO it's worth trying the flat list initially and revisiting when we have the happy problem of too many scripts.

@tehn tehn added this to the 1.0.3 milestone Aug 14, 2018
@tehn tehn modified the milestones: 1.0.3, 1.0.4 Sep 4, 2018
@tehn tehn closed this Apr 7, 2019
@pq
Copy link
Collaborator

@pq pq commented Jan 28, 2020

STARS (or favorites, whatever) is a set list. scripts can be added and sorted in specific order

been thinking about this again and would love to revisit the idea.

#987 to track.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
5 participants