Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Make the source's buffer queue a singly-linked list | Chris Robinson | 2016-01-31 | 1 | -30/+27 |
| | |||||
* | Lock the source queue for writing when updating the playback offset | Chris Robinson | 2015-10-24 | 1 | -8/+8 |
| | |||||
* | Fix usage of modf | Chris Robinson | 2015-10-24 | 1 | -2/+2 |
| | |||||
* | Include the fractional part with the source sample/sec offset | Chris Robinson | 2015-10-16 | 1 | -17/+18 |
| | |||||
* | Store the source's previous samples with the voice | Chris Robinson | 2015-10-15 | 1 | -0/+12 |
| | | | | | | This helps avoid different results when looping is toggled within a couple samples of the loop point, or when a processed buffer is removed while the source is only a couple samples into the next buffer. | ||||
* | Properly limit the calculated source offset components | Chris Robinson | 2015-10-14 | 1 | -4/+8 |
| | |||||
* | Shut GCC up | Chris Robinson | 2015-10-13 | 1 | -1/+1 |
| | |||||
* | Properly apply fractional source offsets when a user offset is set | Chris Robinson | 2015-10-13 | 1 | -22/+22 |
| | |||||
* | Move the resampler stuff to mixer.c where it's used | Chris Robinson | 2015-10-01 | 1 | -15/+0 |
| | |||||
* | Implement a 6-point sinc-lanczos filter | Chris Robinson | 2015-09-29 | 1 | -0/+2 |
| | |||||
* | Replace the cubic resampler with a 4-point sinc/lanczos filter | Chris Robinson | 2015-09-27 | 1 | -2/+2 |
| | |||||
* | Don't keep selecting the mixer to use | Chris Robinson | 2015-09-27 | 1 | -2/+0 |
| | |||||
* | Use a single enum list for source properties | Chris Robinson | 2015-09-22 | 1 | -346/+416 |
| | |||||
* | Handle up to 6 values with alSourcedvSOFT and alGetSourcefv | Chris Robinson | 2015-09-21 | 1 | -4/+4 |
| | |||||
* | Get rid of ALCdevice_GetLatency | Chris Robinson | 2015-09-21 | 1 | -2/+6 |
| | |||||
* | Move HRTF params and state closer together | Chris Robinson | 2015-02-09 | 1 | -3/+3 |
| | |||||
* | Use aluVector in some more places | Chris Robinson | 2014-12-16 | 1 | -27/+15 |
| | |||||
* | Partially revert "Use a different method for HRTF mixing" | Chris Robinson | 2014-11-23 | 1 | -0/+11 |
| | | | | | | | | | | | | The sound localization with virtual channel mixing was just too poor, so while it's more costly to do per-source HRTF mixing, it's unavoidable if you want good localization. This is only partially reverted because having the virtual channel is still beneficial, particularly with B-Format rendering and effect mixing which otherwise skip HRTF processing. As before, the number of virtual channels can potentially be customized, specifying more or less channels depending on the system's needs. | ||||
* | Use a different method for HRTF mixing | Chris Robinson | 2014-11-22 | 1 | -13/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | This new method mixes sources normally into a 14-channel buffer with the channels placed all around the listener. HRTF is then applied to the channels given their positions and written to a 2-channel buffer, which gets written out to the device. This method has the benefit that HRTF processing becomes more scalable. The costly HRTF filters are applied to the 14-channel buffer after the mix is done, turning it into a post-process with a fixed overhead. Mixing sources is done with normal non-HRTF methods, so increasing the number of playing sources only incurs normal mixing costs. Another benefit is that it improves B-Format playback since the soundfield gets mixed into speakers covering all three dimensions, which then get filtered based on their locations. The main downside to this is that the spatial resolution of the HRTF dataset does not play a big role anymore. However, the hope is that with ambisonics- based panning, the perceptual position of panned sounds will still be good. It is also an option to increase the number of virtual channels for systems that can handle it, or maybe even decrease it for weaker systems. | ||||
* | Support B-Format source rotation with AL_ORIENTATION | Chris Robinson | 2014-10-31 | 1 | -7/+99 |
| | |||||
* | Rename the source's Orientation to Direction | Chris Robinson | 2014-10-31 | 1 | -9/+9 |
| | |||||
* | Rename activesource to voice | Chris Robinson | 2014-08-21 | 1 | -34/+33 |
| | |||||
* | Use an array of objects for active sources instead of pointers | Chris Robinson | 2014-08-21 | 1 | -43/+32 |
| | |||||
* | Use a NULL source for inactive activesources | Chris Robinson | 2014-08-21 | 1 | -25/+29 |
| | | | | Also only access the activesource's source field once per update. | ||||
* | Update COPYING to the latest ↵ | François Cami | 2014-08-18 | 1 | -2/+2 |
| | | | | https://www.gnu.org/licenses/old-licenses/lgpl-2.0.txt to fix the FSF' address Fix the FSF' address in the source | ||||
* | Fix some lock ordering to avoid potential deadlocks | Chris Robinson | 2014-08-03 | 1 | -8/+8 |
| | |||||
* | Use an ATOMIC_INIT macro instead of ATOMIC_LOAD_UNSAFE | Chris Robinson | 2014-08-03 | 1 | -3/+3 |
| | |||||
* | Make the source's buffer queue head and current queue item atomic | Chris Robinson | 2014-07-31 | 1 | -55/+67 |
| | |||||
* | Always set the active source's update method | Chris Robinson | 2014-07-26 | 1 | -5/+7 |
| | | | | | | | If the source is stopped, changes its buffer, then played again quickly, the source will never be removed from the active source list causing the update method to remain as it was. If the buffer was changed between mono and multi- channel, this causes it to use the wrong method. | ||||
* | Explicitly pass the address of atomics and parameters that can be modified | Chris Robinson | 2014-07-26 | 1 | -27/+27 |
| | |||||
* | Add macros for generic atomic functionality | Chris Robinson | 2014-07-22 | 1 | -27/+27 |
| | |||||
* | Add a source radius property that determines the directionality of a sound | Chris Robinson | 2014-07-11 | 1 | -0/+2 |
| | | | | | | | | | At 0 distance from the listener, the sound is omni-directional. As the source and listener become 'radius' units apart, the sound becomes more directional. With HRTF, an omni-directional sound is handled using 0-delay, pass-through filter coefficients, which is blended with the real delay and coefficients as needed to become more directional. | ||||
* | Avoid aliasing an int array | Chris Robinson | 2014-07-05 | 1 | -4/+4 |
| | |||||
* | Add an option to get the length of a source's full queue | Chris Robinson | 2014-05-25 | 1 | -0/+95 |
| | | | | | This simplifies keeping track how much a source has buffered in its queue, which reduces a bunch of unnecessary book keeping the app would have to do. | ||||
* | Use the first non-0-length buffer when starting a source | Chris Robinson | 2014-05-22 | 1 | -1/+1 |
| | |||||
* | Apply high-pass source filters as needed | Chris Robinson | 2014-05-17 | 1 | -0/+12 |
| | |||||
* | Add a couple asserts to ensure a proper buffer | Chris Robinson | 2014-05-14 | 1 | -0/+3 |
| | | | | | | It should not be possible for a playing or paused source to not have a valid buffer, but Clang's static analyzer doesn't know that. Hopefully an assert will convince it. | ||||
* | Make RefCount a non-integer type | Chris Robinson | 2014-05-14 | 1 | -3/+3 |
| | | | | | It should only be accessed through the appropriate functions to ensure proper atomicity. | ||||
* | Add HF Reference as a filter property | Chris Robinson | 2014-05-14 | 1 | -0/+4 |
| | |||||
* | Make LOWPASSFREQREF a float value | Chris Robinson | 2014-05-11 | 1 | -2/+2 |
| | |||||
* | Store the filter reference frequency in the source | Chris Robinson | 2014-05-11 | 1 | -0/+2 |
| | |||||
* | Avoid locking the mixer when unqueueing buffers | Chris Robinson | 2014-05-11 | 1 | -4/+16 |
| | |||||
* | Avoid accessing the source's buffer queue head multiple times | Chris Robinson | 2014-05-11 | 1 | -17/+16 |
| | |||||
* | Use a struct to store the source's direct gain/gainhf properties | Chris Robinson | 2014-05-11 | 1 | -6/+6 |
| | |||||
* | Avoid locking the mixer while queueing buffers onto a source. | Chris Robinson | 2014-05-10 | 1 | -24/+34 |
| | |||||
* | Add a missing pointer init | Chris Robinson | 2014-05-10 | 1 | -3/+3 |
| | |||||
* | Explicit init the source queue and current_buffer pointers | Chris Robinson | 2014-05-10 | 1 | -0/+3 |
| | |||||
* | Use a RWLock to help protect the source's buffer queue | Chris Robinson | 2014-05-10 | 1 | -35/+56 |
| | | | | | In some instances this allows to to remove the device/mixer lock, or reduce how long it's held. | ||||
* | Don't explicitly store the BuffersInQueue | Chris Robinson | 2014-05-10 | 1 | -9/+14 |
| | |||||
* | Store the current buffer queue item, rather than played buffer count | Chris Robinson | 2014-05-10 | 1 | -77/+63 |
| |