diff --git a/dotnet/rubberband-library.vcxproj b/dotnet/rubberband-library.vcxproj
index 294b14e..6936329 100644
--- a/dotnet/rubberband-library.vcxproj
+++ b/dotnet/rubberband-library.vcxproj
@@ -158,6 +158,7 @@
+
diff --git a/src/finer/Guide.h b/src/finer/Guide.h
index 9208ffc..3aa979b 100644
--- a/src/finer/Guide.h
+++ b/src/finer/Guide.h
@@ -241,7 +241,7 @@ public:
guidance.phaseLockBands[0].f1 = 1600.0;
guidance.phaseLockBands[1].p = 2;
- guidance.phaseLockBands[1].beta = betaFor(4800.0, ratio);
+ guidance.phaseLockBands[1].beta = betaFor(5000.0, ratio);
guidance.phaseLockBands[1].f0 = 1600.0;
guidance.phaseLockBands[1].f1 = 7000.0;
@@ -403,7 +403,7 @@ public:
guidance.phaseLockBands[1].f1 = mid;
guidance.phaseLockBands[2].p = 3;
- guidance.phaseLockBands[2].beta = betaFor(4800.0, ratio);
+ guidance.phaseLockBands[2].beta = betaFor(5000.0, ratio);
guidance.phaseLockBands[2].f0 = mid;
guidance.phaseLockBands[2].f1 = higher;
diff --git a/src/finer/PhaseAdvance.h b/src/finer/PhaseAdvance.h
index b34b31e..0b4d4e2 100644
--- a/src/finer/PhaseAdvance.h
+++ b/src/finer/PhaseAdvance.h
@@ -135,7 +135,8 @@ public:
for (int i = lowest; i <= highest; ++i) {
m_currentPeaks[c][i] = i;
}
- for (const auto &band : guidance[c]->phaseLockBands) {
+ for (int i = 0; i < guidance[c]->phaseLockBandCount; ++i) {
+ const auto &band = guidance[c]->phaseLockBands[i];
int startBin = binForFrequency
(band.f0, m_parameters.fftSize, m_parameters.sampleRate);
int endBin = binForFrequency
@@ -189,7 +190,8 @@ public:
for (int i = lowest; i <= highest; ++i) {
process_t f = frequencyForBin
(i, m_parameters.fftSize, m_parameters.sampleRate);
- while (f > g->phaseLockBands[phaseLockBand].f1) {
+ while (f > g->phaseLockBands[phaseLockBand].f1 &&
+ phaseLockBand + 1 < g->phaseLockBandCount) {
++phaseLockBand;
}
process_t ph = 0.0;