diff --git a/web/app/assets/javascripts/playbackControls.js b/web/app/assets/javascripts/playbackControls.js index fb82ab0c6..2aeaf0632 100644 --- a/web/app/assets/javascripts/playbackControls.js +++ b/web/app/assets/javascripts/playbackControls.js @@ -54,6 +54,13 @@ var monitorPlaybackTimeout = null; var playbackMonitorMode = PLAYBACK_MONITOR_MODE.MEDIA_FILE; + function init() { + updateSliderPosition(0); + updateDurationTime(0); + updateCurrentTime(0); + seenActivity = false; + } + function startPlay() { seenActivity = false; updateIsPlaying(true); @@ -349,6 +356,9 @@ function startMonitor(_playbackMonitorMode) { + // resets everything to zero + init(); + if(_playbackMonitorMode === undefined || _playbackMonitorMode === null) { playbackMonitorMode = PLAYBACK_MONITOR_MODE.MEDIA_FILE; } diff --git a/web/app/assets/javascripts/session.js b/web/app/assets/javascripts/session.js index d7246dd5d..6bb576dbf 100644 --- a/web/app/assets/javascripts/session.js +++ b/web/app/assets/javascripts/session.js @@ -1273,9 +1273,10 @@ }); } - function renderJamTracks(jamTrackMixers) { + function renderJamTracks(jamTrackMixersOrig) { logger.debug("rendering jam tracks") + var jamTrackMixers = jamTrackMixersOrig.slice(); var jamTracks = [] var jamTrackName = 'JamTrack'; if(sessionModel.isPlayingRecording()) { @@ -1305,7 +1306,7 @@ var preMasteredClass = ""; // find the track or tracks that correspond to the mixer var correspondingTracks = [] - $.each(jamTrackMixers, function(i, matchMixer) { + $.each(jamTrackMixersOrig, function(i, matchMixer) { if(matchMixer.id == jamTrack.id) { correspondingTracks.push(jamTrack); mixer = matchMixer; @@ -1327,6 +1328,9 @@ return $.inArray(value, correspondingTracks) < 0; }); + // prune found mixers + jamTrackMixers.splice(mixer); + var oneOfTheTracks = correspondingTracks[0]; var instrumentIcon = context.JK.getInstrumentIcon45(oneOfTheTracks.instrument.id); var photoUrl = "/assets/content/icon_recording.png";