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

Rewriting Topos #126

Open
18 tasks
Bubobubobubobubo opened this issue Jan 20, 2024 · 0 comments
Open
18 tasks

Rewriting Topos #126

Bubobubobubobubo opened this issue Jan 20, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@Bubobubobubobubo
Copy link
Owner

Bubobubobubobubo commented Jan 20, 2024

Instead of piling up problems, it might be time to rewrite a large chunk of Topos. Here is a breakdown of the features I would like to implement and how I would do it. This refactoring is the base for some sort of Topos v.2.0 that aims to hit many birds with one stone:

General:

  • Switch to Svelte or some light reactive framework
  • Build the application around reusable components
  • Nail down testing and version numbering

Interface:

  • Conceptual distinction between SCRIPTS and PROJECTS.
    • Any script can be saved independently from PROJECT and reused.
    • A script can also be played independently from a PROJECT.
  • Basic CRUD interface for SCRIPTS and PROJECTS.
    • This can be done with or without a database. This can also be done on local file systems.
    • In order to do so, generic CRUD interface and modularize the behavior depending on runtime.
  • Modularize playback: small editor, playback only, etc. Facilitate sharing Topos projects.
  • Re-use the same canvas as much as possible instead of multiplying canvas
  • Baked-in collaboration tools using Yjs. Allow the creation of multiplayer projects / rooms

Documentation:

  • Documentation using MDSVex and custom components for code playback / demos
  • Documentation is written directly in the source and cascades to the docs.
  • Minimize human intervention in some/most parts of the documentation.

Sequencer / Engine:

  • Evaluation model refactoring: there should be only one evaluation routine instead of many.
    • You can't trust JS or the web browser to evaluate things in time, minimize evaluation.
  • Implement some Tidal-like query rate => how? Everything has failed so far.
@Bubobubobubobubo Bubobubobubobubo added the enhancement New feature or request label Jan 20, 2024
@Bubobubobubobubo Bubobubobubobubo pinned this issue Jan 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant