PackageBoundaryTests: fix pack hang; trigger+repeat composition tests #38

Merged
aqua merged 1 commit from maint-pkgboundary-trigger-repeat-20261111 into main 2026-11-11 12:07:07 +00:00
Member

PackageBoundaryTests hang. Root cause: the test shells out to dotnet pack with stdout/stderr redirected. pack leaves VBCSCompiler and MSBuild node-reuse processes alive; they inherit the redirected pipes, so ReadToEndAsync never sees EOF even though pack exited and the nupkg was written (observed: nupkg present in the temp dir, test silent for 5+ min). Fix: pack with UseSharedCompilation=false, -nodeReuse:false, --disable-build-servers and the matching env vars; RunAsync now has a 5 min process timeout (kills the tree) and a 10 s pipe-drain grace, each failing with a message naming the cause. Both tests now pass in ~11 s.

Trigger + repeat. TriggerRepeatCompositionTests renders a voice with trigger=0.5 under patch repeat=0.05 (shorter than sustain+decay) through native Faust and asserts: the envelope releases inside each trigger window and restarts at each trigger; pitch falls back at each repeat boundary (with a no-repeat control that climbs); the repeat grid restarts from the trigger. Plus one lowering-text pin of the two ages.

No sound or timbre changed; tests only.

Recommendation (not applied), explosion repeat. Do not restore patch repeat on the explosion patch on lowering grounds: its only repeat-restarted parameters are pitch_ramp=0.032 on a noise voice at freq 20 (no arpeggio), so restarting the slide every 0.175 s is near-inaudible and would change the render. Leave it until Meta's ears (listen-sfxr-repeat-clips-20261111) say whether the original stutter mattered.

🤖 Generated with Claude Code

**PackageBoundaryTests hang.** Root cause: the test shells out to `dotnet pack` with stdout/stderr redirected. `pack` leaves VBCSCompiler and MSBuild node-reuse processes alive; they inherit the redirected pipes, so `ReadToEndAsync` never sees EOF even though `pack` exited and the nupkg was written (observed: nupkg present in the temp dir, test silent for 5+ min). Fix: pack with `UseSharedCompilation=false`, `-nodeReuse:false`, `--disable-build-servers` and the matching env vars; `RunAsync` now has a 5 min process timeout (kills the tree) and a 10 s pipe-drain grace, each failing with a message naming the cause. Both tests now pass in ~11 s. **Trigger + repeat.** `TriggerRepeatCompositionTests` renders a voice with `trigger=0.5` under `patch repeat=0.05` (shorter than sustain+decay) through native Faust and asserts: the envelope releases inside each trigger window and restarts at each trigger; pitch falls back at each repeat boundary (with a no-repeat control that climbs); the repeat grid restarts from the trigger. Plus one lowering-text pin of the two ages. No sound or timbre changed; tests only. **Recommendation (not applied), explosion repeat.** Do not restore `patch repeat` on the explosion patch on lowering grounds: its only repeat-restarted parameters are `pitch_ramp=0.032` on a noise voice at freq 20 (no arpeggio), so restarting the slide every 0.175 s is near-inaudible and would change the render. Leave it until Meta's ears (listen-sfxr-repeat-clips-20261111) say whether the original stutter mattered. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
aqua merged commit c0fe4eef33 into main 2026-11-11 12:07:07 +00:00
aqua deleted branch maint-pkgboundary-trigger-repeat-20261111 2026-11-11 12:07:08 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/AquaSynth!38
No description provided.