No description
  • HTML 72.3%
  • C# 24.8%
  • PowerShell 1.6%
  • C++ 0.5%
  • C 0.4%
  • Other 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-05-08 03:00:53 +01:00
src/AquariumSynth.Dsl Scaffold C# Faust DSL bridge 2026-05-08 03:00:53 +01:00
tests/AquariumSynth.Dsl.Tests Scaffold C# Faust DSL bridge 2026-05-08 03:00:53 +01:00
.gitignore Scaffold C# Faust DSL bridge 2026-05-08 03:00:53 +01:00
AquariumSynthCSharp.slnx Scaffold C# Faust DSL bridge 2026-05-08 03:00:53 +01:00
README.md Scaffold C# Faust DSL bridge 2026-05-08 03:00:53 +01:00

Aquarium Synth CSharp

C# front-end for Aquarium Synth patch scripts. It parses the terse Aquarium DSL into a serializable patch graph, emits Faust .dsp, and can ask an installed Faust compiler to generate backend code such as C#, C++, C, or Rust.

This repo is the C# bridge for Aquarium/Vortice-land. Rust remains the reference lab; this project is the tool that lets the engine script Faust without dragging the Rust crate into the room by the ankle.

Run

dotnet test

Shape

  • PatchScript.Parse(script) lowers terse script into SynthPatch.
  • FaustEmitter.Emit(patch) emits Faust source.
  • FaustCompiler.ValidateAsync(source) compile-checks with Faust when present.
  • FaustCompiler.CompileAsync(source, options) writes generated backend code.

Faust 2.85.5 supports -lang csharp, so the intended hot path is:

var patch = PatchScript.Parse("v w=saw f=55 g=.2 s=.5 d=.2");
var export = FaustEmitter.Emit(patch, new FaustExportOptions("bass"));
await FaustCompiler.CompileAsync(
    export.Source,
    new FaustCompileOptions(FaustTargetLanguage.CSharp, "Generated/Bass.cs"));

Status

This is the first scaffolded slice, not the whole cathedral. It covers the graph surface needed by the current wobble/FM/formant scripts and validates generated Faust when the compiler is installed. Next job is tightening parity against the Rust crate and porting the remaining preset/macro conveniences.