aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #177 from Raulshc/Pitch-shifterkcat2018-03-2110-10/+543
|\ | | | | EFX:Pitch shifter
| * EFX:Own size for pitch shifter buffersRaulshc2018-03-191-17/+18
| |
| * Alsoft-config: Add pitch shifter effectRaulshc2018-03-183-8/+28
| |
| * EFX:Pitch Shifter implementationRaulshc2018-03-187-2/+514
| | | | | | Add pitch shifter effect using standard phase vocoder, based on work of Stephan Bernsee. Only mono signal processing by now.
* | Update the multi-reverb example with improved transitionsChris Robinson2018-03-201-143/+236
| | | | | | | | | | | | | | | | This better calculates the environment coverage by correctly calculating the portal's extents, improves the panning direction when close to the portal, and applies attenuation based on contribution. Movement has changed to make the listener move back and forth between environments with a stationary source, rather than continually looping environments with a position-relative source.
* | 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.
* | Change the presets for the multireverb exampleChris Robinson2018-03-161-2/+2
|/
* 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-113-2/+12
|
* Comment and clarify some codeChris Robinson2018-03-111-2/+10
|
* Add methods to clean up althrd and altss dataChris Robinson2018-03-104-58/+53
|
* Rename the mmdevapi backend to wasapiChris Robinson2018-03-099-192/+206
|
* Add extern "C" to some headersChris Robinson2018-03-096-17/+57
|
* 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
|
* Use function-like macros to call filter and effect vtable methodsChris Robinson2018-03-084-33/+49
|
* 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
|
* Fix struct forward declaration typoChris Robinson2018-03-081-1/+1
|
* Fix adding to and removing from the active effect slotsChris Robinson2018-03-081-21/+35
| | | | | It wasn't properly removing all duplicates on insertion, and didn't remove the first effect slot when removing them.
* Properly limit the max number of effect slots to 2^31 - 1Chris Robinson2018-03-082-9/+3
|
* Merge pull request #175 from jhasse/sdl2-backendkcat2018-03-085-1/+266
|\ | | | | Add SDL2 backend for playback, fix #173
| * 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-075-1/+293
|/
* Don't check for space in the ringbuffer before trying to writeChris Robinson2018-03-035-19/+10
| | | | The write method already checks and returns how much it managed to fit in.
* Avoid some code duplicationChris Robinson2018-03-031-12/+8
|
* Add some missing locks to protect reading stateChris Robinson2018-03-032-0/+16
|
* Use a plain mutex for the property lockChris Robinson2018-03-036-95/+72
|
* Init more stuff in InitDeviceChris Robinson2018-03-031-18/+9
|
* Use atomic variables instead of volatileChris Robinson2018-03-023-51/+47
|
* 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.