Chris Robinson
c9537abfb1
Allocate voice properties in clusters
2021-12-17 04:07:00 -08:00
Chris Robinson
21bdea776a
Set the PipeWire stream rate
...
When requesting a non-default rate, this may allow the hardware to run at the
requested rate.
2021-12-16 13:03:13 -08:00
Chris Robinson
edea2b2a02
Rename Voice::mNumChannels for clarity
2021-12-15 14:28:26 -08:00
Chris Robinson
a051909c35
Add an option to use Super Stereo in alffplay
2021-12-15 02:54:15 -08:00
Chris Robinson
54c4bea487
Add source properties for Super Stereo
...
When playing a stereo format, enabling Super Stereo causes the source to behave
as a B-Format source, with a variable width control.
2021-12-15 02:01:22 -08:00
Chris Robinson
b489705b25
Minor UHJ coefficient scaling precision improvement
2021-12-13 01:09:53 -08:00
Chris Robinson
953745d386
Make an inline function to check for 2D ambisonic formats
2021-12-12 15:53:53 -08:00
Chris Robinson
5e3fcb3a93
Avoid initializing the NFC filter for every voice channel
...
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.
2021-12-11 21:42:34 -08:00
Chris Robinson
01dd34f305
Add an internal Super Stereo format
...
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.
2021-12-11 17:50:24 -08:00
Chris Robinson
a75d35bbb0
Use a vector in BFormatDec instead of FlexArray
...
FlexArray would be better since it's not likely to use much memory for the
array, but the std::unique_ptr makes BFormatDec a non-standard layout, causing
GCC and Clang to complain.
2021-12-10 22:07:20 -08:00
Chris Robinson
c005d2c300
Remove unnecessary lines
2021-12-10 00:23:03 -08:00
Chris Robinson
a97dba6f41
Improve the 2-channel UHJ response
...
This attempts to correct for the differences needed for 2-channel UHJ's shelf
filters given the output shelf filters. It's far from ideal, but better than
nothing.
2021-12-09 22:00:35 -08:00
Chris Robinson
b72402d3e7
Add a function for Super Stereo conversions
...
a.k.a. Stereo Enhance. A common feature of UHJ decoders to take a plain
stereo signal and generate a B-Format signal with variable width control,
widening (or narrowing) the soundfield while maintaining a sharp central
image.
2021-12-09 21:19:36 -08:00
Chris Robinson
ff539242c6
GitHub CI still doesn't support libpipewire-0.3-dev
2021-12-08 19:06:39 -08:00
Chris Robinson
a8ea3cad22
Adjust the crossover frequency for HRTF ambisonic decoding
2021-12-08 18:17:16 -08:00
Chris Robinson
462a1d3ebd
Build with PipeWire with Linux CI
2021-12-08 18:16:19 -08:00
Chris Robinson
ed7075f6b5
Update changelog
2021-12-06 23:09:31 -08:00
Chris Robinson
bfaa28af18
Don't clamp the distance with distance attenuation disabled
2021-11-30 22:55:17 -08:00
Chris Robinson
a73b64ce3c
Slight update to the UHJ coefficients
...
The extended precision of the encoder's 0.6512*X term was guesswork, with no
real basis for it. Switch back to the original value until something better
actually comes up. Also updates the decoder to account for the change in the
encoder.
2021-11-28 05:39:35 -08:00
Chris Robinson
bd254c5426
Recognize PipeWire in alsoft-config
2021-11-26 03:05:05 -08:00
Chris Robinson
f1380d830a
Avoid passing spans unnecessarily
2021-11-25 20:29:50 -08:00
Chris Robinson
c5831c92f3
Don't assume the UhjDecoder::decode offset is 16-byte aligned
...
It's not, it's MaxResamplerEdge which is currently 24.
2021-11-25 20:22:12 -08:00
Chris Robinson
d5707b3184
Use a base for the UhjEncoder/Decoder common properties
2021-11-25 19:53:52 -08:00
Chris Robinson
08a4e8a6b2
Return true from alcReopenDeviceSOFT if the new device opened
2021-11-21 23:22:04 -08:00
Chris Robinson
3ef4bffaf9
Slightly improve logging on Windows
...
The characters won't display properly if the system codepage isn't UTF-8, but
at least it shouldn't cut the line off prematurely.
2021-11-21 21:21:46 -08:00
Chris Robinson
834800c817
Downgrade some ERRs to WARNs
2021-11-21 20:29:20 -08:00
Chris Robinson
0c99a6b316
Make the backend pointer part of ALCdevice instead of DeviceBase
2021-11-19 20:04:10 -08:00
Chris Robinson
6e2c1b8431
Consolidate some variable state
2021-11-17 19:08:22 -08:00
Chris Robinson
b43fd6dca7
Always lock the device state when querying device attributes
2021-11-16 16:44:58 -08:00
Chris Robinson
7062de0337
Handle SPA_CHOICE_None for sample rates from PipeWire
2021-11-14 12:47:06 -08:00
Chris Robinson
eac427dff7
Report unexpected types for the sample rate from PipeWire
2021-11-14 11:43:33 -08:00
Chris Robinson
bdc9d6955f
Workaround a GCC bug with noexcept(this->...)
2021-11-14 05:59:06 -08:00
Chris Robinson
cf85ffd22f
Support "enum" choices for sample rates with PipeWire
2021-11-14 05:58:39 -08:00
Chris Robinson
3b9c831c30
Update changelog
2021-11-13 09:30:42 -08:00
Chris Robinson
5eb93f6c74
Update alsoft-config
2021-11-11 22:40:10 -08:00
Chris Robinson
bbff1efa2a
Update some in-progress extension types
2021-11-10 01:21:49 -08:00
Chris Robinson
35348869a9
Disable MSVC warning 4127
...
"conditional expression is constant", which C++14 can't do anything about since
'if constexpr' was added in C++17. The checks are necessary since it's dealing
with a templatized type, or a compile-time non-macro constant for the target
system's endian order.
2021-11-08 21:16:33 -08:00
Chris Robinson
e3168c9112
Add an extension to request stereo UHJ output
2021-11-08 16:56:05 -08:00
Chris Robinson
ad3d82c3f4
Fix up some al::optional ops
2021-11-08 16:48:33 -08:00
Chris Robinson
c06abe2dfe
Make al::optional constexpr
2021-11-07 01:24:57 -08:00
Chris Robinson
b81fa0dc90
Don't trace unused metadata properties and node types
...
As useful as it may sometimes be to see what's being provided, at least under
kwin_wayland a not-insignificant number of video-related nodes and metadata
properties are sent through normal use of the system (most notably when
hovering over the taskbar to see window thumbnails).
2021-10-26 09:40:10 -07:00
Chris Robinson
4de789ba68
Don't change the requested format when it's usable with WASAPI
2021-10-25 06:37:48 -07:00
Chris Robinson
49a36334bd
Use a tri-state optional for the stereo output mode
2021-10-24 11:51:39 -07:00
Chris Robinson
096bed35fa
Pass a parameter to aluInitRenderer to specify UHJ output
2021-10-23 11:37:46 -07:00
Chris Robinson
837652624b
Remove an unnecessary noexcept
2021-10-23 08:14:30 -07:00
Chris Robinson
1a448b2e92
Fix a double-release
2021-10-23 07:57:17 -07:00
Chris Robinson
d0e5e138e2
Use a flag to indicate headphone-like output
2021-10-23 07:51:06 -07:00
Chris Robinson
0e93fc53f4
Don't reset the ambisonic layout and scale with stereo output
2021-10-23 05:48:47 -07:00
Chris Robinson
d5dc2828bf
Don't pass the whole decoder to InitDistanceComp
2021-10-23 03:57:49 -07:00
Chris Robinson
aa92c6c0a8
Fix the ambisonic scaling used by custom decoders
2021-10-23 03:24:51 -07:00