Try a peak p-factor of 1 for the previous peaks
This commit is contained in:
@@ -86,6 +86,7 @@ public:
|
||||
void advance(double *const *outPhase,
|
||||
const double *const *mag,
|
||||
const double *const *phase,
|
||||
const double *const *prevMag,
|
||||
const Guide::Configuration &configuration,
|
||||
const Guide::Guidance *const *guidance,
|
||||
int inhop,
|
||||
@@ -132,10 +133,15 @@ public:
|
||||
int endBin = binForFrequency(band.f1);
|
||||
if (startBin > highest || endBin < lowest) continue;
|
||||
int count = endBin - startBin + 1;
|
||||
m_peakPicker.findNearestAndNextPeaks(mag[c], startBin, count,
|
||||
m_peakPicker.findNearestAndNextPeaks(mag[c],
|
||||
startBin, count,
|
||||
band.p, m_currentPeaks[c],
|
||||
nullptr);
|
||||
}
|
||||
m_peakPicker.findNearestAndNextPeaks(prevMag[c],
|
||||
lowest, highest - lowest + 1,
|
||||
1, m_prevPeaks[c],
|
||||
nullptr);
|
||||
}
|
||||
|
||||
if (channels > 1) {
|
||||
@@ -218,9 +224,9 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
int **tmp = m_prevPeaks;
|
||||
m_prevPeaks = m_currentPeaks;
|
||||
m_currentPeaks = tmp;
|
||||
// int **tmp = m_prevPeaks;
|
||||
// m_prevPeaks = m_currentPeaks;
|
||||
// m_currentPeaks = tmp;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
@@ -121,7 +121,6 @@ R3StretcherImpl::R3StretcherImpl(Parameters parameters,
|
||||
WindowType
|
||||
R3StretcherImpl::ScaleData::analysisWindowShape(int fftSize)
|
||||
{
|
||||
//!!! return HannWindow;
|
||||
if (fftSize == 4096) return HannWindow;
|
||||
else return NiemitaloForwardWindow;
|
||||
}
|
||||
@@ -135,7 +134,6 @@ R3StretcherImpl::ScaleData::analysisWindowLength(int fftSize)
|
||||
WindowType
|
||||
R3StretcherImpl::ScaleData::synthesisWindowShape(int fftSize)
|
||||
{
|
||||
//!!! return HannWindow;
|
||||
if (fftSize == 4096) return HannWindow;
|
||||
else return NiemitaloReverseWindow;
|
||||
}
|
||||
@@ -143,7 +141,6 @@ R3StretcherImpl::ScaleData::synthesisWindowShape(int fftSize)
|
||||
int
|
||||
R3StretcherImpl::ScaleData::synthesisWindowLength(int fftSize)
|
||||
{
|
||||
//!!! return fftSize/2;
|
||||
if (fftSize == 4096) return fftSize/2;
|
||||
else return fftSize;
|
||||
}
|
||||
@@ -405,6 +402,7 @@ R3StretcherImpl::consume()
|
||||
auto &scale = cd->scales.at(fftSize);
|
||||
m_channelAssembly.mag[c] = scale->mag.data();
|
||||
m_channelAssembly.phase[c] = scale->phase.data();
|
||||
m_channelAssembly.prevMag[c] = scale->prevMag.data();
|
||||
m_channelAssembly.guidance[c] = &cd->guidance;
|
||||
m_channelAssembly.outPhase[c] = scale->advancedPhase.data();
|
||||
}
|
||||
@@ -412,6 +410,7 @@ R3StretcherImpl::consume()
|
||||
(m_channelAssembly.outPhase.data(),
|
||||
m_channelAssembly.mag.data(),
|
||||
m_channelAssembly.phase.data(),
|
||||
m_channelAssembly.prevMag.data(),
|
||||
m_guideConfiguration,
|
||||
m_channelAssembly.guidance.data(),
|
||||
m_prevInhop,
|
||||
|
||||
@@ -218,14 +218,16 @@ protected:
|
||||
// from different channels into arguments for PhaseAdvance
|
||||
FixedVector<double *> mag;
|
||||
FixedVector<double *> phase;
|
||||
FixedVector<double *> prevMag;
|
||||
FixedVector<Guide::Guidance *> guidance;
|
||||
FixedVector<double *> outPhase;
|
||||
FixedVector<float *> mixdown;
|
||||
FixedVector<float *> resampled;
|
||||
ChannelAssembly(int channels) :
|
||||
mag(channels, nullptr), phase(channels, nullptr),
|
||||
guidance(channels, nullptr), outPhase(channels, nullptr),
|
||||
mixdown(channels, nullptr), resampled(channels, nullptr) { }
|
||||
prevMag(channels, nullptr), guidance(channels, nullptr),
|
||||
outPhase(channels, nullptr), mixdown(channels, nullptr),
|
||||
resampled(channels, nullptr) { }
|
||||
};
|
||||
|
||||
struct ScaleData {
|
||||
|
||||
Reference in New Issue
Block a user