two wavefolding algorithms

This commit is contained in:
2024-10-03 08:26:11 +02:00
parent bec6599f35
commit 5baec48c28

View File

@@ -11,7 +11,23 @@ public:
}
private:
// folds the wave from -1 to 1
float fold(float _sample)
{
while (_sample > 1.0 || _sample < -1.0) {
if (_sample > 1.0) {
_sample = 2.0 - _sample;
} else if (_sample < -1.0) {
_sample = -2.0 - _sample;
}
}
return _sample;
}
// folds the positive part of the wave independently from the negative part.
float fold_bipolar(float _sample)
{
// fold positive values
if (_sample > 1.0) {