Never phase reset on silence in side channel, now that such resets are carried across
This commit is contained in:
@@ -208,6 +208,7 @@ public:
|
|||||||
int unityCount,
|
int unityCount,
|
||||||
bool realtime,
|
bool realtime,
|
||||||
bool tighterChannelLock,
|
bool tighterChannelLock,
|
||||||
|
bool resetOnSilence,
|
||||||
Guidance &guidance) const {
|
Guidance &guidance) const {
|
||||||
|
|
||||||
Profiler profiler("Guide::updateGuidance");
|
Profiler profiler("Guide::updateGuidance");
|
||||||
@@ -282,7 +283,7 @@ public:
|
|||||||
// the band ranges as well - in normal multi-window mode we
|
// the band ranges as well - in normal multi-window mode we
|
||||||
// still have to do that, but we should do these first
|
// still have to do that, but we should do these first
|
||||||
|
|
||||||
if (meanMagnitude < 1.0e-6) {
|
if (resetOnSilence && meanMagnitude < 1.0e-6) {
|
||||||
updateForSilence(guidance);
|
updateForSilence(guidance);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1304,6 +1304,15 @@ R3Stretcher::analyseChannel(int c, int inhop, int prevInhop, int prevOuthop)
|
|||||||
|
|
||||||
double magMean = v_mean(classifyScale->mag.data() + 1, classify/2);
|
double magMean = v_mean(classifyScale->mag.data() + 1, classify/2);
|
||||||
|
|
||||||
|
bool resetOnSilence = true;
|
||||||
|
if (useMidSide() && c == 1) {
|
||||||
|
// Do not phase reset on silence in the side channel - the
|
||||||
|
// reset is propagated across to the mid channel, giving
|
||||||
|
// constant resets for e.g. mono material in a stereo
|
||||||
|
// configuration
|
||||||
|
resetOnSilence = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_useReadahead) {
|
if (m_useReadahead) {
|
||||||
m_guide.updateGuidance(ratio,
|
m_guide.updateGuidance(ratio,
|
||||||
prevOuthop,
|
prevOuthop,
|
||||||
@@ -1317,6 +1326,7 @@ R3Stretcher::analyseChannel(int c, int inhop, int prevInhop, int prevOuthop)
|
|||||||
m_unityCount,
|
m_unityCount,
|
||||||
isRealTime(),
|
isRealTime(),
|
||||||
tighterChannelLock,
|
tighterChannelLock,
|
||||||
|
resetOnSilence,
|
||||||
cd->guidance);
|
cd->guidance);
|
||||||
} else {
|
} else {
|
||||||
m_guide.updateGuidance(ratio,
|
m_guide.updateGuidance(ratio,
|
||||||
@@ -1331,6 +1341,7 @@ R3Stretcher::analyseChannel(int c, int inhop, int prevInhop, int prevOuthop)
|
|||||||
m_unityCount,
|
m_unityCount,
|
||||||
isRealTime(),
|
isRealTime(),
|
||||||
tighterChannelLock,
|
tighterChannelLock,
|
||||||
|
resetOnSilence,
|
||||||
cd->guidance);
|
cd->guidance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user