Attached you will find a patch issuing the comments from #7:
* ReplayGainUpdated signal is still emitted but blocked in BaseTrackPlayer when track is played. This is just fine, but it does not solve the corner cases when track goe to the output with other functions than play.
* The waveform overview painting is now hooked to the analysisProgress value in 0,1 % steps. This signal is transmited at most each 60 ms. Now more update polling timer is required in overview. Doing this we have a visual over all analyser progress in the waveform overview even if the waveform is already analysed.
* The analysis process functions are finished at 90 % progress. 100 % progress is emitted after finalise. This is required to not have the waveform at 100 % before replay gain is adopted. The visual-feedback of replay gain by growing or shrinkin is not suitable for 100% analysis because this happens only in the case we have actual a replay gain change.
I like this solution more than having a block progress bar from 1.10 or a separated control.
* I have changed EnginePregain so that an initial replay gain set is adopted without fade. So there is now no more need for wait in AnlayserGain (sleep(1)).
* Since replay Gain changes are not adopted on playing decks, the fading only happens on Replay gain changes by boost or possible bypassing BaseTrackPlayer (does not happened yet). So we should consider removing fading at all for a better performance.
* I have also noticed that the mostly constant total gain is calculated in every process cycle. I am not sure if it worth the effort to pre-calculate it in BaseTrackPlayer or in a new gain controller class from the main tread.
Attached you will find a patch issuing the comments from #7:
* ReplayGainUpdated signal is still emitted but blocked in BaseTrackPlayer when track is played. This is just fine, but it does not solve the corner cases when track goe to the output with other functions than play.
* The waveform overview painting is now hooked to the analysisProgress value in 0,1 % steps. This signal is transmited at most each 60 ms. Now more update polling timer is required in overview. Doing this we have a visual over all analyser progress in the waveform overview even if the waveform is already analysed.
* The analysis process functions are finished at 90 % progress. 100 % progress is emitted after finalise. This is required to not have the waveform at 100 % before replay gain is adopted. The visual-feedback of replay gain by growing or shrinkin is not suitable for 100% analysis because this happens only in the case we have actual a replay gain change.
I like this solution more than having a block progress bar from 1.10 or a separated control.
* I have changed EnginePregain so that an initial replay gain set is adopted without fade. So there is now no more need for wait in AnlayserGain (sleep(1)).
* Since replay Gain changes are not adopted on playing decks, the fading only happens on Replay gain changes by boost or possible bypassing BaseTrackPlayer (does not happened yet). So we should consider removing fading at all for a better performance.
* I have also noticed that the mostly constant total gain is calculated in every process cycle. I am not sure if it worth the effort to pre-calculate it in BaseTrackPlayer or in a new gain controller class from the main tread.