Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Use constexpr variables instead of macros | Chris Robinson | 2023-01-18 | 1 | -51/+57 | |
| | ||||||
* | Use a variable to handle a long value definition | Chris Robinson | 2023-01-18 | 1 | -2/+3 | |
| | ||||||
* | Make a variable for a reused value | Chris Robinson | 2023-01-17 | 2 | -3/+3 | |
| | ||||||
* | Use a better frequency bin target for pitch shifting | Chris Robinson | 2023-01-17 | 2 | -23/+47 | |
| | | | | And slightly adjust the Hann window. | |||||
* | Change a couple macros to constexpr variables | Chris Robinson | 2023-01-16 | 6 | -18/+18 | |
| | ||||||
* | Rename some members for clarity | Chris Robinson | 2023-01-12 | 1 | -22/+22 | |
| | ||||||
* | Rename some lambda parameters to avoid shadowing warnings | Chris Robinson | 2023-01-05 | 5 | -15/+15 | |
| | ||||||
* | Add and use mixers that process one input and output channel | Chris Robinson | 2023-01-05 | 4 | -8/+8 | |
| | ||||||
* | Simplify handling effect output for spatial effects | Chris Robinson | 2023-01-04 | 5 | -83/+140 | |
| | | | | | | | | | | | | Effects are given a 3D ambisonic buffer of the same order as the device, for processing surround sound. Effects that pass input channels to matching output channels as it processes them don't need to mix each input channel to all output channels. At most, an input channel may mix to a different output channel, if the target buffer uses a different channel layout, and need a gain adjustment, if it uses a different scaling. With a 2D output buffer, a number of channels can be skipped altogether. | |||||
* | Handle UHJ better with convolution reverb | Chris Robinson | 2023-01-01 | 1 | -44/+66 | |
| | | | | | | It's now decoded to B-Format while being FFT'd, and processed as B-Format. Again, not that UHJ should really ever be used for convolution, but it's a valid format someone may want to use despite the overhead from converting it. | |||||
* | Avoid some explicit casts and references | Chris Robinson | 2023-01-01 | 1 | -2/+1 | |
| | ||||||
* | Avoid duplicate code to update the reverb delay lines | Chris Robinson | 2022-12-22 | 1 | -14/+7 | |
| | ||||||
* | Include the reverb delay times in the fade sample count | Chris Robinson | 2022-12-20 | 1 | -24/+15 | |
| | ||||||
* | Make sure to update the input filters with partial updates | Chris Robinson | 2022-12-20 | 1 | -1/+11 | |
| | ||||||
* | Clean up some reverb mixing loops | Chris Robinson | 2022-12-19 | 1 | -21/+18 | |
| | ||||||
* | Turn a static member function into a lambda where it's used | Chris Robinson | 2022-12-19 | 1 | -31/+29 | |
| | | | | And clean up some parameters | |||||
* | Remove a redundant comment | Chris Robinson | 2022-12-18 | 1 | -4/+1 | |
| | ||||||
* | Use a size_t for the reverb decay fade count | Chris Robinson | 2022-12-18 | 1 | -2/+2 | |
| | ||||||
* | Clear the old reverb pipeline buffer when it's done | Chris Robinson | 2022-12-17 | 1 | -9/+46 | |
| | ||||||
* | Rework reverb fading to toggle between pipelines | Chris Robinson | 2022-12-17 | 1 | -475/+360 | |
| | | | | | | | | | | | | When non-simple properties are changed, the active reverb pipeline is switched and the new parameters set on that one. The main process function will then be set to fade out input on the old pipeline, fade in input on the new pipeline, then process and mix both pipelines. After some number of samples (calculated from its decay time), the old pipeline will stop processing. This should improve the transition from a highly reverberant environment by not harshly interpolating to the new environment, as well as better handle changes to the all-pass and T60 filters. | |||||
* | Avoid manually specifying FFT template parameters | Chris Robinson | 2022-12-14 | 2 | -5/+5 | |
| | ||||||
* | Avoid using a macro to wrap standard attributes | Chris Robinson | 2022-12-06 | 1 | -1/+1 | |
| | ||||||
* | Avoid some uses of the LIKELY/UNLIKELY macros | Chris Robinson | 2022-12-05 | 1 | -1/+1 | |
| | ||||||
* | Use complex floats for convolution reverb FFTs | Chris Robinson | 2022-11-24 | 2 | -24/+23 | |
| | ||||||
* | Avoid using a modulo in a loop | Chris Robinson | 2022-10-18 | 1 | -10/+42 | |
| | ||||||
* | Track if doing 2D mixing only | Chris Robinson | 2022-09-04 | 2 | -2/+3 | |
| | | | | And use it to select the proper HF scales | |||||
* | Allow different HF scales for 2D mixing/output | Chris Robinson | 2022-09-04 | 2 | -2/+2 | |
| | | | | | Not actually used yet, the device needs to track whether it's using 2D or 3D mixing. | |||||
* | Use the difference in HF scale for upsampling ambisonics | Chris Robinson | 2022-09-03 | 2 | -2/+2 | |
| | ||||||
* | Revert "Don't apply the HF scaling for "upsampling" ambisonics" | Chris Robinson | 2022-09-02 | 2 | -4/+42 | |
| | | | | This reverts commit bf3f63fb4c5faa45784d7433d68b7013e29ee2c1. | |||||
* | Don't apply the HF scaling for "upsampling" ambisonics | Chris Robinson | 2022-08-31 | 2 | -42/+4 | |
| | | | | | | | | | | | | Not sure if this is best, but it fixes the issue of upsampling lower orders to higher orders multiple times (mixing lower order to higher order, cutting back to lower order by dropping the extra channels, then upsampling again, applying the HF scale multiple times and messing up the high frequencies/energy vector), as well as having too-strong high frequencies of upsampled content in general. As it is, with the new upsampling method, the lower order signal contributes to some higher order channels, which helps offset the high frequency scaling difference (except first- to second-order, which adds nothing). | |||||
* | Do a simplified update for reverb when not fading | Chris Robinson | 2022-08-29 | 1 | -49/+48 | |
| | ||||||
* | Always fade the main early and late delay taps | Chris Robinson | 2022-08-29 | 1 | -8/+33 | |
| | | | | | | | | | These were actually missing from the current check for fading. But the EFX documentation suggests these (along with the early/late gain and panning) can be adjusted often without invoking a full change, as dynamically modeling an environment would continually change these properties as the listener moves around (changing the direction and distance to the reflective surfaces). So ensuring they're kept up-to-date would be the way to go. | |||||
* | Update reverb processing | Chris Robinson | 2022-08-29 | 1 | -285/+290 | |
| | | | | | | | | | | | | | Separate the core delay line into early and late input delay lines. This will be necessary to allow a second late reverb processing loop to decay after a change. Also ensure the early reflection delay line is long enough to write in MAX_UPDATE_SAMPLES first without interfering with the subsequent read. And ensure the modulation delay doesn't cause an underflow on the feedback offset. Finally, move the loop inside the processing functions to minimize loop iterations. | |||||
* | Upsample the reverb output as needed | Chris Robinson | 2022-08-27 | 1 | -35/+94 | |
| | ||||||
* | Create and use 2D upsampling matrices | Chris Robinson | 2022-08-25 | 2 | -2/+2 | |
| | ||||||
* | Inline and precompute some CalcDirectionCoeffs calls | Chris Robinson | 2022-08-18 | 5 | -7/+7 | |
| | ||||||
* | Inline a function and remove an unnecessary parameter | Chris Robinson | 2022-08-16 | 2 | -2/+2 | |
| | ||||||
* | Use proper array sizes for more gains | Chris Robinson | 2022-08-15 | 12 | -22/+26 | |
| | ||||||
* | Change an inline function to a class method | Chris Robinson | 2022-08-02 | 1 | -4/+3 | |
| | ||||||
* | Ensure some mixing buffers are aligned for SIMD | Chris Robinson | 2022-07-26 | 2 | -2/+2 | |
| | ||||||
* | Use a boolean check instead of a function pointer | Chris Robinson | 2022-05-24 | 1 | -7/+14 | |
| | ||||||
* | Avoid dividing by a constant | Chris Robinson | 2022-05-24 | 1 | -4/+4 | |
| | ||||||
* | Rename lerp to avoid conflicts with C++20's std::lerp | Chris Robinson | 2022-04-06 | 3 | -6/+6 | |
| | ||||||
* | Rename Sqrt1_2 for consistency | Chris Robinson | 2022-02-01 | 1 | -5/+5 | |
| | ||||||
* | Remove math_defs.h | Chris Robinson | 2022-01-27 | 1 | -2/+5 | |
| | ||||||
* | Get rid of MathDefs | Chris Robinson | 2022-01-27 | 8 | -28/+24 | |
| | ||||||
* | Start and use a standard-like numbers header | Chris Robinson | 2022-01-27 | 2 | -11/+12 | |
| | ||||||
* | Use a different output matrix for late reverb | Chris Robinson | 2022-01-11 | 1 | -14/+22 | |
| | | | | | | | | | | This is a slightly reoriented tetrahedron, with responses on the front-left and front-right, along with upper-back and lower-back. This is a alternative matrix suggested for converting the A-Format late reverb lines back to B-Format. Also alter the matrix scaling to be less destructive. x0.5 is just reducing the floating-point exponent by 1, whereas the previous values would be more likely to introduce rounding errors just from scaling. | |||||
* | Move the effects base and effectslot to core | Chris Robinson | 2021-12-17 | 14 | -213/+14 | |
| | ||||||
* | Make an inline function to check for 2D ambisonic formats | Chris Robinson | 2021-12-12 | 1 | -1/+1 | |
| |