The graphical user interface stops to interact if the jog shuttle is moved several times while the sound keeps playing. This is due to a locking problem as I found somewhere in the internet after a long search. This also happens sometimes if other actions are done like cutting a sound file. Reproducible: Always Steps to Reproduce: 1. Load a sound file. 2. Start playing the file. 3. Play with the jog shuttle. Actual Results: The gui stops responding while the sound keeps playing. After a quite a long while, the gui starts responding again; this happens latest when the playing quit. Expected Results: The gui should go on responding on user input. This patch seems to solve the problem. I found it somewhere in the internet, but I couldn't find it again to mention the author. I am not the author of this patch. diff -Naur rezound-0.12.3beta-orig/src/backend/CSoundPlayerChannel.cpp rezound-0.12.3beta/src/backend/CSoundPlayerChannel.cpp --- rezound-0.12.3beta-orig/src/backend/CSoundPlayerChannel.cpp 2005-11-09 08:59:02.000000000 +0100 +++ rezound-0.12.3beta/src/backend/CSoundPlayerChannel.cpp 2008-02-19 01:21:31.000000000 +0100 @@ -468,7 +468,7 @@ (seekSpeed*origSeekSpeed)<0.0) { unprebuffer(origSeekSpeed,getStartPosition(),getStopPosition()); - prebufferChunk(); // prime the pipe immediately + //prebufferChunk(); // prime the pipe immediately } @@ -517,7 +517,7 @@ { // start position moved rightward and new start position is beyond the beginning of the prebuffered window //printf("clear from start change 1 (%d)\n",g++); unprebuffer(seekSpeed,origStartPosition,origStopPosition,startPosition); - prebufferChunk(); + //prebufferChunk(); } else if( startPosition<origStartPosition && @@ -526,7 +526,7 @@ { // start position moved leftward and the old loop window was shorter than the prebuffered window //printf("clear from start change 2 (%d)\n",g++); unprebuffer(seekSpeed,origStartPosition,origStopPosition); - prebufferChunk(); + //prebufferChunk(); } } } @@ -555,7 +555,7 @@ { // stop position moved leftward and new position moves into or preceeds the currently prebuffered window //printf("clear from stop change 1 (%d)\n",g++); unprebuffer(seekSpeed,origStartPosition,origStopPosition); - prebufferChunk(); + //prebufferChunk(); } else if( stopPosition>origStopPosition && @@ -564,7 +564,7 @@ { // stop position moved rightward and old position is before or within the currently prebuffered window (so a repeat at old loop point is prebuffered) //printf("clear from stop change 2 (%d)\n",g++); unprebuffer(seekSpeed,origStartPosition,origStopPosition); - prebufferChunk(); + //prebufferChunk(); } } }
Appears to be upstream bug #1558155 [URL]
# Michał Górny <mgorny@gentoo.org> (05 Jun 2017) # (on behalf of Treecleaner project) # Unmaintained upstream. Already suffers heavy patching in Gentoo. # Multiple bugs filed, including build failures. # Removal in 30 days. Bug #515760. media-sound/rezound
commit 03d583af7161787c20d903985ae9715c2f554b5b Author: Michał Górny <mgorny@gentoo.org> AuthorDate: Wed Jul 5 15:34:31 2017 Commit: Michał Górny <mgorny@gentoo.org> CommitDate: Wed Jul 5 15:35:46 2017 media-sound/rezound: Remove last-rited pkg, #515760