Try a peak p-factor of 1 for the previous peaks

This commit is contained in:
Chris Cannam
2022-06-07 12:12:06 +01:00
parent b8b650cd5c
commit 07b339df13
3 changed files with 16 additions and 9 deletions

View File

@@ -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:

View File

@@ -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,

View File

@@ -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 {