Prepare synth DSL package boundary
This commit is contained in:
parent
58f185d40c
commit
6284023546
4 changed files with 25 additions and 0 deletions
11
README.md
11
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`.
|
||||
|
|
|
|||
|
|
@ -4,6 +4,17 @@
|
|||
<TargetFramework>net10.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<PackageId>AquariumSynth.Dsl</PackageId>
|
||||
<Version>0.1.0-aquarium.1</Version>
|
||||
<Authors>GameCult</Authors>
|
||||
<Company>GameCult</Company>
|
||||
<Description>Aquarium synth patch DSL model, parser, analysis helpers, and Faust source emitter.</Description>
|
||||
<PackageReadmeFile>README.md</PackageReadmeFile>
|
||||
<RepositoryUrl>https://github.com/GameCult/AquariumSynthCSharp</RepositoryUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="..\..\README.md" Pack="true" PackagePath="\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -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"}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue