Weft Loom is a free desktop app for pattern music, built on Strudel.
See the codeA free, open-source desktop app for making music with Strudel. Every pattern of a song is shown twice: as controls and as Strudel code. The code is the song; the controls read it and rewrite it, so you can make a whole song without writing any, and read or change the code whenever you want to.

.weft file that holds the song and its sounds.How each of these works is in the docs, with pictures.
npm install
npm run dev # in a browser, http://localhost:5180
npm run tauri:dev # in a desktop window (needs Rust)
The dev server also starts the relay that jams go through and the site that songs are published to, both on this machine.
npm test # unit tests
npm run test:e2e # browser tests, in WebKit (what the macOS window uses)
npm run typecheck
npm run build:server
puts the site and the relay into dist-server as one file that runs with Node alone. server/start.ts says what it reads from the environment.
AGPL-3.0-or-later, the same as Strudel, which this app is built on.
Weft Loom is a free desktop app for pattern music, built on Strudel.
See the codeA free, open-source desktop app for making music with Strudel. Every pattern of a song is shown twice: as controls and as Strudel code. The code is the song; the controls read it and rewrite it, so you can make a whole song without writing any, and read or change the code whenever you want to.

.weft file that holds the song and its sounds.How each of these works is in the docs, with pictures.
npm install
npm run dev # in a browser, http://localhost:5180
npm run tauri:dev # in a desktop window (needs Rust)
The dev server also starts the relay that jams go through and the site that songs are published to, both on this machine.
npm test # unit tests
npm run test:e2e # browser tests, in WebKit (what the macOS window uses)
npm run typecheck
npm run build:server
puts the site and the relay into dist-server as one file that runs with Node alone. server/start.ts says what it reads from the environment.
AGPL-3.0-or-later, the same as Strudel, which this app is built on.