Add AquaSynth live session close command

This commit is contained in:
Meta Vens 2026-06-15 03:20:09 +01:00
commit 0da43b9439
10 changed files with 155 additions and 13 deletions

View file

@ -13,10 +13,11 @@ architecture. It is a reference ledger for
`cultnet-stream`, and `cultnet-daemon` as local CultNet command surfaces.
- `src/AquaSynth.Faust/AquaSynthDaemonService.cs`: the service owns
`patch.compile`, `instrument.sample`, bounded `instrument.stream`,
`instrument.open`, `instrument.control`, and `instrument.block` execution. It
writes compile/session/render/stream/live/operator witnesses, keeps native
streaming patch instances for live sessions, and emits CultMesh-compatible
stream descriptors and packet receipts.
`instrument.open`, `instrument.control`, `instrument.block`, and
`instrument.close` execution. It writes compile/session/render/stream/live/
operator witnesses, keeps native streaming patch instances for live sessions,
releases live sessions without deleting compiled patch witnesses, and emits
CultMesh-compatible stream descriptors and packet receipts.
- `src/AquaSynth.Faust/AquaSynthCultNetDaemon.cs`: local CultNet database host
and command watcher. Typed command documents enter the database; typed
receipts and provider state come back out.

View file

@ -112,11 +112,12 @@ AquaSynth is the current synth example. AquaSynth owns patch parsing, Faust
emission, native compilation, compiled instrument sessions, sample rendering,
bounded stream receipts, live streaming sessions, and synth-control state. A
client can send `instrument.sample`, `instrument.stream`, `instrument.open`,
`instrument.control`, or `instrument.block` as typed command state through the
local CultNet database. AquaSynth compiles or opens the instrument, keeps the
native streaming patch instance, applies controls, writes sample/block artifacts
and receipts, and publishes the result. The client consumes the capability; it
does not become the synth.
`instrument.control`, `instrument.block`, or `instrument.close` as typed command
state through the local CultNet database. AquaSynth compiles or opens the
instrument, keeps the native streaming patch instance, applies controls,
releases live sessions, writes sample/block artifacts and receipts, and
publishes the result. The client consumes the capability; it does not become
the synth.
That lets one AquaSynth daemon sit on this machine or another machine in the
Verse and serve multiple apps. The same engine can support Fensalir, Eve

View file

@ -80,6 +80,10 @@ binary lifetime, live instrument handles, control sessions, and sampled outputs.
return an instrument handle.
- `instrument.open`: allocate or attach to a compiled instrument session.
- `instrument.control`: set one or more stable semantic controls.
- `instrument.block`: process one fixed block through an open live instrument
session and return the block receipt/artifact reference.
- `instrument.close`: release an open live instrument session without deleting
the compiled instrument product.
- `instrument.sample`: sample a live or offline instrument output.
- `instrument.stream`: compile/open a streaming instrument session, apply
block-indexed automation controls, publish CultMesh-compatible audio/control
@ -108,6 +112,11 @@ invent a separate truth for compiled products or control state.
per-block controls, publishes CultMesh `Audio` and `Tensor` descriptors inside
the service, writes block `.f32` packet bodies, and commits one typed stream
receipt.
- `daemon` and `cultnet-daemon` also accept `instrument.open`,
`instrument.control`, `instrument.block`, and `instrument.close` envelopes.
These live commands keep and release service-owned native streaming patch
instances; closing a live session does not delete the reusable compiled patch
witness.
- `cultnet-host`: starts a local CultNet host/database for AquaSynth command and
receipt documents, publishes `aquasynth.cultnet_provider.v1`, and watches
typed command records until the process is stopped.