Introducing modal, new lua port of Tidal

I have worked on this project called Xi, the moonscript port of tidal at the beginning of this year, inspired by tranquility.

Later I went back to lua for its dev tooling as this project got larger and more messy. So this is just awkwardly "the other lua port" for now...

modal wiki, where I document the process and ideas

Recently, I got quite some mileage so I want to rebrand it and share it with the community again.

There's at least three selling point in this project:

  1. Maxi-notation, which will give us the ability to write stuff like

    d1 $ every 4 [(fast 2), (|+ note 7)] $ note {0 3 5}%2 |> s piano |> room 0.2
  2. Tooling, I am working on two pieces of tooling that nowadays are the standard for new programming languages: a Language Server and a tree-sitter grammar.

    • The former will provide diagnostics, completion, and snippets.
    • The latter will provide incremental highlighting and structural editing.
    • These could be quite useful in live situations, and these technologies are editor-agnostic.
    • for more info, see: Tooling · noearc/modal Wiki · GitHub
  3. Run everywhere, becuase lua is a tiny language that runs everywhere, modal can run everywhere, browsers, servers, game engines, embedded devices etc.

    • I have had some initial success on running modal on raspberry pi, monome norns and my DAW, stuff like game engines (LOVE 2D) are also on my list. So, sky is the limit here :slight_smile:

@yaxu @xinniw