I had a quick look (2 mins, so dont take this as gospel )
what I would do is, add a threshold in the voice, and then set the freq of the phasor~ to zero after first play.
obviously, whilst actually doing, there might need to be some other minor tweaks (e.g. decay handling), but that should be the basics of whats required.
remind me during the Orac 2.0 beta and I’ll chuck it in.
note: an alternative is latch onto the threshold/decay, and then mute the output after first play, but that means the voice is still processing so more cpu is used - but this approach may be simpler/less disruptive, as its more inline with how the rest of the code is working… Id only know once trying my preferred approach