Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 |
| | |||||
* | Add an internal Super Stereo format | Chris Robinson | 2021-12-11 | 1 | -0/+1 |
| | | | | | | | It's not available as an AL buffer format (yet) since I'm not sure how to expose it. Internally it seems fine as a separate channel configuration, but because OpenAL combines the channel configuration and sample type, a flag may work better there. | ||||
* | Add a UHJ-specific coefficient scaling array | Chris Robinson | 2021-07-13 | 1 | -2/+7 |
| | |||||
* | Update include headers | Chris Robinson | 2021-04-27 | 15 | -30/+33 |
| | | | | Don't add alc/ to the include paths. | ||||
* | Update some license notices | Chris Robinson | 2021-04-27 | 2 | -28/+52 |
| | | | | Permission to relicense was granted via email. | ||||
* | Update includes | Chris Robinson | 2021-04-27 | 11 | -15/+18 |
| | |||||
* | Move BufferStorage and Voice to core | Chris Robinson | 2021-04-27 | 1 | -1/+1 |
| | |||||
* | Move GetChannelIdxByName and clean up some more includes | Chris Robinson | 2021-04-26 | 2 | -2/+0 |
| | |||||
* | Move some functions to core | Chris Robinson | 2021-04-25 | 14 | -88/+238 |
| | | | | And clean up more includes | ||||
* | More include cleanup | Chris Robinson | 2021-04-24 | 1 | -0/+3 |
| | |||||
* | Move GetHFOrderScales to a more appropriate place | Chris Robinson | 2021-04-24 | 2 | -4/+3 |
| | |||||
* | Create a base the ALCdevice and ALCcontext structs | Chris Robinson | 2021-04-24 | 15 | -69/+70 |
| | | | | | A base that contains the API-agnostic data, with ALCdevice and ALCcontext being for AL-specific data. | ||||
* | Add support for 4-channel UHJ | Chris Robinson | 2021-03-31 | 1 | -1/+2 |
| | | | | Also add the SOFT moniker to the new macros | ||||
* | Handle 3-channel UHJ audio buffers | Chris Robinson | 2021-03-31 | 1 | -1/+2 |
| | |||||
* | Start an interface for providing UHJ audio | Chris Robinson | 2021-03-31 | 1 | -1/+20 |
| | | | | Currently only 2-channel UHJ, which gets treated as stereo. | ||||
* | Avoid copying buffers for aligning overlapped windows | Chris Robinson | 2021-01-30 | 2 | -33/+42 |
| | |||||
* | Store buffer info in the queue entry | Chris Robinson | 2021-01-24 | 15 | -47/+53 |
| | |||||
* | Avoid global constexpr arrays | Chris Robinson | 2021-01-21 | 1 | -11/+11 |
| | |||||
* | Add NEON-enhanced FIR loops for convolution and UHJ | Chris Robinson | 2020-12-31 | 1 | -0/+15 |
| | |||||
* | Return an intrusive_ptr from EffectStateFactory::create | Chris Robinson | 2020-12-28 | 15 | -19/+34 |
| | |||||
* | Avoid including voice.h in alcontext.h | Chris Robinson | 2020-12-27 | 4 | -0/+6 |
| | |||||
* | Combine EffectState::deviceUpdate with setBuffer | Chris Robinson | 2020-12-26 | 15 | -35/+29 |
| | |||||
* | Avoid AL enums for the EffectSlot type | Chris Robinson | 2020-12-26 | 1 | -2/+2 |
| | |||||
* | Add a crossover frequency field for the device | Chris Robinson | 2020-12-26 | 2 | -2/+2 |
| | | | | | | Used when upsampling low-order ambisonic signals to higher order. Rather than a hardcoded 400hz, it ensures a consistent crossover point when an ambdec configuration is used. It can also allow for an alsoft config option. | ||||
* | Update a comment and type used in the convolution effect | Chris Robinson | 2020-12-25 | 1 | -11/+11 |
| | |||||
* | Rename From2D to FromACN2D | Chris Robinson | 2020-12-25 | 1 | -1/+1 |
| | |||||
* | Avoid AL types and enums in the effect processors | Chris Robinson | 2020-12-24 | 12 | -142/+147 |
| | |||||
* | Move logging to core | Chris Robinson | 2020-12-17 | 1 | -1/+1 |
| | |||||
* | Move fmt_traits to core | Chris Robinson | 2020-12-13 | 1 | -1/+1 |
| |