Chris Robinson
b10085cc63
Slightly increase the ambient gain volume
2014-11-15 04:11:22 -08:00
Chris Robinson
9681c5a2bb
Interpolate directional reverb gains with ambient based on vector length
2014-11-15 00:21:26 -08:00
Chris Robinson
55a13456d4
Add a method to convert channel enums to a label string
2014-11-15 00:19:56 -08:00
Chris Robinson
a095645970
Don't bother with LFE in the channel setup, set the values explicitly
2014-11-12 19:26:53 -08:00
Chris Robinson
e036cca1c9
Add the ability to use custom output channel coefficients
...
I'm not sure exactly how I want to do this yet, but this is a good starting
point.
2014-11-10 17:53:42 -08:00
Chris Robinson
1c4055419e
Don't use the device lock/unlock wrappers needlessly
2014-11-08 18:04:01 -08:00
Chris Robinson
a50ba603ab
Remove the unused wide-stereo option
2014-11-08 06:36:45 -08:00
Chris Robinson
3904a3f033
Allow selecting the 5.1-rear channel config from the config file
2014-11-08 05:53:17 -08:00
Chris Robinson
74994e9d11
Remove the long-deprecated 'format' config option
2014-11-08 05:41:55 -08:00
Chris Robinson
b34a374fa7
Only enable the BS2B filter with stereo output
2014-11-07 16:11:47 -08:00
Chris Robinson
35eacf058e
Go to the next voice when a source is stopped
2014-11-07 16:05:06 -08:00
Chris Robinson
1a326c758b
Rename a couple parameters
2014-11-07 16:00:07 -08:00
Chris Robinson
3f7cb8392e
Pas the output device channel count to ALeffectState::process
2014-11-07 03:43:33 -08:00
Chris Robinson
713e9dd4cc
Rename speakers to channels, and remove an old incorrect comment
2014-11-07 03:12:32 -08:00
Chris Robinson
4c3f27193f
Use a separate macro for the max output channel count
2014-11-07 02:18:24 -08:00
Chris Robinson
0051a96376
Fix 5.1 surround sound
...
Apparently, 5.1 surround sound is supposed to use the "side" channels, not the
back channels, and we've been wrong this whole time. That means the "5.1 Side"
is actually the correct 5.1 setup, and using the back channels is anomalous.
Additionally, this means the 5.1 buffer format should also use the the side
channels instead of the back channels.
A final note: the 5.1 mixing coefficients are changed so both use the original
5.1 surround sound set (with the surround channels at +/-110 degrees). So the
only difference now between 5.1 "side" and 5.1 "back" is the channel labels.
2014-11-07 00:54:16 -08:00
Chris Robinson
ad247fe5cd
Initialize a couple variables mingw complains about
2014-11-06 23:05:21 -08:00
Chris Robinson
4126ccf744
Use SZFMT for printing size_t
2014-11-06 23:02:39 -08:00
Chris Robinson
61a56ce120
Play zero-distance/zero-radius sources from the front
2014-11-05 04:48:48 -08:00
Chris Robinson
6aed34cfb5
Don't use FrontLeft and FrontRight to reference the dry buffer
2014-11-05 04:11:18 -08:00
Chris Robinson
59a2858239
Don't increment the output buffer in the Write_ methods
2014-11-05 04:07:06 -08:00
Chris Robinson
da765ec53b
Remove the channel name from ChannelConfig
2014-11-05 03:46:00 -08:00
Chris Robinson
e39117467c
Fix panning of multi-channel sources
2014-11-05 03:06:32 -08:00
Chris Robinson
c834c3fae5
Set gains using the device channel index
2014-11-05 02:54:11 -08:00
Chris Robinson
e5016f814a
Add LFE to the speaker arrays
2014-11-04 04:33:35 -08:00
Chris Robinson
6083a684d1
Use a method to set omni-directional channel gains
2014-11-04 03:33:35 -08:00
Chris Robinson
d8cfdb3f34
Use COUNTOF to set the number of speakers
2014-11-04 03:00:15 -08:00
Chris Robinson
deba996769
Add some missing breaks
2014-11-02 02:30:45 -08:00
Chris Robinson
857d68b0ce
Minor update for ambisonics coefficients
...
Small tweaks to balance the left and right speakers, and change
unreasonably small values to 0.
2014-11-02 00:58:48 -07:00
Chris Robinson
9d82ab9d1f
Use the copy resampler only when there's no sub-sample offset
2014-11-02 00:27:26 -07:00
Chris Robinson
c82f39decd
Avoid the ALCdevice_Lock/Unlock wrapper in some places
2014-11-01 15:55:18 -07:00
Chris Robinson
28c1ec830e
Support AL_EXT_MULAW_BFORMAT
2014-10-31 22:52:30 -07:00
Chris Robinson
3d2853274d
Support B-Format source rotation with AL_ORIENTATION
2014-10-31 22:43:13 -07:00
Chris Robinson
336aba6f1f
Rename the source's Orientation to Direction
2014-10-31 17:24:46 -07:00
Chris Robinson
ac51c9cce6
Add preliminary AL_EXT_BFORMAT support
...
Currently missing the AL_ORIENTATION source property. Gain stepping also does
not work.
2014-10-31 17:18:45 -07:00
Chris Robinson
1c0596c233
Check the absolute gain value for silence
...
Future B-Format support will be using negative gains, which still need to be
applied.
2014-10-31 16:55:19 -07:00
Chris Robinson
0e09e779f9
Use %zu (C99) for printing size_t
2014-10-30 12:27:59 -07:00
Chris Robinson
87dcf65013
Use the minimum of the two string lengths for comparison
2014-10-13 07:04:36 -07:00
Chris Robinson
84582ceb03
Use more appropriate size types
2014-10-13 07:00:43 -07:00
Chris Robinson
f05a2b86cd
Don't attempt to match a channel input to output
...
I don't like this, but it's currently necessary. The problem is that the
ambisonics-based panning does not maintain consistent energy output, which
causes sounds mapped directly to an output channel to be louder compared to
when being panned. The inconcistent energy output is partly by design, as it's
trying to render a full 3D sound field and at least attempts to correct for
imbalanced speaker layouts.
2014-10-12 12:39:27 -07:00
Chris Robinson
4320a1483b
Make alcSuspendContext and alcProcessContext batch updates
...
This behavior better matches Creative's hardware drivers and Rapture3D's OpenAL
driver. A compatibility environment variable is provided to restore the old
no-op behavior for any app that behaves badly from this change (set
__ALSOFT_SUSPEND_CONTEXT to "ignore").
If too many apps have a problem with this, the default behavior may need to be
changed to ignore, with the env var providing an option to defer/batch instead.
2014-10-12 09:17:13 -07:00
Chris Robinson
a77387b549
Avoid taking the square-root of the ambient gain
...
Although it is more correct for preserving the apparent volume, the ambisonics-
based panning does not work on the same power scale, making it louder by
comparison.
2014-10-11 09:35:32 -07:00
Chris Robinson
79163b0755
Fix stereo device configuration
2014-10-11 04:07:33 -07:00
Chris Robinson
70b23ab77f
Add a helper to search for a channel index by name
2014-10-02 21:19:34 -07:00
Chris Robinson
79fb86d8f7
Store default speaker configurations in a struct
2014-10-02 20:25:30 -07:00
Chris Robinson
95ba18cf4e
Make ComputeAngleGains use ComputeDirectionalGains
2014-10-02 18:05:42 -07:00
Chris Robinson
918c773a59
Use helpers to set the gain step values
2014-10-02 00:56:29 -07:00
Chris Robinson
3aa63e3e9b
Use VECTOR_FIND_IF instead of manual loops
2014-09-30 22:42:07 -07:00
Chris Robinson
2d89d33dd1
Add a cast for MSVC
2014-09-30 21:50:29 -07:00
Chris Robinson
af7330de88
Copy the null terminator from the string instead of appending it
2014-09-30 21:49:29 -07:00