aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
Commit message (Collapse)AuthorAgeFilesLines
* Handle a missing default WASAPI device IDChris Robinson2019-02-201-1/+1
| | | | Backported fix from d1a86075 on master.
* Workaround lack of roundf with early MSVCChris Robinson2018-11-021-0/+12
|
* Use HUGE_VALF instead of INFINITYChris Robinson2018-11-021-1/+2
| | | | Older MSVC lacks INFINITY, and we define a HUGE_VALF fallback when needed.
* Specify the correct array size for castingChris Robinson2018-11-021-2/+2
|
* Add a comment about waiting to kill the event threadChris Robinson2018-10-071-0/+5
|
* Use a 24-bit dither depth limitChris Robinson2018-10-031-1/+1
|
* Don't limit output for ALC_DONT_CARE_SOFT and float samplesChris Robinson2018-10-031-7/+25
|
* Don't try to get the JNIEnv on AndroidChris Robinson2018-10-023-82/+7
| | | | | It's currently not used. More stuff is needed anyway which may need a different approach.
* Add back an inadvertently removed staticChris Robinson2018-10-021-1/+1
|
* Use < instead of != for some loop checksChris Robinson2018-10-011-2/+2
|
* Don't scale the reverb fade counter so muchChris Robinson2018-09-301-5/+6
|
* Ensure BUFFERSIZE is a power of 2Chris Robinson2018-09-301-2/+4
|
* Make the Compressor struct opaqueChris Robinson2018-09-303-73/+71
|
* Fix some length rangesChris Robinson2018-09-291-2/+8
|
* Improve a couple loopsChris Robinson2018-09-291-7/+15
| | | | | | Avoid masking the index with each iteration, and instead do up to when the mask would apply. This allows for better optimizations, in particular fewer instructions and better chances for vectorization.
* Don't use a ringbuffer design for the limiter's side chainChris Robinson2018-09-292-39/+37
| | | | | | Rather than continuously wrapping when used, each update uses it from the front and copies the tail to the front at the end. This allows for more effficient accesses in loops.
* Add some assumes for the limiterChris Robinson2018-09-291-0/+17
|
* Simplify a lower-bound clampChris Robinson2018-09-281-2/+1
|
* Constify a couple more variablesChris Robinson2018-09-281-2/+2
|
* Include the limiter's lookAhead delay in the device latencyChris Robinson2018-09-254-6/+22
|
* Don't hardcode the limiter thresholdChris Robinson2018-09-251-8/+23
| | | | It's now calculated from the output sample type and dither depth.
* Update the output limiter/compressorChris Robinson2018-09-254-168/+431
| | | | | | | | | | This provides better characteristics for an amplitude limiter. In particular, it utilizes the peak amplitude instead of the RMS, and the used parameters basically guarantee no output samples exceed the given threshold... almost, due to floating-point errors as the threshold is converted from dB to log-e for the envelope, then is negated and converted to linear amplitude to apply to the signal. It's quite possible for some rounding errors to creep in and not perfectly saturate the result.
* Only compare the reverb params that induce a need for fadingChris Robinson2018-09-231-23/+41
| | | | | | | The offsets and coefficients are controlled by a relatively small set of input parameters, just with different base constants or different calculations. This lead to numerous redundant checks since if one value didn't change, others that use the same inputs wouldn't have either.
* Clear reverb gain coefficients when doing a device updateChris Robinson2018-09-231-0/+49
|
* Rename ALreverbState to ReverbStateChris Robinson2018-09-231-23/+23
|
* Improve the gain stepping difference checkChris Robinson2018-09-223-12/+15
| | | | | Given the more stable stepping now in use, check that the total difference is enough for perceptible transition, instead of the step itself.
* Adjust comment spacingChris Robinson2018-09-211-1/+1
|
* Use an internal event to more timely release old effect statesChris Robinson2018-09-211-5/+33
|
* Remove an unnecessary mutexChris Robinson2018-09-201-2/+0
|
* Stop the event thread when releasing the contextChris Robinson2018-09-201-6/+6
| | | | To ensure no user callback gets called after alcDestroyContext.
* Put user events in a union structureChris Robinson2018-09-203-23/+20
|
* Always start the event thread with the contextChris Robinson2018-09-201-9/+11
|
* Remove another duplicate functionChris Robinson2018-09-1914-40/+35
|
* Combine nearly-duplicate structuresChris Robinson2018-09-192-8/+8
|
* Remove a couple duplicate functionsChris Robinson2018-09-192-28/+3
|
* Add macros for commonly used square rootsChris Robinson2018-09-193-19/+16
|
* Use ALsizei for the source resample positionChris Robinson2018-09-185-8/+5
|
* Properly queue buffers for OpenSL captureChris Robinson2018-09-171-32/+9
|
* Fix some potential race conditions with OpenSLChris Robinson2018-09-171-42/+62
| | | | | | | | | For playback, increment the ring buffer's write pointer before queueing audio, to handle cases where the callback is invoked, advancing the read pointer, before the write pointer is advanced. For capture, limit the number of re-queued chunks to the number of fully read chunks.
* Handle the bsinc C resampler like the othersChris Robinson2018-09-174-48/+37
|
* Fix buffer queue mixing logicChris Robinson2018-09-161-11/+13
| | | | | | In particular, the source sample position was reduced by the size of the next buffer list item when one is completed, rather than the size of the one it just completed.
* The last reverb loop update doesn't need an aligned count.Chris Robinson2018-09-111-4/+7
|
* Ensure the max reverb update size is a multiple of 4Chris Robinson2018-09-111-2/+4
| | | | | | It's not an issue for the final mix, but if one loop has an unaligned count, the next loop will have unaligned input and output buffer targets which can crash the SSE mixers.
* Separate the delay line feeding from readingChris Robinson2018-09-101-2/+4
| | | | | Since it feeds a different line than it reads, the feeding could overwrite what's subsequently read.
* Avoid a couple line count assumptionsChris Robinson2018-09-101-2/+2
|
* Combine identical loops into a separate functionChris Robinson2018-09-101-46/+21
|
* Handle the early reflection delay separate from late refeedChris Robinson2018-09-101-57/+40
|
* Some suggested changes for iOSChris Robinson2018-09-071-3/+11
|
* PATH_MAX not MAX_PATHChris Robinson2018-09-071-1/+1
|
* Load .alsoftrc from the app bundle root on macOSChris Robinson2018-09-071-0/+23
| | | | | Not sure what priority this should have. Currently it loads after system-level configs, and before user-level configs.