aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Support different input channel orders in uhjencoderChris Robinson2022-11-041-12/+39
|
* Add preliminary support for 7.1.4 output modesChris Robinson2022-11-0319-6/+201
| | | | | | | | 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 functions to start sources at a particular device timeChris Robinson2022-11-034-161/+247
| | | | | | | | This starts a source at a particular device clock time, rounded to the nearest sample (really, 4th sample for SIMD reasons), allowing to start a sound at a particular point in the output instead of the next update. Unlike using negative offsets, this is not affected by pitch/velocity.
* Add the ability to start a voice at a particular timeChris Robinson2022-11-034-9/+49
|
* int64_t max can't fit into a double without narrowingChris Robinson2022-11-021-6/+0
|
* Handle negative voice positionsChris Robinson2022-11-023-64/+116
| | | | | | 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-302-3/+3
| | | | | | | 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-273-155/+130
|
* Switch back to the FIR256 filter by defaultChris Robinson2022-10-262-5/+5
| | | | | | 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-262-9/+31
| | | | Also better detail the IIR implementation.
* Use the IIR all-pass filter by defaultChris Robinson2022-10-262-6/+7
|
* 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 nesting lambdasChris Robinson2022-10-241-42/+27
|
* Update upload-artifact to remove warning (#778)3DJ2022-10-231-1/+1
| | | | | | | > Node.js 12 actions are deprecated. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/. Please update the following actions to use Node.js 16: actions/upload-artifact This should fix 2 of the 3 warnings here: https://github.com/kcat/openal-soft/actions/runs/3303596206 by updating to this https://github.com/actions/upload-artifact/releases/tag/v3.1.1 The third warning is more of a heads up of the macOS runner being updated so it should go away eventually
* Add missing headerChris Robinson2022-10-221-0/+1
|
* Avoid a duplicate all-pass function that accumulatesChris Robinson2022-10-224-225/+143
|
* Add a warning when using the old UHJ filter optionChris Robinson2022-10-211-2/+8
|
* Rename some variables to be less ambiguousChris Robinson2022-10-214-22/+22
|
* Rename a couple functions to clarify their useChris Robinson2022-10-211-13/+13
|
* Add separate filter options for UHJ encoding and decodingChris Robinson2022-10-216-18/+49
|
* Add an IIR filter option for UHJ encoding/decodingChris Robinson2022-10-215-33/+389
| | | | | | 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.
* Avoid using a modulo in a loopChris Robinson2022-10-181-10/+42
|
* Increase sub-sample precision to 16 bitsChris Robinson2022-10-161-1/+1
|
* Don't pass null to fprintfChris Robinson2022-10-101-2/+2
|
* Handle the delays specified in SOFA filesChris Robinson2022-10-101-44/+55
|
* Fix an ambisonic layout check in alffplayChris Robinson2022-09-241-1/+1
|
* Move some comments to a more appropriate placeChris Robinson2022-09-231-32/+32
|
* Avoid another potential overflowChris Robinson2022-09-231-1/+1
|
* Fixed bug and possible overflow type (#771)Herman Semenov2022-09-232-2/+2
|
* Remove unnecessary includes and forward declarationsChris Robinson2022-09-231-7/+0
|
* Remove an unnecessary includeChris Robinson2022-09-221-1/+0
|
* Use PulseAudio's threaded mainloop instead of a custom oneChris Robinson2022-09-221-141/+160
|
* Remove an unused variableChris Robinson2022-09-201-10/+9
|
* Clear the buffer loop element when out of the loop rangeChris Robinson2022-09-181-2/+3
|
* Correctly check if a multi-channel decoder is setChris Robinson2022-09-161-1/+1
|
* Update the built-in quad and 7.1 decodersChris Robinson2022-09-161-26/+26
| | | | | Make them first- and second-order respectively. They don't have enough speakers to really be suitable for higher orders than that.
* Clear trailing whitespace from the loaded ambdec descriptionChris Robinson2022-09-151-0/+2
|
* Use the correct va_list for the second vsnprintfChris Robinson2022-09-141-1/+1
|
* Add vcpkg installation instructions (#768)JonLiu19932022-09-141-0/+13
|
* Use ifstream's wchar_t constructors on WindowsChris Robinson2022-09-123-173/+20
| | | | MinGW seems to have added them a while ago, so that greatly simplifies things.
* Don't pack ambdec coefficientsChris Robinson2022-09-122-68/+25
| | | | | | | | | Tne coefficients are placed as for full 3D ACN handling. The ChanMask just indicates which have potentially useful values. This could be a bit more agressive and clear ChanMask bits for channels that don't contribute to output, so that a decoder the specifies height-related channel bits, but leaves their coefficients all 0, can be handled as 2D. I don't expect many ambdec files to be like that, though.
* Simplify ambdec loadingChris Robinson2022-09-121-236/+156
|
* Ensure coeff_scale is set for ambdec filesChris Robinson2022-09-113-6/+13
|
* Reject ambdec files with higher than third order and FuMa scalingChris Robinson2022-09-111-13/+15
|
* Recognize void(pthread_t,const char*)Chris Robinson2022-09-091-1/+6
|
* tvos support (#762)Paulo Coutinho2022-09-041-1/+1
|
* Track if doing 2D mixing onlyChris Robinson2022-09-046-8/+20
| | | | And use it to select the proper HF scales