aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
Commit message (Collapse)AuthorAgeFilesLines
* Move a warning check earlierChris Robinson2014-11-221-8/+8
|
* Use a different method for HRTF mixingChris Robinson2014-11-2212-517/+163
| | | | | | | | | | | | | | | | | | | | | | | This new method mixes sources normally into a 14-channel buffer with the channels placed all around the listener. HRTF is then applied to the channels given their positions and written to a 2-channel buffer, which gets written out to the device. This method has the benefit that HRTF processing becomes more scalable. The costly HRTF filters are applied to the 14-channel buffer after the mix is done, turning it into a post-process with a fixed overhead. Mixing sources is done with normal non-HRTF methods, so increasing the number of playing sources only incurs normal mixing costs. Another benefit is that it improves B-Format playback since the soundfield gets mixed into speakers covering all three dimensions, which then get filtered based on their locations. The main downside to this is that the spatial resolution of the HRTF dataset does not play a big role anymore. However, the hope is that with ambisonics- based panning, the perceptual position of panned sounds will still be good. It is also an option to increase the number of virtual channels for systems that can handle it, or maybe even decrease it for weaker systems.
* Balance the left and right channels for quad outputChris Robinson2014-11-211-2/+2
|
* Reformat a couple linesChris Robinson2014-11-211-10/+8
|
* Initialize panning after setting up HRTFChris Robinson2014-11-211-5/+5
|
* Allocate the DryBuffer dynamicallyChris Robinson2014-11-212-1/+15
|
* Only warn when no data file could be openedChris Robinson2014-11-191-5/+2
|
* Align UpdateSize for Neon, tooChris Robinson2014-11-171-1/+1
|
* Don't force UpdateSize to a multiple of 4 after buffer metrics were setChris Robinson2014-11-171-2/+0
|
* Always get the pulseaudio sink info on device resetChris Robinson2014-11-171-16/+14
|
* Mark a function as constChris Robinson2014-11-151-1/+1
|
* Remove the unused angle and elevation from the device channel configChris Robinson2014-11-151-52/+33
|
* Slightly increase the ambient gain volumeChris Robinson2014-11-151-1/+8
|
* Interpolate directional reverb gains with ambient based on vector lengthChris Robinson2014-11-151-4/+23
|
* Add a method to convert channel enums to a label stringChris Robinson2014-11-151-62/+64
|
* Don't bother with LFE in the channel setup, set the values explicitlyChris Robinson2014-11-121-90/+75
|
* Add the ability to use custom output channel coefficientsChris Robinson2014-11-101-0/+186
| | | | | I'm not sure exactly how I want to do this yet, but this is a good starting point.
* Don't use the device lock/unlock wrappers needlesslyChris Robinson2014-11-081-4/+4
|
* Remove the unused wide-stereo optionChris Robinson2014-11-081-4/+0
|
* Allow selecting the 5.1-rear channel config from the config fileChris Robinson2014-11-081-0/+1
|
* Remove the long-deprecated 'format' config optionChris Robinson2014-11-081-49/+0
|
* Only enable the BS2B filter with stereo outputChris Robinson2014-11-071-1/+2
|
* Go to the next voice when a source is stoppedChris Robinson2014-11-071-1/+1
|
* Rename a couple parametersChris Robinson2014-11-071-3/+3
|
* Pas the output device channel count to ALeffectState::processChris Robinson2014-11-0712-50/+47
|
* Rename speakers to channels, and remove an old incorrect commentChris Robinson2014-11-073-25/+25
|
* Use a separate macro for the max output channel countChris Robinson2014-11-0714-47/+47
|
* Fix 5.1 surround soundChris Robinson2014-11-0710-108/+122
| | | | | | | | | | | | | 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.
* Initialize a couple variables mingw complains aboutChris Robinson2014-11-061-2/+2
|
* Use SZFMT for printing size_tChris Robinson2014-11-061-4/+4
|
* Play zero-distance/zero-radius sources from the frontChris Robinson2014-11-051-4/+4
|
* Don't use FrontLeft and FrontRight to reference the dry bufferChris Robinson2014-11-051-4/+4
|
* Don't increment the output buffer in the Write_ methodsChris Robinson2014-11-051-13/+17
|
* Remove the channel name from ChannelConfigChris Robinson2014-11-051-46/+50
|
* Fix panning of multi-channel sourcesChris Robinson2014-11-051-1/+1
|
* Set gains using the device channel indexChris Robinson2014-11-053-40/+45
|
* Add LFE to the speaker arraysChris Robinson2014-11-041-8/+12
|
* Use a method to set omni-directional channel gainsChris Robinson2014-11-048-22/+26
|
* Use COUNTOF to set the number of speakersChris Robinson2014-11-041-7/+7
|
* Add some missing breaksChris Robinson2014-11-021-0/+2
|
* Minor update for ambisonics coefficientsChris Robinson2014-11-021-11/+11
| | | | | Small tweaks to balance the left and right speakers, and change unreasonably small values to 0.
* Use the copy resampler only when there's no sub-sample offsetChris Robinson2014-11-021-7/+6
|
* Avoid the ALCdevice_Lock/Unlock wrapper in some placesChris Robinson2014-11-011-2/+3
|
* Support AL_EXT_MULAW_BFORMATChris Robinson2014-10-311-1/+3
|
* Support B-Format source rotation with AL_ORIENTATIONChris Robinson2014-10-312-4/+47
|
* Rename the source's Orientation to DirectionChris Robinson2014-10-311-3/+3
|
* Add preliminary AL_EXT_BFORMAT supportChris Robinson2014-10-314-39/+106
| | | | | Currently missing the AL_ORIENTATION source property. Gain stepping also does not work.
* Check the absolute gain value for silenceChris Robinson2014-10-313-3/+3
| | | | | Future B-Format support will be using negative gains, which still need to be applied.
* Use %zu (C99) for printing size_tChris Robinson2014-10-301-4/+4
|
* Use the minimum of the two string lengths for comparisonChris Robinson2014-10-131-1/+1
|