Chris Robinson
d648486bcd
Generalize GetChannelIdxByName
2016-03-10 14:29:44 -08:00
Chris Robinson
da5f75615b
Allocate enough reverb panning gains
2016-03-10 01:45:30 -08:00
Chris Robinson
a457157516
Organize the dry buffer properties into a struct
2016-03-09 23:43:57 -08:00
Chris Robinson
3e2672ec9f
Track the virtual and real output buffers ecplicitly
2016-03-09 22:57:38 -08:00
Chris Robinson
4e3fdf9f5d
Fix reverb with UHJ encoding
2016-03-03 01:41:42 -08:00
Chris Robinson
ac91083ceb
Use 2-channel UHJ for stereo output
2016-02-26 16:09:06 -08:00
Chris Robinson
ee9917fe96
Remove a dead assignment
2016-02-16 02:42:43 -08:00
Chris Robinson
6105d36fd7
Add special HRTF handling for reverb
...
This is pretty hacky. Since HRTF normally renders to B-Format with two "extra"
channels for the real stereo output, the panning interpolates between a panned
reverb channel on B-Format, and two non-panned reverb channels on stereo
output, given the panning vector length.
2016-02-06 23:00:07 -08:00
Chris Robinson
fd54f4f03d
Only apply the +3dB reverb gain boost to the ambient response.
2016-02-06 18:05:27 -08:00
Chris Robinson
3ee42d9826
Avoid an extra sample of delay in the reverb modulator
2016-02-05 15:39:31 -08:00
Chris Robinson
c533060875
Remove an unnecessary variable and move duplicate code to a common spot
2016-02-05 14:21:02 -08:00
Chris Robinson
127c7e3b8c
Don't explicitly check for LFE
...
It's going to be set to 0 gain anyway
2016-02-05 11:06:10 -08:00
Chris Robinson
3cac4dff95
Boost the direct-pan reverb to better match the expected volume
...
Hopefully. Would be nice to have a reference implementation for this style of
reverb to compare with.
2016-02-05 09:55:08 -08:00
Chris Robinson
301d4c158b
Update a couple outdated comments
2016-02-05 09:42:43 -08:00
Chris Robinson
538f2839d1
Apply the early and late reverb gains with the panning gains
2016-02-05 08:43:51 -08:00
Chris Robinson
8627a92ea8
Better organize the reverb code into separate labeled sections
2016-02-05 08:14:41 -08:00
Chris Robinson
b8e74c88cf
Separate early and late reverb output for standard reverb too
2016-02-05 07:46:33 -08:00
Chris Robinson
305ef3215d
Modify how the four output reverb points are calculated
...
For HRTF and B-Format output, the points no longer move but instead scale based
on the desired panning direction.
2016-02-05 07:34:31 -08:00
Chris Robinson
d315ca4139
Try to map reverb outputs directly to output channels
...
HRTF and B-Format output still need to use virtual panning directions, but the
reverb works better when it outputs directly to an output channel. Ambient and
directional panning is used to properly mask and attenuate each output channel.
Note that currently the "direct panning" output is quieter than it should be.
Work is underway to attenuate the early reflections and late reverb better.
2016-02-01 22:24:40 -08:00
Chris Robinson
b4a9b40d68
Apply the main reverb gain with the panning
2016-02-01 01:45:16 -08:00
Chris Robinson
46cae36ef9
Fix an out of date comment
2016-01-31 09:39:07 -08:00
Chris Robinson
7f908d90af
Rename ComputeBFormatGains to ComputeFirstOrderGains
2016-01-31 09:00:23 -08:00
Chris Robinson
7111322526
Make the modulator effect multichannel
2016-01-29 23:44:43 -08:00
Chris Robinson
a046a951e9
Use separate modulator functions only for the waveform
2016-01-29 23:28:38 -08:00
Chris Robinson
3ac786c6af
Convert the equalizer effect to multichannel
2016-01-29 07:26:19 -08:00
Chris Robinson
210b4c1fcd
Make the compressor effect multichannel
2016-01-28 02:49:40 -08:00
Chris Robinson
2fa3ae85c9
Pass a pointer to the input samples array for effect processing
2016-01-27 08:16:47 -08:00
Chris Robinson
f547ef6d39
Separate calculating ambisonic coefficients from the panning gains
2016-01-25 06:11:51 -08:00
Chris Robinson
94816d0073
Reorder filterstate properties
2016-01-23 03:38:15 -08:00
Chris Robinson
bce20d1f6b
Don't overwrite the output with the dedicated effect
2015-12-12 13:53:17 -08:00
Chris Robinson
91258cc192
Simplify reverb panning rotations
2015-11-07 06:15:29 -08:00
Chris Robinson
8c6d891694
Pan each early/late delay line separately
2015-11-05 23:46:39 -08:00
Chris Robinson
46e72a48ad
Remove an unneeded memset that was overwriting memory
2015-11-05 19:45:04 -08:00
Chris Robinson
c57f571920
Pass in the Q parameter for setting the filter parameters
...
Also better handle the peaking filter gain.
2015-11-01 05:41:06 -08:00
Chris Robinson
0644ebbaa2
Use modff to split the modulation delay components
2015-10-31 01:35:01 -07:00
Chris Robinson
c3d58947c3
Mix reverb to output in the inner loop
2015-10-29 03:23:50 -07:00
Chris Robinson
79ad54f0c3
Include the echo's attenuation of the late reverb in the late reverb gain
2015-10-29 02:10:07 -07:00
Chris Robinson
62f1df77d7
Do up to 256 samples per reverb inner loop iteration
2015-10-29 01:40:23 -07:00
Chris Robinson
9ce2b8f9a7
Always update all reverb properties
...
The EAX-only effect properties will be set to compatible defaults when standard
reverb is set, and the EAX-only effects will be skipped during sample
processing.
2015-10-28 02:36:48 -07:00
Chris Robinson
8f8bf1f605
Do multiple samples at once in each reverb component
2015-10-28 01:57:51 -07:00
Chris Robinson
b348abf5c3
Rename F_2PI to F_TAU
2015-09-13 08:46:48 -07:00
Chris Robinson
c3a36d9b19
Do up to 256 samples at a time with multi-step loops
2014-12-18 09:23:55 -08:00
Chris Robinson
1db8392344
Improve ambient gain calculations
2014-11-25 22:24:29 -08:00
Chris Robinson
0a3e11b75e
Fix reverb panning direction
2014-11-25 17:55:17 -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
3f7cb8392e
Pas the output device channel count to ALeffectState::process
2014-11-07 03:43:33 -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
c834c3fae5
Set gains using the device channel index
2014-11-05 02:54:11 -08:00
Chris Robinson
6083a684d1
Use a method to set omni-directional channel gains
2014-11-04 03:33:35 -08: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