Chris Robinson
86ff35bf71
Increase the max pitch to 255
...
Note that this is the multiple above the device sample rate, rather than the
source property limit. It could theoretically be increased to 511 by testing
against UINT_MAX instead of INT_MAX, since the increment and positions are
using unsigned integers. I'm just being paranoid about overflows.
2015-09-26 11:18:30 -07:00
Chris Robinson
30d88cf547
Use the macros to allocate the wrapper backends
2015-09-24 15:54:32 -07:00
Chris Robinson
17e2b4b3a5
Remove unneeded clamping
2015-09-24 13:44:28 -07:00
Chris Robinson
d8e2308adb
Loop over the gain values only once
2015-09-24 12:36:02 -07:00
Chris Robinson
83659db996
Return the number of properties written
2015-09-24 10:45:34 -07:00
Chris Robinson
ef43370927
Use a local var instead of multiple double-dereferencing
2015-09-24 10:18:29 -07:00
Chris Robinson
64858e3e94
Fix B-Format HRTF decoding
2015-09-23 16:02:46 -07:00
Chris Robinson
4bdd58bc83
Use N3D scaling instead of FuMa
2015-09-23 15:03:53 -07:00
Chris Robinson
a774408753
Get rid of ALCdevice_GetLatency
2015-09-21 05:52:01 -07:00
Chris Robinson
5f5eebc4df
Allow the hrtf_tables option to be device-specific
2015-09-20 08:28:34 -07:00
Chris Robinson
46bbf95bae
Disable mmdevapi capture and update changelog
...
Unfortunately mmdevapi does not do channel remixing or resampling, even for
capture, so the device can only be opened in the mode it's configured for.
For now, fallback to dsound or winmm to get the conversion until we can do it
ourselves.
2015-09-18 03:19:16 -07:00
Chris Robinson
db0f29f6d8
Fix updating listener params when forcing updates
2015-09-18 00:48:43 -07:00
Chris Robinson
2f1bfb5945
Add missing enum values
...
Spotted by Xavier Bouchoux.
2015-09-17 04:01:46 -07:00
Chris Robinson
4570345534
Return the data file handle on Windows if it was opened
2015-09-16 18:20:28 -07:00
Chris Robinson
b348abf5c3
Rename F_2PI to F_TAU
2015-09-13 08:46:48 -07:00
Chris Robinson
2763f4096c
Update properties and clear wet buffers before mixing/processing
2015-09-13 06:51:55 -07:00
Chris Robinson
87f3babe2c
Append "on OpenAL Soft" to mmdevapi, dsound, and winmm device names
...
Would be nicer to have a more backend-agnostic method of doing this, Perhaps
even also only when the router is being used.
2015-09-10 22:15:40 -07:00
Chris Robinson
483352f32b
Set both BS2B parameters at once
2015-09-08 15:04:42 -07:00
Chris Robinson
d240077bc5
Explicitly convert to int in the aluF2I/S/B functions
2015-09-07 03:27:25 -07:00
Chris Robinson
5d8a1c11b5
Avoid setting an HRTF-compatible format when it's disabled
2015-09-05 14:33:21 -07:00
Chris Robinson
365a010732
Don't store the HRTF request mode in the device flags
2015-09-05 01:32:12 -07:00
Chris Robinson
804909e1d7
Set a proper HRTF status when non-stereo output is used
2015-09-05 00:42:44 -07:00
Chris Robinson
703f1fdec2
Specify the pa_channel_map directly instead of through a string
2015-09-04 23:59:24 -07:00
Chris Robinson
28a516e8a5
Change the hrtf config option to expect auto/true/false instead of a bool
2015-09-04 20:16:48 -07:00
Chris Robinson
0eb83fe462
Make option and block names case-sensitive
...
This is to avoid any issues with device names that can be case-sensitive, and
strcasecmp not working properly for non-ASCII-7 uppercase characters.
2015-09-04 16:09:09 -07:00
Chris Robinson
5f40daabc2
Reverse the device and block names for device-specific options
2015-09-04 15:47:48 -07:00
Chris Robinson
ce487d1e43
Use the correct device name for PulseAudio too
...
Like mmdevapi. duplicate device names will have a '#2 ' or such appended, so the
device's reported name may be incorrect.
2015-09-03 14:59:59 -07:00
Chris Robinson
23729c2083
Replace another vector loop with VECTOR_FIND_IF
2015-09-03 14:53:46 -07:00
Chris Robinson
87e4ec6620
Use the correct device name when opening a device by name
...
Duplicate device names will have a '#2 ' or such appended, so the device's
reported name may be incorrect.
2015-09-03 11:56:46 -07:00
Chris Robinson
70c63dd576
Allow '#' in config block names
...
Since some devices may have it appended.
2015-08-28 14:59:45 -07:00
Chris Robinson
e5fa4ee25d
Allow for device-specific config values
2015-08-28 14:10:39 -07:00
Chris Robinson
bbc16e2c15
Use ACN ordering for ambisonics coefficients arrays
...
Note that it still uses FuMa scalings internally. Coefficients loaded from
config files specify if they're FuMa (in both ordering and scaling) or N3D,
and will get reordered or rescaled as needed.
2015-08-28 10:58:30 -07:00
Chris Robinson
baf1bd5b54
Avoid temporary vector objects
2015-08-24 03:02:58 -07:00
Chris Robinson
c292b9e4ff
Revert "Fix B-Format rotation"
...
This reverts commit 7ffb9b3056ab280d5d9408fd023f3cfb370ed103.
It was behaving as appropriate before (orienting left did pan it left for the
listener), I was apparently just misinterpreting the matrix.
2015-08-24 00:19:47 -07:00
Chris Robinson
7ffb9b3056
Fix B-Format rotation
...
The rotation erroneously specified the orientation of the source relative to
the sound field, whereas it should be the orientation of the sound field *and*
source relative to the listener. So now when the source is oriented left, the
front of the sound field is to the left of the listener.
2015-08-23 22:01:29 -07:00
Chris Robinson
8559af5d48
Minor reformating
2015-08-22 07:23:43 -07:00
Chris Robinson
6f59ebab27
Don't explicitly store first-order coefficients
...
It seems a simple scaling on the coefficients will allow first-order content to
work with second- and third-order coefficients, although obviously not with any
improved locality. That may be something to look into for the future, but this
is good enough for now.
2015-08-18 07:44:17 -07:00
Chris Robinson
53f6590b17
Set the WAVEFORMATEX cbSize field for mmdevapi capture
2015-08-18 00:19:22 -07:00
Chris Robinson
d5ab883da2
Define MixHrtf directly instead of through a SUFFIX macro
2015-08-15 01:37:46 -07:00
Chris Robinson
f6e52debb5
Fix handling of PulseAudio devices that have the same description
2015-08-14 19:05:16 -07:00
Chris Robinson
c1146d27c6
Also recognize "DirectSound" and "MMSYSTEM" on Windows
2015-08-14 17:02:11 -07:00
Chris Robinson
a5aaa3c9aa
Recognize "DirectSound3D" as a device name on Windows
2015-08-13 21:18:39 -07:00
Chris Robinson
7d4e3688e1
Wait for the OpenSL buffer queue to empty when stopping
2015-08-13 16:01:31 -07:00
Chris Robinson
8fa4f276f8
Allow specifying ALC_DONT_CARE_SOFT for ALC_HRTF_SOFT
...
ALC_FALSE now indicates explicitly no HRTF mixing, while ALC_DONT_CARE_SOFT
is autodetect.
2015-07-06 12:37:21 -07:00
Chris Robinson
f58d985789
Change source radius behavior
...
For sources with a non-0 radius:
When distance <= radius, factor = distance/radius*0.5
When distance > radius, factor = 1 - asinf(radius/distance)/PI
Also, avoid using Position after calculating the localized direction and
distance.
2015-07-05 08:54:29 -07:00
Chris Robinson
4efe0d8696
Update a couple comments
2015-07-04 10:12:57 -07:00
Chris Robinson
d90dfc8d1f
Check for duplicate device names in the mmdevapi backend
2015-06-30 07:44:56 -07:00
Chris Robinson
c24f4f230f
Use the lockless ringbuffer for mmdevapi capture
...
The backend's capture funcs are already called while under a lock, so multiple
threads shouldn't be able to read from it at once.
2015-06-30 07:42:09 -07:00
Chris Robinson
e5964d6dc4
Double check the mmdevapi capture format
...
This isn't a real solution, but it should get IAudioClient_IsFormatSupported to
stop failing.
2015-06-07 13:05:07 -07:00
Chris Robinson
9f49ac0fda
Add a macro to simplify allocating and constructing an object
2015-05-18 16:39:44 -07:00