aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
Commit message (Collapse)AuthorAgeFilesLines
* Clean up some code formatting in the pitch shifter sourceChris Robinson2018-03-211-494/+478
| | | | | Clean up excessive newlines and extra-long comments, move static inline definitions to their declarations.
* Merge pull request #177 from Raulshc/Pitch-shifterkcat2018-03-212-1/+498
|\ | | | | EFX:Pitch shifter
| * EFX:Own size for pitch shifter buffersRaulshc2018-03-191-17/+18
| |
| * EFX:Pitch Shifter implementationRaulshc2018-03-182-1/+497
| | | | | | Add pitch shifter effect using standard phase vocoder, based on work of Stephan Bernsee. Only mono signal processing by now.
* | Fix the reverb panning behavior to better fit the specChris Robinson2018-03-191-83/+38
|/ | | | | | Previously it would attenuate the response from direction opposite to the vector, whereas the property descriptions say it should simply move all reflections toward the given direction.
* Use a macro template to define similar functionsChris Robinson2018-03-151-78/+48
|
* Remove an extraneous +Chris Robinson2018-03-141-1/+1
|
* Remove an outdated commentChris Robinson2018-03-141-5/+0
|
* Release the PulseAudio mainloop lock soonerChris Robinson2018-03-141-10/+16
|
* Store the filter history in local variablesChris Robinson2018-03-142-28/+34
| | | | | Despite being marked as restrict (and const for src) to mark the pointers as being non-aliased, it seems the compiler optimizes better this way.
* Avoid using pa_stream_begin_write with PulseAudioChris Robinson2018-03-141-23/+9
| | | | | | | | | | | | | It seems to actually have a negative performance impact when the system is under load. Without having actual measurements for any potential benefits, simply go with the recommended (and previous fallback) method of allocating space for the write and passing the free method. Ideally some kind of ring buffer could be used, so rather than constantly allocating and freeing blocks of memory, it uses the same memory over again with the callback marking each one as reusable. Unfortunately the callback isn't given much information to work with, and the update size (minreq) can potentially change during playback, which complicates things.
* Move a loop into a functionChris Robinson2018-03-131-5/+7
|
* Apply a distance decay on the source send for the reverb's DecayLFRatioChris Robinson2018-03-111-2/+10
|
* Comment and clarify some codeChris Robinson2018-03-111-2/+10
|
* Add methods to clean up althrd and altss dataChris Robinson2018-03-101-0/+3
|
* Rename the mmdevapi backend to wasapiChris Robinson2018-03-094-175/+180
|
* Add extern "C" to some headersChris Robinson2018-03-095-0/+40
|
* Prefix SDL2 device names on WindowsChris Robinson2018-03-091-6/+31
|
* Request the device's sample type for SDL2Chris Robinson2018-03-091-1/+13
|
* Store the frame size for the SDL2 backendChris Robinson2018-03-081-6/+6
|
* Print the unsupported values from SDL2Chris Robinson2018-03-081-5/+2
|
* Init and quit the SDL2 audio subsystem with the factoryChris Robinson2018-03-081-26/+10
|
* Avoid deinitializing backends that never initializedChris Robinson2018-03-081-6/+12
|
* Also save the update size with SDL2Chris Robinson2018-03-081-8/+12
|
* Use the audio device lock for the SDL2 backendChris Robinson2018-03-081-4/+13
|
* Properly close the SDL2 audio deviceChris Robinson2018-03-081-4/+15
|
* Avoid calling SDL_GetNumAudioDevices multiple timesChris Robinson2018-03-081-3/+10
|
* Only calculate the modulation samples once for all 4 channelsChris Robinson2018-03-081-19/+25
|
* Simplify modulator effect index updatingChris Robinson2018-03-081-3/+2
|
* Rename UpdateContextSources for clarityChris Robinson2018-03-081-2/+2
|
* Properly limit the max number of effect slots to 2^31 - 1Chris Robinson2018-03-081-0/+2
|
* SDL2 backend: Reset device parametersJan Niklas Hasse2018-03-081-7/+20
|
* SDL2 backend: Allow changes to channels and formatJan Niklas Hasse2018-03-081-1/+22
|
* SDL2 backend: Allow frequency changesJan Niklas Hasse2018-03-081-2/+7
|
* Handle passing NULL to SDL_OpenAudioDevice as a special deviceJan Niklas Hasse2018-03-081-2/+8
| | | | https://discourse.libsdl.org/t/changing-audio-output-when-the-default-audio-playback-device-changes/22399/2
* SDL2 backend: Use callback instead of a timing loopJan Niklas Hasse2018-03-081-83/+11
| | | | The system clock and audio clock aren't necessarily synchronized.
* Add SDL2 backend for playback, fix #173Jan Niklas Hasse2018-03-073-0/+269
|
* Don't check for space in the ringbuffer before trying to writeChris Robinson2018-03-033-14/+7
| | | | The write method already checks and returns how much it managed to fit in.
* Use a plain mutex for the property lockChris Robinson2018-03-031-5/+7
|
* Init more stuff in InitDeviceChris Robinson2018-03-031-18/+9
|
* Use atomic variables instead of volatileChris Robinson2018-03-022-49/+45
|
* Ensure at least the specified ringbuffer size is writableChris Robinson2018-03-0210-51/+65
| | | | | | Previously, all but one of the specified size could be written (so for a size of n, only n-1 was guaranteed writable). All users pretty much compensated for this, but it makes more sense to fix it at the source.
* Add an option to limit the write size of the ringbufferChris Robinson2018-03-0111-36/+36
|
* Apply the limiter, distance comp, and others even with no output bufferChris Robinson2018-03-011-19/+20
|
* Avoid AL prefix on internal effect state factory typesChris Robinson2018-02-289-81/+81
| | | | Also avoid using the generic V/V0 macros for them
* Avoid using static inline in headersChris Robinson2018-02-251-0/+10
|
* Only send one buffer completed event per updateChris Robinson2018-02-251-5/+3
| | | | | The 'param' callback parameter indicates the number of buffers that were completed.
* Count all buffers in a list item for processed and queuedChris Robinson2018-02-251-1/+1
|
* Handle source state change eventsChris Robinson2018-02-241-3/+48
|
* Avoid multiple GetChannelIdxByName callsChris Robinson2018-02-211-18/+20
|