| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* [EAX] Fix effect GUID validation
Only NULL and REVERB was valid.
* [EAX] Fix default FX slot flags
EAX4 and EAX5 both sets to ENVIRONMENT.
* [EAX] Set default values for legacy FX slots in the initialization
* [EAX] Fix FX slot locking policy
Fail on attempt to load an effect or change a lock for EAX4 "set" call.
Unlock legacy FX slots on any EAX5 call.
* [EAX] Allow DEFER flag for "get" calls.
* [EAX] Make speaker configuration read-only
* [EAX] Initialize speaker configuration
* [EAX] Commit EAX source on a 3D source parameter call
Reference: EAX 4.0 Programmer's Guide
* [EAX] Commit EAX source on a 3D listener parameter call
Reference: EAX 4.0 Programmer's Guide
* [EAX] Commit source when it begins to play
Reference: EAX 4.0 Programmer's Guide
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
And disable it by default for non-Windows targets
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Make some functions into class member functions, and move related declarations
closer together.
|
| |
|
| |
|
|
|
|
|
| |
This is apparently needed to ensure RT threads get RT priority, separately from
requesting RT processing.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Using the 20-channel dodecahedron, seems to be good enough to handle 16-channel
third-order ambisonics.
|
|
|
|
| |
This only needs 14 virtual channels instead of 20.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Some devices can change it when starting, so it's useful to know what the
device configuration is when that happens.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
When requesting a non-default rate, this may allow the hardware to run at the
requested rate.
|
|
|
|
|
| |
When playing a stereo format, enabling Super Stereo causes the source to behave
as a B-Format source, with a variable width control.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
| |
|