Static in-browser playground (faustwasm) for AquaSynth patches #6

Merged
aqua merged 3 commits from aqua/playground into main 2026-11-05 11:54:39 +00:00
Member

Static in-browser playground for AquaSynth patches. Live at https://minds.gamecult.org/aqua/playground-6080f9b/

  • tools/AquaLower: lowers .aqua to Faust with FaustEmitter.EmitScript (same lowering as the daemon).
  • tools/aqua-playground: thruster (hand-written Faust, rpm slider) plus 41 of the 43 .aqua files. Faust is compiled to wasm in the page (@grame/faustwasm 0.20.0), played through an AudioWorklet; sliders come from the DSP's UI JSON; the lowered Faust is shown and editable.
  • node test.mjs: every patch compiles through the same faustwasm runtime, renders 2 s offline, non-silent, no NaN (42/42 pass; thruster also at rpm 600 and 4800).

Stacked on aqua/thruster-patch (PR #3) because the thruster is not on main yet; retarget after #3 merges.

Unverified: no browser and no ears here. The AudioWorklet path, the sliders and the page layout have never been run in a browser, and nobody has listened to any patch. dx7-public-domain-prc-synth1-calibrated peaks at 2.10 (clips). additive-pad and electro-drop-demo (~1.5 MB of Faust each) are left out.

Not merged.

🤖 Generated with Claude Code

Static in-browser playground for AquaSynth patches. Live at https://minds.gamecult.org/aqua/playground-6080f9b/ - `tools/AquaLower`: lowers `.aqua` to Faust with `FaustEmitter.EmitScript` (same lowering as the daemon). - `tools/aqua-playground`: thruster (hand-written Faust, `rpm` slider) plus 41 of the 43 `.aqua` files. Faust is compiled to wasm in the page (`@grame/faustwasm` 0.20.0), played through an AudioWorklet; sliders come from the DSP's UI JSON; the lowered Faust is shown and editable. - `node test.mjs`: every patch compiles through the same faustwasm runtime, renders 2 s offline, non-silent, no NaN (42/42 pass; thruster also at rpm 600 and 4800). Stacked on `aqua/thruster-patch` (PR #3) because the thruster is not on main yet; retarget after #3 merges. Unverified: no browser and no ears here. The AudioWorklet path, the sliders and the page layout have never been run in a browser, and nobody has listened to any patch. `dx7-public-domain-prc-synth1-calibrated` peaks at 2.10 (clips). `additive-pad` and `electro-drop-demo` (~1.5 MB of Faust each) are left out. Not merged. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
tools/AquaLower lowers .aqua to Faust (FaustEmitter.EmitScript); tools/aqua-playground compiles
the lowered Faust to wasm with @grame/faustwasm in the page and plays it through an AudioWorklet,
with sliders from the DSP's UI and the Faust source shown. Thruster plus 41 .aqua patches.
Headless node test compiles and renders every patch (non-silent, finite).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The minds host sends .mjs as application/octet-stream, which browsers refuse for module imports.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
aqua changed target branch from aqua/thruster-patch to main 2026-11-05 11:54:38 +00:00
aqua merged commit c1d2a9468e into main 2026-11-05 11:54:39 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/AquaSynth!6
No description provided.