aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Allow different HF scales for 2D mixing/outputChris Robinson2022-09-045-7/+27
| | | | | 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 ambisonicsChris Robinson2022-09-035-34/+32
|
* Update the second-order upsampler HF scaleChris Robinson2022-09-021-1/+1
|
* Revert "Don't apply the HF scaling for "upsampling" ambisonics"Chris Robinson2022-09-025-16/+119
| | | | This reverts commit bf3f63fb4c5faa45784d7433d68b7013e29ee2c1.
* Use an icosahedron for 3D second-orderChris Robinson2022-09-014-66/+62
|
* Don't apply the HF scaling for "upsampling" ambisonicsChris Robinson2022-08-315-119/+16
| | | | | | | | | | | | 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).
* Use a more precise 3D7.1 decoderChris Robinson2022-08-302-26/+26
|
* Use predefined variables to handle 1/sqrt(3)Chris Robinson2022-08-301-44/+45
|
* Do a simplified update for reverb when not fadingChris Robinson2022-08-291-49/+48
|
* Always fade the main early and late delay tapsChris Robinson2022-08-291-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 processingChris Robinson2022-08-291-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.