Move some methods up so it reads better
This commit is contained in:
parent
605091c29e
commit
a9112f4f35
@ -65,6 +65,25 @@ struct SignalsmithStretch {
|
||||
outputMap.resize(stft.bands());
|
||||
channelPredictions.resize(channels*stft.bands());
|
||||
}
|
||||
|
||||
/// Frequency multiplier, and optional tonality limit (as multiple of sample-rate)
|
||||
void setTransposeFactor(Sample multiplier, Sample tonalityLimit=0) {
|
||||
freqMultiplier = multiplier;
|
||||
if (tonalityLimit > 0) {
|
||||
freqTonalityLimit = tonalityLimit/std::sqrt(multiplier); // compromise between input and output limits
|
||||
} else {
|
||||
freqTonalityLimit = 1;
|
||||
}
|
||||
customFreqMap = nullptr;
|
||||
}
|
||||
void setTransposeSemitones(Sample semitones, Sample tonalityLimit=0) {
|
||||
setTransposeFactor(std::pow(2, semitones/12), tonalityLimit);
|
||||
customFreqMap = nullptr;
|
||||
}
|
||||
// Sets a custom frequency map - should be monotonically increasing
|
||||
void setFreqMap(std::function<Sample(Sample)> inputToOutput) {
|
||||
customFreqMap = inputToOutput;
|
||||
}
|
||||
|
||||
template<class Inputs, class Outputs>
|
||||
void process(Inputs &&inputs, int inputSamples, Outputs &&outputs, int outputSamples) {
|
||||
@ -211,25 +230,6 @@ struct SignalsmithStretch {
|
||||
prevInputOffset -= inputSamples;
|
||||
}
|
||||
|
||||
/// Frequency multiplier, and optional tonality limit (as multiple of sample-rate)
|
||||
void setTransposeFactor(Sample multiplier, Sample tonalityLimit=0) {
|
||||
freqMultiplier = multiplier;
|
||||
if (tonalityLimit > 0) {
|
||||
freqTonalityLimit = tonalityLimit/std::sqrt(multiplier); // compromise between input and output limits
|
||||
} else {
|
||||
freqTonalityLimit = 1;
|
||||
}
|
||||
customFreqMap = nullptr;
|
||||
}
|
||||
void setTransposeSemitones(Sample semitones, Sample tonalityLimit=0) {
|
||||
setTransposeFactor(std::pow(2, semitones/12), tonalityLimit);
|
||||
customFreqMap = nullptr;
|
||||
}
|
||||
// Sets a custom frequency map - should be monotonically increasing
|
||||
void setFreqMap(std::function<Sample(Sample)> inputToOutput) {
|
||||
customFreqMap = inputToOutput;
|
||||
}
|
||||
|
||||
private:
|
||||
using Complex = std::complex<Sample>;
|
||||
static constexpr Sample noiseFloor{1e-15};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user