Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Don't prematurely change ALCdevice::BufferSize | Chris Robinson | 2022-11-22 | 1 | -7/+11 |
| | |||||
* | Fix WASAPI capture handling the background COM thread | Chris Robinson | 2022-11-19 | 1 | -18/+30 |
| | |||||
* | Update alsoft-config for new options | Chris Robinson | 2022-11-17 | 2 | -51/+89 |
| | |||||
* | Remove unnecessary use of SDL2_INCLUDE_DIR | Chris Robinson | 2022-11-16 | 1 | -2/+0 |
| | |||||
* | Add GitHub actions workflow to build utils/makemhr on update (#783) | 3DJ | 2022-11-16 | 1 | -0/+76 |
| | | | | | | | | * Build utils/makemhr on update This workflow builds makemhr.exe including dependencies (libmysofa, zlib, etc) whenever anything under utils/makemhr or the workflow is updated. It also uploads artifacts and [(pre)releases it with its own tag](https://github.com/ThreeDeeJay/openal-soft/releases/tag/makemhr) for a [permanent, up-to-date download link](https://github.com/ThreeDeeJay/openal-soft/releases/download/makemhr/makemhr.zip). * Clone latest libmysofa release tag without history | ||||
* | Fix router not loading on Creative's hardware OpenAL (#773) | Felipe | 2022-11-16 | 1 | -12/+22 |
| | | | | | | | | | | | | | | | According to the programming guide and the specification, those functions may be used by extensions. However, Creative's hardware OpenAL chose to not implement stub functions for those that they do not use. Currently they use only alBufferi for X-RAM related functions. Other implementations, such as OpenAL Soft and wrap_oal implement stub functions for those methods therefore they work. This commit turns those functions optional, just like they were in the old FOSS router. Consumers of the router will receive a nullptr as expected for not implemented methods if they load them using alGetProcAddress, which I believe is the correct way to do so. That is, the context must be current before loading al* functions. | ||||
* | Avoid a use-after-free in the ALSA backend | Chris Robinson | 2022-11-16 | 1 | -12/+12 |
| | |||||
* | Use SDL2's sdl2-config.cmake | Chris Robinson | 2022-11-16 | 2 | -199/+11 |
| | | | | Instead of our own custom FindSDL2.cmake | ||||
* | Avoid unnecessary duplicate CMake variables | Chris Robinson | 2022-11-16 | 2 | -11/+2 |
| | | | | | This should make FindPulseAudio.cmake more compatible with PulseAudio's own PulseAudioConfig.cmake. | ||||
* | Use the correct frame size for WASAPI resampling | Chris Robinson | 2022-11-13 | 1 | -2/+2 |
| | |||||
* | 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 | 4 | -9/+9 |
| | |||||
* | Avoid duplicate checks and calculations | Chris Robinson | 2022-11-13 | 1 | -12/+8 |
| | |||||
* | Add a config option to prevent WASAPI from using a resampler | Chris Robinson | 2022-11-12 | 2 | -1/+13 |
| | |||||
* | Add a resampler to WASAPI output | Chris Robinson | 2022-11-12 | 1 | -10/+75 |
| | | | | | | | This allows mixing at various samples rates that WASAPI doesn't otherwise support. This is mostly helpful for users that have unnecessarily high device rates (96 or 192khz), and lets the ALC_FREQUENCY attribute or frequency config option set a lower mixing rate for more efficient processing. | ||||
* | 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 |
| | |||||
* | Dynamically start/stop the WASAPI message thread | Chris Robinson | 2022-11-12 | 1 | -86/+117 |
| | |||||
* | Try to detect the update and buffer size from PipeWire | Chris Robinson | 2022-11-08 | 1 | -4/+45 |
| | |||||
* | Make sure sio_write and sio_read return valid values | Chris Robinson | 2022-11-07 | 1 | -5/+12 |
| | |||||
* | Support different input channel orders in uhjencoder | Chris Robinson | 2022-11-04 | 1 | -12/+39 |
| | |||||
* | Add preliminary support for 7.1.4 output modes | Chris Robinson | 2022-11-03 | 19 | -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 time | Chris Robinson | 2022-11-03 | 4 | -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 time | Chris Robinson | 2022-11-03 | 4 | -9/+49 |
| | |||||
* | int64_t max can't fit into a double without narrowing | Chris Robinson | 2022-11-02 | 1 | -6/+0 |
| | |||||
* | Handle negative voice positions | Chris Robinson | 2022-11-02 | 3 | -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 default | Chris Robinson | 2022-10-30 | 2 | -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 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 | 3 | -155/+130 |
| | |||||
* | Switch back to the FIR256 filter by default | Chris Robinson | 2022-10-26 | 2 | -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 encoder | Chris Robinson | 2022-10-26 | 2 | -9/+31 |
| | | | | Also better detail the IIR implementation. | ||||
* | Use the IIR all-pass filter by default | Chris Robinson | 2022-10-26 | 2 | -6/+7 |
| | |||||
* | 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 nesting lambdas | Chris Robinson | 2022-10-24 | 1 | -42/+27 |
| | |||||
* | Update upload-artifact to remove warning (#778) | 3DJ | 2022-10-23 | 1 | -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 header | Chris Robinson | 2022-10-22 | 1 | -0/+1 |
| | |||||
* | Avoid a duplicate all-pass function that accumulates | Chris Robinson | 2022-10-22 | 4 | -225/+143 |
| | |||||
* | Add a warning when using the old UHJ filter option | Chris Robinson | 2022-10-21 | 1 | -2/+8 |
| | |||||
* | Rename some variables to be less ambiguous | Chris Robinson | 2022-10-21 | 4 | -22/+22 |
| | |||||
* | 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 | 6 | -18/+49 |
| | |||||
* | Add an IIR filter option for UHJ encoding/decoding | Chris Robinson | 2022-10-21 | 5 | -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 loop | Chris Robinson | 2022-10-18 | 1 | -10/+42 |
| | |||||
* | Increase sub-sample precision to 16 bits | Chris Robinson | 2022-10-16 | 1 | -1/+1 |
| | |||||
* | Don't pass null to fprintf | Chris Robinson | 2022-10-10 | 1 | -2/+2 |
| | |||||
* | Handle the delays specified in SOFA files | Chris Robinson | 2022-10-10 | 1 | -44/+55 |
| | |||||
* | Fix an ambisonic layout check in alffplay | Chris Robinson | 2022-09-24 | 1 | -1/+1 |
| | |||||
* | Move some comments to a more appropriate place | Chris Robinson | 2022-09-23 | 1 | -32/+32 |
| |