Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge pull request #177 from Raulshc/Pitch-shifter | kcat | 2018-03-21 | 10 | -10/+543 |
|\ | | | | | EFX:Pitch shifter | ||||
| * | EFX:Own size for pitch shifter buffers | Raulshc | 2018-03-19 | 1 | -17/+18 |
| | | |||||
| * | Alsoft-config: Add pitch shifter effect | Raulshc | 2018-03-18 | 3 | -8/+28 |
| | | |||||
| * | EFX:Pitch Shifter implementation | Raulshc | 2018-03-18 | 7 | -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 transitions | Chris Robinson | 2018-03-20 | 1 | -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 spec | Chris Robinson | 2018-03-19 | 1 | -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 example | Chris Robinson | 2018-03-16 | 1 | -2/+2 |
|/ | |||||
* | Use a macro template to define similar functions | Chris Robinson | 2018-03-15 | 1 | -78/+48 |
| | |||||
* | Remove an extraneous + | Chris Robinson | 2018-03-14 | 1 | -1/+1 |
| | |||||
* | Remove an outdated comment | Chris Robinson | 2018-03-14 | 1 | -5/+0 |
| | |||||
* | Release the PulseAudio mainloop lock sooner | Chris Robinson | 2018-03-14 | 1 | -10/+16 |
| | |||||
* | Store the filter history in local variables | Chris Robinson | 2018-03-14 | 2 | -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 PulseAudio | Chris Robinson | 2018-03-14 | 1 | -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 function | Chris Robinson | 2018-03-13 | 1 | -5/+7 |
| | |||||
* | Apply a distance decay on the source send for the reverb's DecayLFRatio | Chris Robinson | 2018-03-11 | 3 | -2/+12 |
| | |||||
* | Comment and clarify some code | Chris Robinson | 2018-03-11 | 1 | -2/+10 |
| | |||||
* | Add methods to clean up althrd and altss data | Chris Robinson | 2018-03-10 | 4 | -58/+53 |
| | |||||
* | Rename the mmdevapi backend to wasapi | Chris Robinson | 2018-03-09 | 9 | -192/+206 |
| | |||||
* | Add extern "C" to some headers | Chris Robinson | 2018-03-09 | 6 | -17/+57 |
| | |||||
* | Prefix SDL2 device names on Windows | Chris Robinson | 2018-03-09 | 1 | -6/+31 |
| | |||||
* | Request the device's sample type for SDL2 | Chris Robinson | 2018-03-09 | 1 | -1/+13 |
| | |||||
* | Store the frame size for the SDL2 backend | Chris Robinson | 2018-03-08 | 1 | -6/+6 |
| | |||||
* | Print the unsupported values from SDL2 | Chris Robinson | 2018-03-08 | 1 | -5/+2 |
| | |||||
* | Init and quit the SDL2 audio subsystem with the factory | Chris Robinson | 2018-03-08 | 1 | -26/+10 |
| | |||||
* | Avoid deinitializing backends that never initialized | Chris Robinson | 2018-03-08 | 1 | -6/+12 |
| | |||||
* | Also save the update size with SDL2 | Chris Robinson | 2018-03-08 | 1 | -8/+12 |
| | |||||
* | Use the audio device lock for the SDL2 backend | Chris Robinson | 2018-03-08 | 1 | -4/+13 |
| | |||||
* | Properly close the SDL2 audio device | Chris Robinson | 2018-03-08 | 1 | -4/+15 |
| | |||||
* | Avoid calling SDL_GetNumAudioDevices multiple times | Chris Robinson | 2018-03-08 | 1 | -3/+10 |
| | |||||
* | Use function-like macros to call filter and effect vtable methods | Chris Robinson | 2018-03-08 | 4 | -33/+49 |
| | |||||
* | Only calculate the modulation samples once for all 4 channels | Chris Robinson | 2018-03-08 | 1 | -19/+25 |
| | |||||
* | Simplify modulator effect index updating | Chris Robinson | 2018-03-08 | 1 | -3/+2 |
| | |||||
* | Rename UpdateContextSources for clarity | Chris Robinson | 2018-03-08 | 1 | -2/+2 |
| | |||||
* | Fix struct forward declaration typo | Chris Robinson | 2018-03-08 | 1 | -1/+1 |
| | |||||
* | Fix adding to and removing from the active effect slots | Chris Robinson | 2018-03-08 | 1 | -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 - 1 | Chris Robinson | 2018-03-08 | 2 | -9/+3 |
| | |||||
* | Merge pull request #175 from jhasse/sdl2-backend | kcat | 2018-03-08 | 5 | -1/+266 |
|\ | | | | | Add SDL2 backend for playback, fix #173 | ||||
| * | SDL2 backend: Reset device parameters | Jan Niklas Hasse | 2018-03-08 | 1 | -7/+20 |
| | | |||||
| * | SDL2 backend: Allow changes to channels and format | Jan Niklas Hasse | 2018-03-08 | 1 | -1/+22 |
| | | |||||
| * | SDL2 backend: Allow frequency changes | Jan Niklas Hasse | 2018-03-08 | 1 | -2/+7 |
| | | |||||
| * | Handle passing NULL to SDL_OpenAudioDevice as a special device | Jan Niklas Hasse | 2018-03-08 | 1 | -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 loop | Jan Niklas Hasse | 2018-03-08 | 1 | -83/+11 |
| | | | | | | | | The system clock and audio clock aren't necessarily synchronized. | ||||
| * | Add SDL2 backend for playback, fix #173 | Jan Niklas Hasse | 2018-03-07 | 5 | -1/+293 |
|/ | |||||
* | Don't check for space in the ringbuffer before trying to write | Chris Robinson | 2018-03-03 | 5 | -19/+10 |
| | | | | The write method already checks and returns how much it managed to fit in. | ||||
* | Avoid some code duplication | Chris Robinson | 2018-03-03 | 1 | -12/+8 |
| | |||||
* | Add some missing locks to protect reading state | Chris Robinson | 2018-03-03 | 2 | -0/+16 |
| | |||||
* | Use a plain mutex for the property lock | Chris Robinson | 2018-03-03 | 6 | -95/+72 |
| | |||||
* | Init more stuff in InitDevice | Chris Robinson | 2018-03-03 | 1 | -18/+9 |
| | |||||
* | Use atomic variables instead of volatile | Chris Robinson | 2018-03-02 | 3 | -51/+47 |
| | |||||
* | Ensure at least the specified ringbuffer size is writable | Chris Robinson | 2018-03-02 | 10 | -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. |