Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Rename Sqrt1_2 for consistency | Chris Robinson | 2022-02-01 | 1 | -5/+5 |
| | |||||
* | [EAX] Add primary extension name for EAX v2.0 (#653) | Boris I. Bendovsky | 2022-02-01 | 1 | -2/+6 |
| | |||||
* | Move ALSOFT_EAX definition to config.h | Chris Robinson | 2022-01-30 | 4 | -28/+24 |
| | | | | And disable it by default for non-Windows targets | ||||
* | Add EAX extensions (EAX 2.0-5.0, X-RAM) (#632) | Boris I. Bendovsky | 2022-01-30 | 4 | -0/+1666 |
| | | | | | | | | | | | | | | | * Add EAX extensions (EAX 2.0-5.0, X-RAM) * Comment out C++17 leftovers * Remove everything related to patching * Update alsoftrc.sample * Rewrite integration * Fix GCC compilation under Linux * Always reset EAX effect properties when loading it into FX slot | ||||
* | Remove math_defs.h | Chris Robinson | 2022-01-27 | 2 | -4/+9 |
| | |||||
* | Get rid of MathDefs | Chris Robinson | 2022-01-27 | 10 | -39/+38 |
| | |||||
* | Start and use a standard-like numbers header | Chris Robinson | 2022-01-27 | 2 | -11/+12 |
| | |||||
* | Add some common wrapper methods to ThreadMainloop | Chris Robinson | 2022-01-26 | 1 | -42/+46 |
| | |||||
* | Default the PipeWire lock's operator= instead of using the base | Chris Robinson | 2022-01-26 | 1 | -1/+1 |
| | |||||
* | Handle 5.1 using rear channels with PulseAudio and PipeWire | Chris Robinson | 2022-01-25 | 2 | -105/+60 |
| | |||||
* | Move some definitions to where they're used | Chris Robinson | 2022-01-24 | 1 | -2/+2 |
| | |||||
* | Avoid a messy while loop to remove from a vector | Chris Robinson | 2022-01-22 | 1 | -11/+8 |
| | |||||
* | Restructure the PipeWire backend code a bit | Chris Robinson | 2022-01-22 | 1 | -219/+235 |
| | | | | | Make some functions into class member functions, and move related declarations closer together. | ||||
* | Avoid holding a pw_proxy, hold the type it represents | Chris Robinson | 2022-01-22 | 1 | -36/+70 |
| | |||||
* | Handle duplex devices with PipeWire | Chris Robinson | 2022-01-22 | 1 | -22/+43 |
| | |||||
* | Load the PipeWire real-time configuration | Chris Robinson | 2022-01-17 | 1 | -18/+57 |
| | | | | | This is apparently needed to ensure RT threads get RT priority, separately from requesting RT processing. | ||||
* | Add an ambi-format option for ACN ordering and FuMa scaling | Chris Robinson | 2022-01-12 | 1 | -0/+15 |
| | |||||
* | Use a different output matrix for late reverb | Chris Robinson | 2022-01-11 | 1 | -14/+22 |
| | | | | | | | | | | This is a slightly reoriented tetrahedron, with responses on the front-left and front-right, along with upper-back and lower-back. This is a alternative matrix suggested for converting the A-Format late reverb lines back to B-Format. Also alter the matrix scaling to be less destructive. x0.5 is just reducing the floating-point exponent by 1, whereas the previous values would be more likely to introduce rounding errors just from scaling. | ||||
* | Add a third-order ambisonic decoder for HRTF | Chris Robinson | 2022-01-05 | 1 | -2/+59 |
| | | | | | Using the 20-channel dodecahedron, seems to be good enough to handle 16-channel third-order ambisonics. | ||||
* | Update the HRTF second-order ambisonic decoder | Chris Robinson | 2022-01-04 | 1 | -42/+27 |
| | | | | This only needs 14 virtual channels instead of 20. | ||||
* | Avoid a static-sized char array on the stack | Chris Robinson | 2021-12-31 | 1 | -16/+22 |
| | |||||
* | Avoid some unnecessary copying | Chris Robinson | 2021-12-31 | 1 | -10/+9 |
| | |||||
* | Some more restructuring of the PipeWire backend | Chris Robinson | 2021-12-30 | 1 | -73/+58 |
| | |||||
* | Set the node rate for the pipewire capture stream too | Chris Robinson | 2021-12-29 | 1 | -0/+1 |
| | |||||
* | Move some constexpr variables to where they're used | Chris Robinson | 2021-12-28 | 1 | -50/+47 |
| | |||||
* | C++-ize the PipeWire backend some more | Chris Robinson | 2021-12-28 | 1 | -61/+94 |
| | | | | | | | | | Use unique_ptrs for a few more types to avoid explicit free calls. Move ThreadMainloop::wait to the unique_lock wrapper that's holding the lock. Since the mainloop acts as both a lock and condition_variable, passing the lock to the wait method makes no sense. Also have it optionally take a predicate functor to dictate when to stop waiting. | ||||
* | Trace the device format after starting playback | Chris Robinson | 2021-12-27 | 1 | -0/+7 |
| | | | | | Some devices can change it when starting, so it's useful to know what the device configuration is when that happens. | ||||
* | Increase the priority of the PipeWire backend | Chris Robinson | 2021-12-25 | 1 | -6/+6 |
| | |||||
* | Check for audio devices when initializing PipeWire | Chris Robinson | 2021-12-25 | 1 | -3/+64 |
| | | | | | | | | | | | This isn't great since it can fail when PipeWire is handling audio but no devices are available at initialization, causing the Pulseaudio or ALSA backend to be selected instead. Future versions of PipeWire are expected to have a better way to detect if it's handling audio, but for now this is better than nothing. A config option is available for users to have the PipeWire backend be usable even with no devices at initialization, just in case. | ||||
* | Use a bitset instead of a plain uint for flags | Chris Robinson | 2021-12-23 | 1 | -5/+5 |
| | |||||
* | Don't do direct channels with UHJ output | Chris Robinson | 2021-12-21 | 2 | -21/+17 |
| | | | | | | | | | | Directly mixing a non-UHJ stereo signal into a UHJ stereo signal results in a non-UHJ stereo signal. Such a mix can't be properly decoded anymore. An option can probably be added for users that intend to listen to UHJ output undecoded and let a stereo sound come through as-is on their speakers, but it probably shouldn't be the default for cases where the output may be decoded back. | ||||
* | Work around a MinGW thread_local bug | Chris Robinson | 2021-12-20 | 3 | -7/+29 |
| | | | | | | | | | | MinGW-w64 generates bad code when accessing extern thread_local objects. Wrapper functions are used to ensure it only accesses them from the same place they're defined. This unfortunately adds a bit of overhead for what should be a relatively simple thing. These functions are inlined for non-MinGW targets, avoiding the overhead on non-affected targets. | ||||
* | Move some more context functions to the proper source | Chris Robinson | 2021-12-17 | 1 | -76/+0 |
| | |||||
* | Move the effects base and effectslot to core | Chris Robinson | 2021-12-17 | 19 | -331/+19 |
| | |||||
* | Move some ContextBase function definitions to the right place | Chris Robinson | 2021-12-17 | 1 | -64/+0 |
| | |||||
* | Remove an unnecessary parameter | Chris Robinson | 2021-12-17 | 1 | -14/+10 |
| | |||||
* | Allocate voice properties in clusters | Chris Robinson | 2021-12-17 | 2 | -23/+27 |
| | |||||
* | Set the PipeWire stream rate | Chris Robinson | 2021-12-16 | 1 | -0/+1 |
| | | | | | When requesting a non-default rate, this may allow the hardware to run at the requested rate. | ||||
* | Add source properties for Super Stereo | Chris Robinson | 2021-12-15 | 3 | -0/+12 |
| | | | | | When playing a stereo format, enabling Super Stereo causes the source to behave as a B-Format source, with a variable width control. | ||||
* | Make an inline function to check for 2D ambisonic formats | Chris Robinson | 2021-12-12 | 2 | -8/+4 |
| | |||||
* | Avoid initializing the NFC filter for every voice channel | Chris Robinson | 2021-12-11 | 2 | -0/+5 |
| | | | | | | It can be initialized once with the device's speaker distance since it won't change in between resets, then copied into the voice where it can be adjusted as needed. | ||||
* | Add an internal Super Stereo format | Chris Robinson | 2021-12-11 | 2 | -7/+8 |
| | | | | | | | It's not available as an AL buffer format (yet) since I'm not sure how to expose it. Internally it seems fine as a separate channel configuration, but because OpenAL combines the channel configuration and sample type, a flag may work better there. | ||||
* | Adjust the crossover frequency for HRTF ambisonic decoding | Chris Robinson | 2021-12-08 | 1 | -0/+13 |
| | |||||
* | Don't clamp the distance with distance attenuation disabled | Chris Robinson | 2021-11-30 | 1 | -1/+0 |
| | |||||
* | Avoid passing spans unnecessarily | Chris Robinson | 2021-11-25 | 1 | -2/+2 |
| | |||||
* | Return true from alcReopenDeviceSOFT if the new device opened | Chris Robinson | 2021-11-21 | 1 | -4/+29 |
| | |||||
* | Downgrade some ERRs to WARNs | Chris Robinson | 2021-11-21 | 1 | -2/+2 |
| | |||||
* | Make the backend pointer part of ALCdevice instead of DeviceBase | Chris Robinson | 2021-11-19 | 4 | -17/+16 |
| | |||||
* | Consolidate some variable state | Chris Robinson | 2021-11-17 | 2 | -52/+47 |
| | |||||
* | Always lock the device state when querying device attributes | Chris Robinson | 2021-11-16 | 1 | -32/+10 |
| |