Handle non-ideal sample rates in R3; document sample rate parameter

This commit is contained in:
Chris Cannam
2022-09-26 16:02:13 +01:00
parent f586fe601a
commit 9e423cdd8c
9 changed files with 88 additions and 44 deletions

View File

@@ -66,4 +66,19 @@ void pickNearestRational(double ratio, int max_denom, int &num, int &denom)
}
}
size_t roundUp(size_t value)
{
if (!(value & (value - 1))) return value;
size_t bits = 0;
while (value) { ++bits; value >>= 1; }
value = size_t(1) << bits;
return value;
}
size_t roundUpDiv(double divisionOf, size_t divisor)
{
if (divisionOf < 0.0) return 0;
return roundUp(size_t(ceil(divisionOf / double(divisor))));
}
}

View File

@@ -55,6 +55,10 @@ inline double frequencyForBin(int b, int fftSize, double sampleRate) {
void pickNearestRational(double ratio, int maxDenom, int &num, int &denom);
size_t roundUp(size_t value); // to nearest power of two
size_t roundUpDiv(double divisionOf, size_t divisor);
}
#endif