27 lines
No EOL
688 B
C++
27 lines
No EOL
688 B
C++
#include "Clipper.hpp"
|
|
|
|
Clipper::Clipper(float init_clip) : clip_(init_clip) {}
|
|
|
|
void Clipper::process(const float *in, float *out, uint32_t frames) {
|
|
for (uint32_t i = 0; i < frames; ++i) {
|
|
out[i] = in[i] > clip_ ? clip_ : in[i];
|
|
}
|
|
}
|
|
void Clipper::processStereo(const float *inLeft, const float *inRight,
|
|
float *outLeft, float *outRight, uint32_t frames) {
|
|
for (uint32_t i = 0; i < frames; ++i) {
|
|
|
|
outLeft[i] = clip(inLeft[i]);
|
|
outRight[i] = clip(inRight[i]);
|
|
}
|
|
}
|
|
|
|
float Clipper::clip(const float in) {
|
|
float out = in;
|
|
if (in > 0) {
|
|
out = in > clip_ ? clip_ : in;
|
|
} else {
|
|
out = in < -clip_ ? -clip_ : in;
|
|
}
|
|
return out;
|
|
} |