Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add the ability to start a voice at a particular time | Chris Robinson | 2022-11-03 | 1 | -7/+37 |
| | |||||
* | Handle negative voice positions | Chris Robinson | 2022-11-02 | 1 | -27/+49 |
| | | | | | | This allows a voice/source to start with a delay, more accurately than simply waiting to call alSourcePlay. The delay is affected by pitch and velocity, making it useful to simulate distant sounds that take time to be heard. | ||||
* | Rename some variables to more clearly indicate their meaning | Chris Robinson | 2022-10-28 | 1 | -6/+6 |
| | |||||
* | Rename some variables to be less ambiguous | Chris Robinson | 2022-10-21 | 1 | -8/+8 |
| | |||||
* | Add separate filter options for UHJ encoding and decoding | Chris Robinson | 2022-10-21 | 1 | -2/+2 |
| | |||||
* | Add an IIR filter option for UHJ encoding/decoding | Chris Robinson | 2022-10-21 | 1 | -23/+30 |
| | | | | | | This uses the reversed-allpass trick to maintain linear phase. with a 256- sample look-ahead/delay to minimize distortion. This should better preserve low frequencies while maintaining a proper phase response. | ||||
* | Remove an unused variable | Chris Robinson | 2022-09-20 | 1 | -10/+9 |
| | |||||
* | Clear the buffer loop element when out of the loop range | Chris Robinson | 2022-09-18 | 1 | -2/+3 |
| | |||||
* | Track if doing 2D mixing only | Chris Robinson | 2022-09-04 | 1 | -2/+3 |
| | | | | And use it to select the proper HF scales | ||||
* | Allow different HF scales for 2D mixing/output | Chris Robinson | 2022-09-04 | 1 | -1/+1 |
| | | | | | 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 | 1 | -1/+1 |
| | |||||
* | Revert "Don't apply the HF scaling for "upsampling" ambisonics" | Chris Robinson | 2022-09-02 | 1 | -12/+44 |
| | | | | This reverts commit bf3f63fb4c5faa45784d7433d68b7013e29ee2c1. | ||||
* | Don't apply the HF scaling for "upsampling" ambisonics | Chris Robinson | 2022-08-31 | 1 | -44/+12 |
| | | | | | | | | | | | | 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). | ||||
* | Create and use 2D upsampling matrices | Chris Robinson | 2022-08-25 | 1 | -4/+6 |
| | |||||
* | Inline a function and remove an unnecessary parameter | Chris Robinson | 2022-08-16 | 1 | -1/+1 |
| | |||||
* | Add an option for higher quality UHJ filters | Chris Robinson | 2022-08-08 | 1 | -4/+20 |
| | |||||
* | Parameterize the UHJ filter length | Chris Robinson | 2022-08-07 | 1 | -10/+10 |
| | |||||
* | Use a proper literal type | Chris Robinson | 2022-06-07 | 1 | -1/+1 |
| | |||||
* | Use a member variable to specify the decoder padding | Chris Robinson | 2022-05-17 | 1 | -2/+10 |
| | |||||
* | Avoid magic numbers | Chris Robinson | 2022-05-16 | 1 | -6/+6 |
| | |||||
* | Use virtual functions for the decoder | Chris Robinson | 2022-05-14 | 1 | -10/+5 |
| | |||||
* | Rename lerp to avoid conflicts with C++20's std::lerp | Chris Robinson | 2022-04-06 | 1 | -2/+2 |
| | |||||
* | Remove the reversed all-pass trick in MixDirectHrtfBase | Chris Robinson | 2022-03-30 | 1 | -4/+1 |
| | | | | Given the minimum phase HRTF, it's not going to stay linear phase anyway. | ||||
* | Slightly improve handling of stopping voices | Chris Robinson | 2022-01-08 | 1 | -19/+27 |
| | |||||
* | Don't mix higher orders of B-Format than the device is doing | Chris Robinson | 2022-01-02 | 1 | -2/+2 |
| | |||||
* | Use an span of pointers instead of arrays for mixing | Chris Robinson | 2022-01-01 | 1 | -93/+94 |
| | |||||
* | Pass a span of pointers to the UHJ/SuperStereo decoder | Chris Robinson | 2022-01-01 | 1 | -1/+6 |
| | |||||
* | Use a bitset instead of a plain uint for flags | Chris Robinson | 2021-12-23 | 1 | -16/+16 |
| | |||||
* | Don't swallow up buffer callback samples when pausing | Chris Robinson | 2021-12-18 | 1 | -11/+17 |
| | |||||
* | Don't update voice sample histories when stopping/pausing | Chris Robinson | 2021-12-18 | 1 | -24/+25 |
| | | | | | Since a voice pausing is on a fade-out, and will replay the same samples again when restarting and fading in. | ||||
* | Rename Voice::mNumChannels for clarity | Chris Robinson | 2021-12-15 | 1 | -4/+4 |
| | |||||
* | Add source properties for Super Stereo | Chris Robinson | 2021-12-15 | 1 | -0/+21 |
| | | | | | When playing a stereo format, enabling Super Stereo causes the source to behave as a B-Format source, with a variable width control. | ||||
* | Make an inline function to check for 2D ambisonic formats | Chris Robinson | 2021-12-12 | 1 | -3/+1 |
| | |||||
* | Avoid initializing the NFC filter for every voice channel | Chris Robinson | 2021-12-11 | 1 | -8/+3 |
| | | | | | | It can be initialized once with the device's speaker distance since it won't change in between resets, then copied into the voice where it can be adjusted as needed. | ||||
* | Add an internal Super Stereo format | Chris Robinson | 2021-12-11 | 1 | -10/+18 |
| | | | | | | | 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. | ||||
* | Improve the 2-channel UHJ response | Chris Robinson | 2021-12-09 | 1 | -3/+41 |
| | | | | | | This attempts to correct for the differences needed for 2-channel UHJ's shelf filters given the output shelf filters. It's far from ideal, but better than nothing. | ||||
* | Avoid manually prefixing EventType_ enums | Chris Robinson | 2021-10-10 | 1 | -4/+4 |
| | | | | And use a better fitting type that matches how it's used | ||||
* | Make a construct_at method amd use it | Chris Robinson | 2021-10-08 | 1 | -2/+4 |
| | |||||
* | Use the 2D channel orders for 2- and 3-channel UHJ | Chris Robinson | 2021-07-13 | 1 | -1/+2 |
| | |||||
* | Don't allocate full buffer lines in each voice | Chris Robinson | 2021-06-21 | 1 | -22/+36 |
| | | | | | | There's now effectively a 16-channel limit for buffers (as determined by the number of elements in DeviceBase::mSampleData). Any more than that are ignored when mixing. | ||||
* | Avoid mixing extraneous channels | Chris Robinson | 2021-06-21 | 1 | -18/+18 |
| | |||||
* | Avoid altering SrcBufferSize in each channel | Chris Robinson | 2021-06-14 | 1 | -1/+1 |
| | |||||
* | Combine some checks | Chris Robinson | 2021-06-14 | 1 | -22/+23 |
| | |||||
* | Move BufferStorage and Voice to core | Chris Robinson | 2021-04-27 | 1 | -0/+849 |