Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Fix the lfo_offset for a 0-rate flanger | Chris Robinson | 2017-12-19 | 1 | -1/+1 |
| | |||||
* | Use MixSamples for the echo output | Chris Robinson | 2017-12-19 | 1 | -30/+20 |
| | |||||
* | Update the chorus and flanger state struct less often | Chris Robinson | 2017-12-19 | 2 | -8/+8 |
| | |||||
* | Make the echo effect only apply feedback to repeated samples | Chris Robinson | 2017-12-19 | 1 | -11/+16 |
| | |||||
* | Fade gains in the chorus and flanger output | Chris Robinson | 2017-12-19 | 2 | -16/+20 |
| | |||||
* | Use a single delay line for chorus feedback on a fixed tap | Chris Robinson | 2017-12-18 | 2 | -92/+118 |
| | | | | | | The outputs themselves use a variale-delay tap, but using a separate fixed- delay tap on the feedback helps improve the perceived "wobble" with sustained notes. This also applies to the flanger effect. | ||||
* | Apply chorus and flanger feedback on the tapped re-feed | Chris Robinson | 2017-12-17 | 2 | -6/+6 |
| | |||||
* | Use the selected mixer for chorus and flanger output | Chris Robinson | 2017-12-17 | 2 | -50/+22 |
| | |||||
* | Make MixSamples non-static global | Chris Robinson | 2017-12-17 | 2 | -4/+2 |
| | |||||
* | Fix some types to make MSVC happy | Chris Robinson | 2017-12-17 | 2 | -6/+6 |
| | |||||
* | Mix multiple buffers in each buffer list item | Chris Robinson | 2017-12-16 | 1 | -64/+112 |
| | | | | Basically now this just relies on being able to specify composited buffers. | ||||
* | Pre-clear the source temp buffer and accumulate into it | Chris Robinson | 2017-12-16 | 1 | -18/+7 |
| | |||||
* | Rename SrcDataSize to be less confusing | Chris Robinson | 2017-12-16 | 1 | -25/+23 |
| | |||||
* | Allow storing multiple buffers in a ALbufferlistitem | Chris Robinson | 2017-12-15 | 2 | -4/+8 |
| | | | | | | | | | | | | | | | 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. | ||||
* | Update flanger with the same changes as chorus | Chris Robinson | 2017-12-15 | 1 | -44/+55 |
| | |||||
* | Use a separate LFO offset in the chorus effect | Chris Robinson | 2017-12-15 | 1 | -10/+19 |
| | | | | | Given that the LFO range is not a power-of-two, it won't correctly wrap on overflow. | ||||
* | Use linear interpolation for the chorus delay output | Chris Robinson | 2017-12-15 | 1 | -37/+39 |
| | |||||
* | It's getFactory that may be NULL, not its return value... | Chris Robinson | 2017-11-26 | 1 | -3/+4 |
| | |||||
* | Don't probe a NULL backend factory | Chris Robinson | 2017-11-26 | 1 | -2/+2 |
| | |||||
* | Properly initialize with the default distance model | Chris Robinson | 2017-10-29 | 1 | -6/+3 |
| | |||||
* | Enable NFC filters for HRTF | Chris Robinson | 2017-10-23 | 1 | -0/+2 |
| | | | | Only applies to the Ambisonic mix (basic HRTF rendering, or B-Format buffers). | ||||
* | Store the HRTF distance in the Hrtf handle | Chris Robinson | 2017-10-23 | 2 | -8/+13 |
| | |||||
* | Update mhr format for 24-bit, multi-field, stereo measurements | Chris Robinson | 2017-10-22 | 1 | -44/+83 |
| | | | | | Currently only single field HRTFs are supported, but the format now allows up to 16. | ||||
* | Add casts for assigning the SSE bsinc filter pointers | Chris Robinson | 2017-10-07 | 1 | -4/+4 |
| | |||||
* | Avoid a separate function to query ambisonic mode support | Chris Robinson | 2017-09-27 | 1 | -26/+10 |
| | | | | | | Now FuMa and ACN channel orders are required, as are FuMa, SN3D, and N3D normalization schemes. An integer query (alcGetIntegerv) is added for the maximum ambisonic order. | ||||
* | Re-update effect slots when context properties change | Chris Robinson | 2017-09-27 | 2 | -78/+91 |
| | | | | | Also keep all free property update structs together in the context instead of per-object. | ||||
* | Don't update context and listener props unnecessarily | Chris Robinson | 2017-09-27 | 1 | -2/+9 |
| | |||||
* | Update the context state properties separately | Chris Robinson | 2017-09-27 | 2 | -34/+69 |
| | | | | | | | | | | | | | 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. | ||||
* | Restore the original JACK message callback when possible | Chris Robinson | 2017-09-23 | 1 | -1/+9 |
| | |||||
* | Add an option to ignore the app's speed of sound for reverb decay | Chris Robinson | 2017-09-22 | 3 | -4/+17 |
| | |||||
* | Merge pull request #149 from dscharrer/master | kcat | 2017-09-21 | 1 | -0/+1 |
|\ | | | | | Fix build on Gentoo FreeBSD with freebsd-lib 9.1 | ||||
| * | Fix build on Gentoo FreeBSD with freebsd-lib 9.1 | Daniel Scharrer | 2017-09-21 | 1 | -0/+1 |
| | | |||||
* | | Use the app-specified speed of sound for reverb decay | Chris Robinson | 2017-09-21 | 2 | -5/+9 |
| | | | | | | | | | | 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 | 11 | -44/+53 |
|/ | |||||
* | Manually save and restore the FPU rounding mode on Windows | Chris Robinson | 2017-09-19 | 1 | -0/+10 |
| | | | | | | | Apparently there is a bug with at least MinGW-W64 where fegetenv and fesetenv do not properly save and restore the FPU rounding mode, resulting in the rounding mode remaining as round-to-zero after certain function calls. I do not know if this also affects MSVC, but better safe than sorry for now. | ||||
* | Avoid some extraneous load calls | Chris Robinson | 2017-08-30 | 2 | -26/+23 |
| | | | | | This likely doesn't change anything given a working optimizer, but it cleans up the code some. | ||||
* | Automatically generate the bsinc table when building | Chris Robinson | 2017-08-28 | 2 | -6703/+1 |
| | | | | | This makes bsincgen a native tool like bin2h, so it can run automatically when compiling. | ||||
* | Ensure some macros have the correct size | Chris Robinson | 2017-08-28 | 1 | -0/+4 |
| | |||||
* | Add a higher quality bsinc resampler using 24 sample points | Chris Robinson | 2017-08-27 | 4 | -11/+1319 |
| | | | | | | | 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 | 4 | -25/+26 |
| | |||||
* | Constify some pointers | Chris Robinson | 2017-08-23 | 3 | -3/+3 |
| | |||||
* | Meters per unit can't be 0 | Chris Robinson | 2017-08-21 | 1 | -2/+2 |
| | |||||
* | 0 meters per unit is invalid | 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 | 5 | -7/+6 |
| | |||||
* | Keep bsinc filter quality more consistent between scales | Chris Robinson | 2017-08-17 | 1 | -544/+544 |
| | | | | | | | This generates the filters using the proper size and scale. The 'a' divisor should represent the +/- sample range (and thus be a whole number), with the number of sample points being double that. Increasing the filter size to a multiple of 4 (for SIMD) can be done by padding in 0s afterward. | ||||
* | Correct the bsinc filter order | Chris Robinson | 2017-08-17 | 1 | -963/+963 |
| | | | | | | Despite the claim that it was an 11th order filter, the transition width was generated by specifying 12th order. A 12th order filter would need 14 sample points rather than the 12 it had. | ||||
* | Make the sinc4 table static | Chris Robinson | 2017-08-16 | 1 | -1/+1 |
| | |||||
* | Store the sinc4 table in the filter state | Chris Robinson | 2017-08-16 | 10 | -85/+112 |
| | | | | Also rename the resampler functions to remove the unnecessary '32' token. | ||||
* | Simplify bsinc filter storage in the filter state | Chris Robinson | 2017-08-16 | 4 | -24/+18 |
| | | | | | | | 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. |