aboutsummaryrefslogtreecommitdiffstats
path: root/core
Commit message (Collapse)AuthorAgeFilesLines
* Ensure the mixer helpers are properly inlinedChris Robinson2023-01-133-8/+9
|
* Avoid inlining the base_exception destructorChris Robinson2023-01-132-1/+3
|
* Avoid unnecessary uses of make_optionalChris Robinson2023-01-133-3/+3
|
* Use a span instead of a count+pointerChris Robinson2023-01-112-12/+8
|
* Rename some struct membersChris Robinson2023-01-102-64/+67
| | | | And make a related function a member function
* Update a commentChris Robinson2023-01-081-1/+1
|
* Avoid using a reversed all-pass for the front stablizerChris Robinson2023-01-064-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 channelChris Robinson2023-01-053-330/+186
|
* Add and use mixers that process one input and output channelChris Robinson2023-01-057-0/+214
|
* Add a simple wrapper to call the mixer functionChris Robinson2023-01-043-5/+11
|
* Simplify handling effect output for spatial effectsChris Robinson2023-01-042-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 buffersChris Robinson2023-01-041-9/+11
|
* Combine multiple al_printf definitionsChris Robinson2023-01-022-58/+49
| | | | And separate the log level prefix from the message.
* Multiply by the inverse instead of divideChris Robinson2023-01-011-4/+4
|
* Fix a commentChris Robinson2023-01-011-2/+1
|
* Swap the order of some checks to simplify voice setupChris Robinson2023-01-011-35/+25
|
* Simplify constructing the process path and executable nameChris Robinson2022-12-301-7/+5
|
* Avoid inlining LoadedHrtf's destructorChris Robinson2022-12-171-0/+7
|
* Use a bitset for the enabled event flagsChris Robinson2022-12-164-15/+23
|
* Avoid inlining certain exception functionsChris Robinson2022-12-162-4/+1
|
* Avoid extraneous temporaries when filling vectorsChris Robinson2022-12-151-1/+6
|
* Define a destructor as default instead of emptyChris Robinson2022-12-151-1/+1
|
* Rename a potentially confusing member functionChris Robinson2022-12-082-2/+2
|
* Limit voice update fading length to 64 samplesChris Robinson2022-12-081-13/+7
|
* Avoid using a macro to wrap standard attributesChris Robinson2022-12-0611-25/+25
|
* Avoid some uses of the LIKELY/UNLIKELY macrosChris Robinson2022-12-058-12/+12
|
* Use standard likely/unlikely attributes when availableChris Robinson2022-12-055-22/+22
|
* Avoid a potential unsigned underflowChris Robinson2022-11-131-1/+1
|
* Change a function to a static methodChris Robinson2022-11-132-5/+4
|
* Avoid duplicate checks and calculationsChris Robinson2022-11-131-12/+8
|
* Fix SampleConverter source read countChris Robinson2022-11-122-47/+23
|
* Add a method for the input sample delay for the SampleConverterChris Robinson2022-11-122-1/+14
|
* Add preliminary support for 7.1.4 output modesChris Robinson2022-11-032-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 timeChris Robinson2022-11-032-8/+42
|
* Handle negative voice positionsChris Robinson2022-11-022-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 defaultChris Robinson2022-10-301-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 meaningChris Robinson2022-10-285-40/+40
|
* Rework the UHJ IIR filters to avoid applying an IIR in reverseChris Robinson2022-10-272-153/+128
|
* Switch back to the FIR256 filter by defaultChris Robinson2022-10-261-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 encoderChris Robinson2022-10-261-7/+29
| | | | Also better detail the IIR implementation.
* Use the IIR all-pass filter by defaultChris Robinson2022-10-261-1/+1
|
* Fix up a commentChris Robinson2022-10-261-2/+2
|
* Add a comment about the filter delayChris Robinson2022-10-251-0/+3
|
* Fix some value orderingChris Robinson2022-10-251-2/+2
|
* Avoid a duplicate all-pass function that accumulatesChris Robinson2022-10-222-92/+113
|
* Rename some variables to be less ambiguousChris Robinson2022-10-213-20/+20
|
* Rename a couple functions to clarify their useChris Robinson2022-10-211-13/+13
|
* Add separate filter options for UHJ encoding and decodingChris Robinson2022-10-213-4/+6
|
* Add an IIR filter option for UHJ encoding/decodingChris Robinson2022-10-213-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 bitsChris Robinson2022-10-161-1/+1
|