25 lines
776 B
C++
25 lines
776 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) {
|
|
|
|
if (outLeft[i] > 0) {
|
|
outLeft[i] = inLeft[i] > clip_ ? clip_ : inLeft[i];
|
|
} else {
|
|
outLeft[i] = inLeft[i] < -clip_ ? -clip_ : inLeft[i];
|
|
}
|
|
if (outRight[i] > 0) {
|
|
outRight[i] = inRight[i] > clip_ ? clip_ : inRight[i];
|
|
} else {
|
|
outRight[i] = inRight[i] < -clip_ ? -clip_ : inRight[i];
|
|
}
|
|
}
|
|
}
|