From 0767440e60b9d34926527d2ed266eba4dbc2b58e Mon Sep 17 00:00:00 2001 From: vsariola <5684185+vsariola@users.noreply.github.com> Date: Mon, 12 Apr 2021 20:15:55 +0300 Subject: [PATCH] fix(tracker): kill all notes except effects when starting play / skipping play position Fixes #45. --- tracker/player.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tracker/player.go b/tracker/player.go index 977a9cc..2bcfe02 100644 --- a/tracker/player.go +++ b/tracker/player.go @@ -131,6 +131,14 @@ func NewPlayer(service sointu.SynthService, closer <-chan struct{}, patchs <-cha p.release(id) } p.mutex.Unlock() + } else { + p.mutex.Lock() + for i, t := range score.Tracks { + if !t.Effect && i < len(trackIDs) { // when starting to play from another position, release only non-effect tracks + p.release(trackIDs[i]) + } + } + p.mutex.Unlock() } rowTime = math.MaxInt32 default: