From 62840235466bc55e1586bf14f9092ebcf6324ef3 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Wed, 13 May 2026 00:19:02 +0100 Subject: [PATCH] Prepare synth DSL package boundary --- README.md | 11 +++++++++++ src/AquariumSynth.Dsl/AquariumSynth.Dsl.csproj | 11 +++++++++++ state/evidence.jsonl | 1 + state/map.yaml | 2 ++ 4 files changed, 25 insertions(+) diff --git a/README.md b/README.md index c9ddf35..0e0d4f6 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,17 @@ the Rust crate into the room by the ankle. dotnet test ``` +## Package Boundary + +Aquarium consumes this library as a pinned `AquariumSynth.Dsl` NuGet package, +not as a live project reference. Breaking synth-library work should happen here +freely, then Aquarium should intentionally update only after a new package +version is packed and tested. + +```powershell +dotnet pack src\AquariumSynth.Dsl\AquariumSynth.Dsl.csproj -c Release +``` + ## Shape - `PatchScript.Parse(script)` lowers terse script into `SynthPatch`. diff --git a/src/AquariumSynth.Dsl/AquariumSynth.Dsl.csproj b/src/AquariumSynth.Dsl/AquariumSynth.Dsl.csproj index b760144..9651933 100644 --- a/src/AquariumSynth.Dsl/AquariumSynth.Dsl.csproj +++ b/src/AquariumSynth.Dsl/AquariumSynth.Dsl.csproj @@ -4,6 +4,17 @@ net10.0 enable enable + AquariumSynth.Dsl + 0.1.0-aquarium.1 + GameCult + GameCult + Aquarium synth patch DSL model, parser, analysis helpers, and Faust source emitter. + README.md + https://github.com/GameCult/AquariumSynthCSharp + + + + diff --git a/state/evidence.jsonl b/state/evidence.jsonl index 8bb6ddb..d99f3b8 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -7,3 +7,4 @@ {"kind":"reference_synth_roadmap","lesson":"AquariumSynthCSharp should use external synth and DSP corpora as reference targets, not just internal demo patches. Start with DX7/Dexed SysEx for structured FM, then ZynAddSubFX, Faust examples/libraries, Surge XT, and Cardinal as progressively broader pressure tests. Keep provenance and license state explicit before vendoring fixtures.","source":"user clarified any synth can be broken down and rebuilt via Aquarium DSL"} {"kind":"runtime_patch_parameters","lesson":"Synth patches must expose expressive runtime parameters. Faust supports this through UI controls and hosted parameter APIs, so Aquarium should compile a graph once and vary declared parameter values without recompilation. Recompile only for structural graph changes.","source":"user asked whether Faust can vary one number without recompiling"} {"kind":"synth_test_ownership","lesson":"AquariumSynthCSharp owns reference-patch correctness. Aquarium should only smoke-test the engine synth host and bundled Faust boundary; SFXR/BFXR/reference parity belongs here so the engine can keep moving while the synth library is under active surgery.","source":"user questioned synth tests living in Aquarium"} +{"kind":"package_boundary","lesson":"Aquarium consumes AquariumSynth.Dsl through a pinned package, not a live project reference. Breaking changes in AquariumSynthCSharp are allowed during synth construction as long as a new package version is packed and Aquarium is updated deliberately when the boundary should move.","source":"user wanted Aquarium builds insulated from synth-agent work"} diff --git a/state/map.yaml b/state/map.yaml index a4cec04..11d2d89 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -14,6 +14,7 @@ surfaces: library: src/AquariumSynth.Dsl tests: tests/AquariumSynth.Dsl.Tests reference_roadmap: docs/reference-synth-roadmap.md + package: AquariumSynth.Dsl 0.1.0-aquarium.1 modules: model: src/AquariumSynth.Dsl/Model.cs parser: src/AquariumSynth.Dsl/PatchScript.cs @@ -38,4 +39,5 @@ boundaries: - Faust source and target-code generation checks: default: dotnet test + package: dotnet pack src/AquariumSynth.Dsl/AquariumSynth.Dsl.csproj -c Release faust_validation: automatic in tests when Faust is installed