aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Don't use the dual-band upsampler for basic ambisonic decodingChris Robinson2019-01-063-25/+49
|
* Apply an all-pass on the existing output when upsampling ambisonicsChris Robinson2019-01-063-11/+35
|
* Revert back to using a band-splitter to increase the HF responseChris Robinson2019-01-063-82/+59
| | | | | | Unfortunately the shelf filter causes issues due to the shelf gain magnitude creating a varying phase offset. The splitter also creates phase offsets, but it's consistent regardless of gain.
* Make the band-splitter and splitter-allpass filters templatedChris Robinson2019-01-062-34/+47
| | | | With float and double explicit instantiations
* Replace macros with constexpr inline functionsChris Robinson2019-01-0617-48/+66
|
* Remove an unnecessary undefChris Robinson2019-01-061-1/+0
|
* Use double-precision biquads for the HRTF shelf filtersChris Robinson2019-01-061-7/+7
|
* Make BiquadFilter a templated classChris Robinson2019-01-062-36/+51
| | | | With explicit instantiations for float and double
* Use a shelf filter for the HRTF B-Format decoder HF scaleChris Robinson2019-01-061-37/+50
|
* Pass the normalized crossover frequency to the reset methodChris Robinson2019-01-053-5/+4
|
* Remove unnecessary structs and buffersChris Robinson2019-01-052-23/+18
|
* Simplify MixParams and AmbiUpsamplerChris Robinson2019-01-056-216/+78
| | | | Since the dry buffer is always an ambisonic target now
* Use BFormatDec for custom and built-in ambisonic decodingChris Robinson2019-01-053-104/+178
|
* Enable simplified upsampling for AmbiUpsamplerChris Robinson2019-01-052-32/+66
|
* Simplify the BFormatDec upsamplerChris Robinson2019-01-042-74/+35
| | | | | | | Since the only difference applied is a scalar on the high-frequency response, a B-Format-to-B-Format transcode can be accomplished with a high-shelf filter. A similar thing can be done with AmbiUpsampler, but only when outputing to periphonic B-Format.
* Make sure the OpenSL capture buffer queue has the correct sizeChris Robinson2019-01-031-68/+71
| | | | | | | The ring buffer size may round up and have more queueable elements than OpenSL was allocated with, leading to errors when queueing those extra elements. Now OpenSL allocates the same number of elements that can be written to the ring buffer.
* Fix the ringbuffer write limitChris Robinson2019-01-032-22/+15
| | | | | | | Previously it just limited the returned write space, irrespective of how much had already been written. The buffer could still be filled up by doing multiple writes. Now the size is limited by adjusting the read pointer by the real vs limited difference when calculating the writable space.
* Use DeviceRef and ContextRef when creating a new device and contextChris Robinson2019-01-011-29/+22
|
* Rename ALCdevice_struct and ALCcontext_structChris Robinson2019-01-014-20/+18
| | | | | | | | | | | A (possibly contentious?) change in the public headers. Those names were never part of any specification, and I don't know why the struct names differed from the actual type name. But with C++, which takes the original struct declaration as the original name, it was affecting the type's internal symbols. This shouldn't affect user code since ALCdevice_struct and ALCcontext_struct were never part of the spec. If issues arise from this change, it should be reported.
* Use standard unique_lock and lock_guard for the backend lockChris Robinson2019-01-013-55/+34
|
* Add and use a make_unique functionChris Robinson2019-01-016-15/+21
|
* Avoid unnecessary extra buffers for filter chainsChris Robinson2019-01-013-44/+46
|
* Don't make BiquadFilter's src and dst restrictChris Robinson2019-01-012-11/+10
| | | | | There's no technical reason they can't be the same since IIR filters can't be auto-vectorized anyway.
* Handle all input channels in MixDirectHrtfChris Robinson2018-12-314-36/+39
|
* Add a missing includeChris Robinson2018-12-311-0/+1
|
* Remove some C-isms from makehrtfChris Robinson2018-12-311-467/+260
| | | | | Remove unnecessary typedefs, use C++11 stamndard types and values, avoid explicit allocations.
* Compile makehrtf as C++Chris Robinson2018-12-313-9/+9
|
* Pass a reference to an array instead of a pointerChris Robinson2018-12-311-1/+1
|
* Further improve HRTF methods to avoid masking in the inner loopsChris Robinson2018-12-314-100/+163
|
* Use an atomic bool on things that only take true or falseChris Robinson2018-12-3011-36/+36
|
* Rename BackendLock to StateLockChris Robinson2018-12-3013-79/+38
|
* Don't make the backend's lock/unlock methods noexceptChris Robinson2018-12-294-20/+14
|
* Get rid of ALCdevice_Lock/UnlockChris Robinson2018-12-293-29/+21
|
* Clean up a member nameChris Robinson2018-12-292-10/+10
|
* Use member functions for the sample and channel convertersChris Robinson2018-12-294-66/+55
|
* Add missing includes for mem_fnChris Robinson2018-12-2911-0/+11
|
* Don't bother with an explicit Loopback backend typeChris Robinson2018-12-293-11/+6
|
* Return a unique_ptr for the backendChris Robinson2018-12-2938-68/+68
|
* Make the backend type an enum classChris Robinson2018-12-2936-140/+135
|
* Get CoreAudio capture samples in one callChris Robinson2018-12-281-22/+21
|
* Convert the backends to use proper inheritenceChris Robinson2018-12-2840-2856/+1903
|
* Use static_cast instead of reinterpret_cast where possibleChris Robinson2018-12-284-21/+21
|
* Finish turning ancillary backend methods into member functionsChris Robinson2018-12-282-305/+301
|
* Turn even more methods into member functionsChris Robinson2018-12-285-271/+278
|
* Turn some more methods into member functionsChris Robinson2018-12-281-93/+118
|
* Add a method to prefix logged function namesChris Robinson2018-12-282-15/+9
|
* Make more methods into member functionsChris Robinson2018-12-273-351/+316
|
* Turn more methods into member functionsChris Robinson2018-12-273-167/+169
|
* Turn more methods into member functionsChris Robinson2018-12-273-85/+94
|
* Make some ancillary methods into member functionsChris Robinson2018-12-272-117/+131
|