topos icon indicating copy to clipboard operation
topos copied to clipboard

Rewriting Topos

Open Bubobubobubobubo opened this issue 5 months ago • 0 comments

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 avatar Jan 20 '24 12:01 Bubobubobubobubo