Chris Robinson
5170e251f9
Use the correct wet filter history offset
2009-12-07 12:45:23 -08:00
Chris Robinson
4697e946d3
Internally store 32-bit float buffer data, and mix accordingly
2009-12-07 10:35:30 -08:00
Chris Robinson
8138446b8c
Restrict setting some wet path values to active sends only
2009-12-06 03:59:12 -08:00
Chris Robinson
b5270e0bb3
Use a channel-map to specify the output device channel order
2009-12-02 04:03:51 -08:00
Chris Robinson
d5889a941f
Clamp dry gain after cone attenuation is applied
2009-12-01 03:32:04 -08:00
Chris Robinson
98ce1d14c1
Update AL_EXTX_source_distance_model to require explicit enabling
...
The in-progress spec has been updated to reflect this
2009-11-27 20:05:21 -08:00
Chris Robinson
69f9ab88b9
Send multi-channel sources to auxiliary effect slots
...
They are downmixed to mono using a volume-preserving scalar, and passed
through a 1-pole low-pass filter (not chained)
2009-11-26 00:39:32 -08:00
Chris Robinson
658923175f
Update source parameters only when they need changing
2009-11-25 16:21:47 -08:00
Chris Robinson
877f4340ba
Base air absorption on distance attenuation, try 2
2009-11-24 21:19:11 -08:00
Chris Robinson
35a9ccb41f
Revert "Base air absorption on the distance attenuation"
...
This reverts commit c7c2f9385f7bfde9962eb7743770679cca07181e.
Fundamentally wrong. The -6dB rolloff is every doubling of the distance, and
the (scaled) -0.05dB rolloff is supposed to be every additional unit.
2009-11-24 01:39:34 -08:00
Chris Robinson
c7c2f9385f
Base air absorption on the distance attenuation
2009-11-23 16:25:37 -08:00
Chris Robinson
cfb30fe975
Use a 4x4 matrix to transform coordinates
2009-11-23 04:13:51 -08:00
Chris Robinson
2d1b378ef2
Transform all relevant vectors for converting world-space to listener-space
2009-11-22 22:36:20 -08:00
Chris Robinson
fe37f1968d
Better approximate the wet attenuation model for reverb
2009-11-19 11:06:41 -08:00
Chris Robinson
5f3c07ca3b
Apply the reverb room rolloff factor for EAX reverb too
2009-11-19 10:29:10 -08:00
Chris Robinson
ff8e09495d
Move aluCart2LUTpos to alu.h
2009-11-19 09:24:35 -08:00
Chris Robinson
fb258a7416
Properly lock the device when setting it disconnected
2009-11-01 09:29:20 -08:00
Chris Robinson
a3fcd67a82
Remove some unneeded buffer fields, make padding a constant amount
2009-10-25 08:31:28 -07:00
Chris Robinson
fe3a43e2d4
Remove the format and frequency from the source, get them manually
2009-10-25 06:26:19 -07:00
Chris Robinson
e095047b02
Small fixups
2009-10-25 06:16:21 -07:00
Chris Robinson
31a106344f
Calculate more store only once per loop
2009-10-25 05:34:47 -07:00
Chris Robinson
b0a82aa420
Store the buffer format and frequency in the source when updated
2009-10-25 05:03:22 -07:00
Chris Robinson
c003d6032d
Retreive and store source params once per mix update
2009-10-25 04:39:36 -07:00
Chris Robinson
1665595138
Remove unneeded bufferlistitem properties
2009-10-25 02:59:31 -07:00
Chris Robinson
921e7ac3e9
Store the buffer handle directly in the source and buffer queue list
2009-10-22 09:31:26 -07:00
Chris Robinson
8501fce38b
Remove unused source fields
2009-10-21 15:40:09 -07:00
Chris Robinson
55d7984582
Set the calculated source parameters directly
2009-10-21 15:31:21 -07:00
Chris Robinson
8dbac9c0bd
Store the calculated source parameters in the source struct
2009-10-21 14:25:54 -07:00
Chris Robinson
47b8510b0c
Don't assume 16-bit samples
2009-10-21 13:50:53 -07:00
Chris Robinson
4e399b41cd
Calculate source filter coefficients with the source parameters
2009-10-21 13:08:50 -07:00
Chris Robinson
bdec1e037f
Remove unnecessary variable
2009-10-21 12:48:04 -07:00
Chris Robinson
75b65ab2a2
Remove the Frequency field from the context
2009-10-20 13:47:55 -07:00
Chris Robinson
eca8825ab4
Explicitly suspend the context being processed for mixing
2009-10-20 13:38:02 -07:00
Chris Robinson
93361118b7
Store a device's contexts in a dynamic array
2009-10-20 11:54:04 -07:00
Chris Robinson
50f963f6c6
Don't try to clamp the listener-to-source velocity for local sources
...
Local sources will always have a 0 VLS value
2009-10-20 11:03:16 -07:00
Chris Robinson
67c3e47ed4
Avoid handling NaN when scaling float samples for output
2009-10-20 09:48:09 -07:00
Chris Robinson
790aa68621
Reduce indentation for CalcSourceParams
2009-10-19 13:25:40 -07:00
Chris Robinson
c7c4cf221a
Make the dry buffer part of the device
2009-10-09 01:06:33 -07:00
Chris Robinson
2a77e840cc
Fix type casts for 7.1 output
2009-09-30 16:02:49 -07:00
Chris Robinson
af8e7ab984
Check the source start position in alSourcePlayv instead of the mixer
2009-09-24 12:24:10 -07:00
Chris Robinson
83734aff0e
Slightly improve the multi-channel mixing loops
2009-09-24 08:52:51 -07:00
Chris Robinson
8ea8b49464
Avoid locking a NULL context when a device is disconnected
2009-09-21 23:31:04 -07:00
Chris Robinson
9f037e8980
Pass the device to aluMixData
2009-09-15 19:30:27 -07:00
Chris Robinson
12f81bcbb9
Move the stereo-to-binaural filter to the device
2009-09-15 19:06:47 -07:00
Chris Robinson
6636131d3b
Pass the frame count to aluMixData
2009-09-15 18:19:00 -07:00
Chris Robinson
eeea9631ce
Split the source mixing loop into a separate function
...
Helps reduce the function size and indentation levels
2009-09-15 17:56:31 -07:00
Chris Robinson
7976de05a5
Add base support for ALC_EXT_disconnect
...
Individual backends need to be updated to handle disconnection events
2009-08-26 19:15:17 -07:00
Chris Robinson
dc26261065
Support 32-bit float output
2009-08-15 13:20:35 -07:00
Chris Robinson
9bea67fb1c
Use a function to convert float to unsigned byte
2009-08-15 11:33:38 -07:00
Chris Robinson
0ac9e57d28
Store the requested mono/stereo source count and sends in the device
...
Although the properties are set as context attributes, they are queried from
the device. If multiple contexts per device are ever supported, it would not
be straight forward about where to read the values from. This way, the
attributes can be treated as device-specific attributes that are updated when
a new context is created.
2009-07-06 03:09:01 -07:00