Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Ensure the mixer helpers are properly inlined | Chris Robinson | 2023-01-13 | 3 | -8/+9 |
| | |||||
* | Avoid inlining the base_exception destructor | Chris Robinson | 2023-01-13 | 2 | -1/+3 |
| | |||||
* | Avoid unnecessary uses of make_optional | Chris Robinson | 2023-01-13 | 3 | -3/+3 |
| | |||||
* | Use a span instead of a count+pointer | Chris Robinson | 2023-01-11 | 2 | -12/+8 |
| | |||||
* | Rename some struct members | Chris Robinson | 2023-01-10 | 2 | -64/+67 |
| | | | | And make a related function a member function | ||||
* | Update a comment | Chris Robinson | 2023-01-08 | 1 | -1/+1 |
| | |||||
* | Avoid using a reversed all-pass for the front stablizer | Chris Robinson | 2023-01-06 | 4 | -70/+41 |
| | | | | | | While a neat trick, it's been shown to be too volatile and add noise as the signal gets louder. It's better to just accept the phase shift and ensure everything stays aligned. | ||||
* | Combine some duplicate code to mix each channel | Chris Robinson | 2023-01-05 | 3 | -330/+186 |
| | |||||
* | Add and use mixers that process one input and output channel | Chris Robinson | 2023-01-05 | 7 | -0/+214 |
| | |||||
* | Add a simple wrapper to call the mixer function | Chris Robinson | 2023-01-04 | 3 | -5/+11 |
| | |||||
* | Simplify handling effect output for spatial effects | Chris Robinson | 2023-01-04 | 2 | -21/+33 |
| | | | | | | | | | | | | 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 negative offset starts for callback buffers | Chris Robinson | 2023-01-04 | 1 | -9/+11 |
| | |||||
* | Combine multiple al_printf definitions | Chris Robinson | 2023-01-02 | 2 | -58/+49 |
| | | | | And separate the log level prefix from the message. | ||||
* | Multiply by the inverse instead of divide | Chris Robinson | 2023-01-01 | 1 | -4/+4 |
| | |||||
* | Fix a comment | Chris Robinson | 2023-01-01 | 1 | -2/+1 |
| | |||||
* | Swap the order of some checks to simplify voice setup | Chris Robinson | 2023-01-01 | 1 | -35/+25 |
| | |||||
* | Simplify constructing the process path and executable name | Chris Robinson | 2022-12-30 | 1 | -7/+5 |
| | |||||
* | Avoid inlining LoadedHrtf's destructor | Chris Robinson | 2022-12-17 | 1 | -0/+7 |
| | |||||
* | Use a bitset for the enabled event flags | Chris Robinson | 2022-12-16 | 4 | -15/+23 |
| | |||||
* | Avoid inlining certain exception functions | Chris Robinson | 2022-12-16 | 2 | -4/+1 |
| | |||||
* | Avoid extraneous temporaries when filling vectors | Chris Robinson | 2022-12-15 | 1 | -1/+6 |
| | |||||
* | Define a destructor as default instead of empty | Chris Robinson | 2022-12-15 | 1 | -1/+1 |
| | |||||
* | Rename a potentially confusing member function | Chris Robinson | 2022-12-08 | 2 | -2/+2 |
| | |||||
* | Limit voice update fading length to 64 samples | Chris Robinson | 2022-12-08 | 1 | -13/+7 |
| | |||||
* | Avoid using a macro to wrap standard attributes | Chris Robinson | 2022-12-06 | 11 | -25/+25 |
| | |||||
* | Avoid some uses of the LIKELY/UNLIKELY macros | Chris Robinson | 2022-12-05 | 8 | -12/+12 |
| | |||||
* | Use standard likely/unlikely attributes when available | Chris Robinson | 2022-12-05 | 5 | -22/+22 |
| | |||||
* | Avoid a potential unsigned underflow | Chris Robinson | 2022-11-13 | 1 | -1/+1 |
| | |||||
* | Change a function to a static method | Chris Robinson | 2022-11-13 | 2 | -5/+4 |
| | |||||
* | Avoid duplicate checks and calculations | Chris Robinson | 2022-11-13 | 1 | -12/+8 |
| | |||||
* | Fix SampleConverter source read count | Chris Robinson | 2022-11-12 | 2 | -47/+23 |
| | |||||
* | Add a method for the input sample delay for the SampleConverter | Chris Robinson | 2022-11-12 | 2 | -1/+14 |
| | |||||
* | Add preliminary support for 7.1.4 output modes | Chris Robinson | 2022-11-03 | 2 | -0/+3 |
| | | | | | | | | I don't know how different sound APIs handle 7.1.4 ("Atmos" or "Auro3D") output, but currently it simply specifies the additional channels with the height channel labels. This isn't likely how it works for a virtualized channel bed, for playing over other with-height configurations (7.1.2, 5.1.4, etc), but this should be an okay start. | ||||
* | Add the ability to start a voice at a particular time | Chris Robinson | 2022-11-03 | 2 | -8/+42 |
| | |||||
* | Handle negative voice positions | Chris Robinson | 2022-11-02 | 2 | -28/+50 |
| | | | | | | 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. | ||||
* | Use the IIR filter for UHJ by default | Chris Robinson | 2022-10-30 | 1 | -1/+1 |
| | | | | | | | Now that it doesn't cause the distortion like before, the IIR implementation provides a very wide pass-band with the lowest CPU requirements. If maintaining the original phase is important, fir256 and fir512 are still available, given whether lower CPU use or a wider pass-band is more important. | ||||
* | Rename some variables to more clearly indicate their meaning | Chris Robinson | 2022-10-28 | 5 | -40/+40 |
| | |||||
* | Rework the UHJ IIR filters to avoid applying an IIR in reverse | Chris Robinson | 2022-10-27 | 2 | -153/+128 |
| | |||||
* | Switch back to the FIR256 filter by default | Chris Robinson | 2022-10-26 | 1 | -1/+1 |
| | | | | | | There is a surprisingly noticeable amount of static caused by the IIR filter in particular circumstances. The 256-point filter is only slightly slower, but the frequency response should be good enough to use as a default for now. | ||||
* | Use the correct input for the IIR UHJ encoder | Chris Robinson | 2022-10-26 | 1 | -7/+29 |
| | | | | Also better detail the IIR implementation. | ||||
* | Use the IIR all-pass filter by default | Chris Robinson | 2022-10-26 | 1 | -1/+1 |
| | |||||
* | Fix up a comment | Chris Robinson | 2022-10-26 | 1 | -2/+2 |
| | |||||
* | Add a comment about the filter delay | Chris Robinson | 2022-10-25 | 1 | -0/+3 |
| | |||||
* | Fix some value ordering | Chris Robinson | 2022-10-25 | 1 | -2/+2 |
| | |||||
* | Avoid a duplicate all-pass function that accumulates | Chris Robinson | 2022-10-22 | 2 | -92/+113 |
| | |||||
* | Rename some variables to be less ambiguous | Chris Robinson | 2022-10-21 | 3 | -20/+20 |
| | |||||
* | Rename a couple functions to clarify their use | Chris Robinson | 2022-10-21 | 1 | -13/+13 |
| | |||||
* | Add separate filter options for UHJ encoding and decoding | Chris Robinson | 2022-10-21 | 3 | -4/+6 |
| | |||||
* | Add an IIR filter option for UHJ encoding/decoding | Chris Robinson | 2022-10-21 | 3 | -30/+384 |
| | | | | | | 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. | ||||
* | Increase sub-sample precision to 16 bits | Chris Robinson | 2022-10-16 | 1 | -1/+1 |
| |