Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Apply the initial decay and air absorption after gain clamping | Chris Robinson | 2018-03-29 | 1 | -42/+42 |
| | |||||
* | Pass the azimuth and elevation to CalcPanningAndFilters | Chris Robinson | 2018-03-29 | 1 | -42/+32 |
| | |||||
* | Check all buffers to update a source with | Chris Robinson | 2018-03-28 | 1 | -2/+5 |
| | |||||
* | Condense an if check | Chris Robinson | 2018-03-26 | 1 | -3/+2 |
| | |||||
* | Clear mixing target parameters before setting them | Chris Robinson | 2018-03-25 | 1 | -70/+23 |
| | |||||
* | Annotate the B-Format rotation/conversion matrix | Chris Robinson | 2018-03-25 | 1 | -7/+11 |
| | |||||
* | Rename ALfilterState/Type to BiquadState/Type | Chris Robinson | 2018-03-23 | 1 | -16/+16 |
| | |||||
* | Move mixer sources into a sub-directory | Chris Robinson | 2018-03-22 | 1 | -1/+1 |
| | |||||
* | Apply a distance decay on the source send for the reverb's DecayLFRatio | Chris Robinson | 2018-03-11 | 1 | -2/+10 |
| | |||||
* | Comment and clarify some code | Chris Robinson | 2018-03-11 | 1 | -2/+10 |
| | |||||
* | Rename UpdateContextSources for clarity | Chris Robinson | 2018-03-08 | 1 | -2/+2 |
| | |||||
* | Don't check for space in the ringbuffer before trying to write | Chris Robinson | 2018-03-03 | 1 | -7/+4 |
| | | | | The write method already checks and returns how much it managed to fit in. | ||||
* | Use atomic variables instead of volatile | Chris Robinson | 2018-03-02 | 1 | -2/+2 |
| | |||||
* | Apply the limiter, distance comp, and others even with no output buffer | Chris Robinson | 2018-03-01 | 1 | -19/+20 |
| | |||||
* | Handle source state change events | Chris Robinson | 2018-02-24 | 1 | -3/+48 |
| | |||||
* | Combine multiple functions called sequentially | Chris Robinson | 2018-02-11 | 1 | -21/+9 |
| | |||||
* | Don't asynchronously modify the source on disconnect | Chris Robinson | 2018-02-11 | 1 | -9/+1 |
| | |||||
* | Use a function pointer for applying the dry mix post-process | Chris Robinson | 2018-02-10 | 1 | -68/+97 |
| | |||||
* | Make the Connected state atomic | Chris Robinson | 2018-02-04 | 1 | -1/+2 |
| | | | | Also don't send the Disconnected event more than once. | ||||
* | Provide more descriptive messages to disconnection events | Chris Robinson | 2018-02-03 | 1 | -13/+30 |
| | |||||
* | Add a disconnected event type | Chris Robinson | 2018-02-03 | 1 | -0/+17 |
| | |||||
* | Send buffer completed events when enabled | Chris Robinson | 2018-02-01 | 1 | -1/+1 |
| | |||||
* | Use a voice flag to indicate it being static | Chris Robinson | 2018-01-16 | 1 | -1/+1 |
| | |||||
* | Add min/max/clamp functions for size_t | Chris Robinson | 2018-01-16 | 1 | -0/+4 |
| | |||||
* | Avoid unnecessarily using type aliases | Chris Robinson | 2018-01-14 | 1 | -4/+5 |
| | |||||
* | Remove the SAFE_CONST macro | Chris Robinson | 2018-01-14 | 1 | -10/+9 |
| | | | | | Seems compilers are now allowing a pointer-to-type-array to implicitly convert to pointer-to-const-type-array. | ||||
* | Move the FPU mode declarations to a separate header | Chris Robinson | 2018-01-11 | 1 | -0/+1 |
| | | | | Also don't use inheritance with FPUCtl. | ||||
* | Move the CPU capability flags to a separate header | Chris Robinson | 2018-01-11 | 1 | -0/+1 |
| | |||||
* | Move the compressor/limiter declarations to their own header | Chris Robinson | 2018-01-11 | 1 | -0/+1 |
| | |||||
* | Avoid using macros to access anonymous structures | Chris Robinson | 2018-01-11 | 1 | -17/+17 |
| | |||||
* | Don't return whether the bsinc filter cuts or not | Chris Robinson | 2018-01-10 | 1 | -22/+8 |
| | |||||
* | Rename the device's temp buffer storage to be more generic | Chris Robinson | 2018-01-09 | 1 | -2/+1 |
| | |||||
* | Use a separate function to get the cubic value | Chris Robinson | 2018-01-07 | 1 | -0/+1 |
| | |||||
* | Remove the sinc4 table | Chris Robinson | 2018-01-07 | 1 | -5/+0 |
| | |||||
* | Replace the sinc4 resampler with cubic | Chris Robinson | 2018-01-07 | 1 | -2/+0 |
| | | | | | | | Turns out the C version of the cubic resampler is just slightly faster than even the SSE3 version of the FIR4 resampler. This is likely due to not using a 64KB random-access lookup table along with unaligned loads, both offseting the gains from SSE. | ||||
* | Allow storing multiple buffers in a ALbufferlistitem | Chris Robinson | 2017-12-15 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | This will be to allow buffer layering, multiple buffers of the same format and sample rate that are mixed together prior to resampling, filtering, and panning. This will allow composing sounds from individual components that can be swapped around on different invocations (e.g. layer SoundA and SoundB on one instance and SoundA and SoundC on a different instance for a slightly different sound, then just SoundA for a third instance, and so on). The longest buffer within the list item determines the length of the list item. More work needs to be done to fully support it, namely the ability to specity multiple buffers to layer for static and streaming sources. Also the behavior of loop points for layered static sources should be worked out. Should also consider allowing each layer to have a sample offset. | ||||
* | Re-update effect slots when context properties change | Chris Robinson | 2017-09-27 | 1 | -54/+41 |
| | | | | | Also keep all free property update structs together in the context instead of per-object. | ||||
* | Update the context state properties separately | Chris Robinson | 2017-09-27 | 1 | -20/+32 |
| | | | | | | | | | | | | | The context state properties are less likely to change compared to the listener state, and future changes may prefer more infrequent updates to the context state. Note that this puts the MetersPerUnit in as a context state, even though it's handled through the listener functions. Considering the infrequency that it's updated at (generally set just once for the context's lifetime), it makes more sense to put it there than with the more frequently updated listener properties. The aforementioned future changes would also prefer MetersPerUnit to not be updated unnecessarily. | ||||
* | Add an option to ignore the app's speed of sound for reverb decay | Chris Robinson | 2017-09-22 | 1 | -2/+10 |
| | |||||
* | Use the app-specified speed of sound for reverb decay | Chris Robinson | 2017-09-21 | 1 | -1/+2 |
| | | | | | Specifically, the initial reverb decay as determined by the source distance, and the reverb decayhf limit from air absorption. | ||||
* | Pass the context to the auxiliary effect update method | Chris Robinson | 2017-09-21 | 1 | -3/+3 |
| | |||||
* | Automatically generate the bsinc table when building | Chris Robinson | 2017-08-28 | 1 | -1/+1 |
| | | | | | This makes bsincgen a native tool like bin2h, so it can run automatically when compiling. | ||||
* | Add a higher quality bsinc resampler using 24 sample points | Chris Robinson | 2017-08-27 | 1 | -9/+14 |
| | | | | | | | This improves the transition width, allowing more of the higher frequencies remain audible. It would be preferrable to have an upper limit of 32 points instead of 48, to reduce the overall table size and the CPU cost for down- sampling. | ||||
* | Rename the bsinc resampler to bsinc12 | Chris Robinson | 2017-08-25 | 1 | -6/+6 |
| | |||||
* | Meters per unit can't be 0 | Chris Robinson | 2017-08-21 | 1 | -2/+2 |
| | |||||
* | Properly clear the extra ChannelsPerOrder entries | Chris Robinson | 2017-08-19 | 1 | -1/+1 |
| | |||||
* | Pass the filter entry to apply to resample_fir4 | Chris Robinson | 2017-08-18 | 1 | -3/+2 |
| | |||||
* | Store the sinc4 table in the filter state | Chris Robinson | 2017-08-16 | 1 | -3/+11 |
| | | | | Also rename the resampler functions to remove the unnecessary '32' token. | ||||
* | Simplify bsinc filter storage in the filter state | Chris Robinson | 2017-08-16 | 1 | -12/+3 |
| | | | | | | | Rather than storing individual pointers to filter, scale delta, phase delta, and scale phase delta entries, per phase index, the new table layout makes it trivial to access the per-phase filter and delta entries given the base offset and coefficient count. | ||||
* | Make the bsinc table layout more efficient | Chris Robinson | 2017-08-16 | 1 | -4/+4 |
| | | | | | | | | | | | | | | | | The old layout separated filters, scale deltas, phase deltas, and scale phase deltas into separate segments that each contained a numbers of scale and phase entries, Since processing a sample needed a filter and one of each delta entry relating to a particular scale and phase, the memory needed would be spread across the whole table. And since subsequent samples would use a different phase, it would jump around the table a whole lot as well. The new layout packs the data in a way more consistent with its use. The filters, scale deltas, phase deltas, and scale phase deltas are interleaved, such that for a particular scale and phase, the filter and delta entries used are contiguous. And the phase entries for a particular scale are kept together, so the ~500 to ~1000 samples processed per source update stay within the same 3KB to 6KB area of the 70+KB table, which is much more cache friendly. |