Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Workaround lack of roundf with early MSVC | Chris Robinson | 2018-11-02 | 1 | -0/+12 |
| | |||||
* | Use HUGE_VALF instead of INFINITY | Chris Robinson | 2018-11-02 | 1 | -1/+2 |
| | | | | Older MSVC lacks INFINITY, and we define a HUGE_VALF fallback when needed. | ||||
* | Specify the correct array size for casting | Chris Robinson | 2018-11-02 | 1 | -2/+2 |
| | |||||
* | Add back an inadvertently removed static | Chris Robinson | 2018-10-02 | 1 | -1/+1 |
| | |||||
* | Use < instead of != for some loop checks | Chris Robinson | 2018-10-01 | 1 | -2/+2 |
| | |||||
* | Ensure BUFFERSIZE is a power of 2 | Chris Robinson | 2018-09-30 | 1 | -2/+4 |
| | |||||
* | Make the Compressor struct opaque | Chris Robinson | 2018-09-30 | 1 | -3/+66 |
| | |||||
* | Fix some length ranges | Chris Robinson | 2018-09-29 | 1 | -2/+8 |
| | |||||
* | Improve a couple loops | Chris Robinson | 2018-09-29 | 1 | -7/+15 |
| | | | | | | Avoid masking the index with each iteration, and instead do up to when the mask would apply. This allows for better optimizations, in particular fewer instructions and better chances for vectorization. | ||||
* | Don't use a ringbuffer design for the limiter's side chain | Chris Robinson | 2018-09-29 | 1 | -31/+21 |
| | | | | | | Rather than continuously wrapping when used, each update uses it from the front and copies the tail to the front at the end. This allows for more effficient accesses in loops. | ||||
* | Add some assumes for the limiter | Chris Robinson | 2018-09-29 | 1 | -0/+17 |
| | |||||
* | Simplify a lower-bound clamp | Chris Robinson | 2018-09-28 | 1 | -2/+1 |
| | |||||
* | Constify a couple more variables | Chris Robinson | 2018-09-28 | 1 | -2/+2 |
| | |||||
* | Include the limiter's lookAhead delay in the device latency | Chris Robinson | 2018-09-25 | 1 | -3/+3 |
| | |||||
* | Update the output limiter/compressor | Chris Robinson | 2018-09-25 | 1 | -132/+345 |
| | | | | | | | | | | This provides better characteristics for an amplitude limiter. In particular, it utilizes the peak amplitude instead of the RMS, and the used parameters basically guarantee no output samples exceed the given threshold... almost, due to floating-point errors as the threshold is converted from dB to log-e for the envelope, then is negated and converted to linear amplitude to apply to the signal. It's quite possible for some rounding errors to creep in and not perfectly saturate the result. | ||||
* | Avoid potentially calling log10f(0) | Chris Robinson | 2018-04-29 | 1 | -1/+1 |
| | |||||
* | Move the compressor/limiter declarations to their own header | Chris Robinson | 2018-01-11 | 1 | -27/+4 |
| | |||||
* | Remove the fastf2u conversion function | Chris Robinson | 2017-06-27 | 1 | -1/+1 |
| | |||||
* | Add a new compressor/limiter | Chris Robinson | 2017-05-27 | 1 | -0/+255 |
This is just for the output limiter right now, but in the future can be used for the compressor EFX effect. The parameters are also hardcoded, but can be made configurable after 1.18. |