AquaSynth/docs/migration-checklist.md

49 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

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.