2026-05-08 10:21:32 +01:00
|
|
|
# Migration Checklist
|
|
|
|
|
|
2026-05-16 05:49:44 +01:00
|
|
|
This repo is now the authoring-side home for AquaSynth patch scripts and
|
|
|
|
|
Faust generation. The AquaSynth-rs crate remains useful as a reference lab, but the
|
2026-05-08 10:21:32 +01:00
|
|
|
current C# surface should not depend on somebody remembering what got built
|
|
|
|
|
there.
|
|
|
|
|
|
|
|
|
|
## Ported
|
|
|
|
|
|
|
|
|
|
- Patch graph model: voices, envelopes, pitch motion, duty motion, filters,
|
|
|
|
|
phasers, arpeggios, FM, color shaping, formants, repeat, and control lanes.
|
|
|
|
|
- Patch script parser: `patch`, `default`, `def`, `voice`, `mod`/`bus`, and
|
2026-05-12 22:10:02 +01:00
|
|
|
`lfo`/`control`, including field-only continuation lines for readable
|
|
|
|
|
multi-line patches.
|
|
|
|
|
- DSL shorthand aliases kept for authoring convenience, including `p`, `d`,
|
2026-05-08 10:21:32 +01:00
|
|
|
`v`, `u`, `w`, `f`, `g`, `s`, `pr`, `pdr`, `du`, `dur`, `l`, `h`, `drv`,
|
|
|
|
|
`fl`, `fmix`, `fmi`, `mods`, and `m`.
|
|
|
|
|
- Modulation routing in both direct style (`mod n=wob g=.4 l=.5`) and routed
|
|
|
|
|
style (`bus n=sway to=g:.1,l:-.2,fmix:.3`).
|
2026-05-12 22:10:02 +01:00
|
|
|
- Built-in reference script catalog for classic SFXR, BFXR-flavored effects,
|
2026-05-12 22:38:24 +01:00
|
|
|
classic 808, FM bell, wobble bass, and advanced layered patches.
|
2026-05-12 22:10:02 +01:00
|
|
|
- Abstract SFXR reference script using defaults and templates.
|
2026-05-08 10:34:07 +01:00
|
|
|
- SFXR parameter presets, mutation, shorthand atoms, and SFXR-to-patch mapping.
|
2026-05-16 05:49:44 +01:00
|
|
|
- AquaSynth preset patches: pluck, heartbeat, voice, and SFXR named bridge.
|
2026-05-08 10:34:07 +01:00
|
|
|
- Patch script scoring: terse, readability, and balanced metrics.
|
|
|
|
|
- Audio analysis and comparison: envelope, log-mel spectrogram, spectral
|
|
|
|
|
features, distance metrics, and score.
|
2026-05-08 10:21:32 +01:00
|
|
|
- Faust source emitter and installed-compiler wrapper for C, C++, C#, and Rust
|
|
|
|
|
target code generation.
|
2026-05-12 22:10:02 +01:00
|
|
|
- Tests that parse/export all built-in reference scripts and validate Faust
|
2026-05-08 10:21:32 +01:00
|
|
|
source when Faust is installed.
|
|
|
|
|
|
|
|
|
|
## Still Deliberate
|
|
|
|
|
|
2026-05-08 10:34:07 +01:00
|
|
|
- The Rust sample renderer, patch player, and realtime audio-unit bridge stay in
|
|
|
|
|
Rust unless we decide to write a real C#/Faust runtime wrapper.
|
|
|
|
|
- The experimental Rust-side DSL compiler branch can stay behind as reference
|
|
|
|
|
machinery. The C# repo owns the script surface needed to drive Faust.
|
|
|
|
|
- Exhaustive Rust-renderer-vs-Faust audio parity stays with the Rust renderer.
|
|
|
|
|
C# can compare buffers it is handed, but it should not recreate the old
|
|
|
|
|
renderer just to prove the old renderer existed. That road has a sign on it.
|
2026-05-08 10:21:32 +01:00
|
|
|
|
|
|
|
|
## Next Pull
|
|
|
|
|
|
|
|
|
|
- Add JSON serialization contracts for `SynthPatch` once the Vortice-side load
|
|
|
|
|
boundary is known.
|
|
|
|
|
- Add a Faust compilation cache keyed by script/options/source hash.
|
|
|
|
|
- Add a small CLI so build scripts can compile `.aqs` patch files into Faust or
|
|
|
|
|
generated C# without writing host code first.
|