From 8d09ae555b77db407d458c54a62059cfd78b0d9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=27=C3=A9lectron=20rare?= <108685187+electron-rare@users.noreply.github.com> Date: Sat, 27 Jun 2026 13:32:54 +0200 Subject: [PATCH] fix(sound): stop play-scene via doStopAll Final whole-branch review caught a cross-task defect: ~doScenePlay started ~bpEngine but registered no cleanup, so ~doStopAll (run by ~doScene at every scene switch, and by \stop) never stopped the engine -- body-play kept playing over any other scene, breaking the "\stop coupe tout" contract. Register the stop via ~doRegisterPriv (name, killFn) like every other scene. Verified on macm1: doScene(\play) starts the engine, doScene(\stop) stops it. --- sound_algo/data_only/scene_pose_play.scd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound_algo/data_only/scene_pose_play.scd b/sound_algo/data_only/scene_pose_play.scd index 812789f..f61d489 100644 --- a/sound_algo/data_only/scene_pose_play.scd +++ b/sound_algo/data_only/scene_pose_play.scd @@ -163,7 +163,7 @@ ); // -- 7) Enregistrement scene ------------------------------------------- -~doScenePlay = { ~bpEngine[\start].() }; +~doScenePlay = { ~bpEngine[\start].(); ~doRegisterPriv.(\play, { ~bpEngine[\stop].() }) }; "[data-only/scene_pose_play] modes + scale ready".postln; )