Shared append tail for both the PCM and streaming decode paths: apply trim (and optional take/loop) then route through the DSP chain into the sink.
(
sink: &SpatialSink,
source: S,
dsp: Arc<DspControl>,
trim_start: Duration,
play_duration: Option<Duration>,
looped: bool,
)