Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Avoid 5.1Rear as its own channel configuration | Chris Robinson | 2021-07-30 | 2 | -5/+0 |
| | | | | | | It messes with 5.1 sources using direct channels, and the surround channels are supposed to map to the side labels. Individual backends can deal with the channel order/label differences, as they already do to a degree. | ||||
* | Use the 2D channel orders for 2- and 3-channel UHJ | Chris Robinson | 2021-07-13 | 1 | -1/+2 |
| | |||||
* | Add a UHJ-specific coefficient scaling array | Chris Robinson | 2021-07-13 | 4 | -15/+23 |
| | |||||
* | Handle spaces in the ambdec description | Chris Robinson | 2021-06-24 | 1 | -1/+1 |
| | |||||
* | Convert AmbDecConf to DecoderConfig for loading | Chris Robinson | 2021-06-23 | 2 | -83/+12 |
| | | | | | This keeps AmbDecConf uses confined to multi-channel panning initialization, and avoids spreading conversions and maps all over. | ||||
* | Don't allocate full buffer lines in each voice | Chris Robinson | 2021-06-21 | 3 | -26/+45 |
| | | | | | | There's now effectively a 16-channel limit for buffers (as determined by the number of elements in DeviceBase::mSampleData). Any more than that are ignored when mixing. | ||||
* | Avoid mixing extraneous channels | Chris Robinson | 2021-06-21 | 2 | -18/+19 |
| | |||||
* | Avoid altering SrcBufferSize in each channel | Chris Robinson | 2021-06-14 | 1 | -1/+1 |
| | |||||
* | Combine some checks | Chris Robinson | 2021-06-14 | 1 | -22/+23 |
| | |||||
* | Reorder some channel label indices | Chris Robinson | 2021-06-13 | 1 | -1/+1 |
| | |||||
* | Add an option to mix directly in the JACK callback | Chris Robinson | 2021-06-08 | 1 | -0/+4 |
| | |||||
* | Handle the listener position separate from the rotation matrix | Chris Robinson | 2021-05-25 | 1 | -0/+1 |
| | | | | | | It's too unstable with larger vectors. Even when the source and listener positions are the same, floating point precision can cause noticeable rounding errors. | ||||
* | Merge pull request #559 from tatokis/split-sse-sse2 | kcat | 2021-05-13 | 1 | -3/+2 |
|\ | | | | | Allow enabling SSE without SSE2 | ||||
| * | Allow enabling SSE without SSE2 | Tasos Sahanidis | 2021-04-30 | 1 | -3/+2 |
| | | |||||
* | | Avoid shadowing a variable name | Chris Robinson | 2021-05-13 | 1 | -2/+2 |
| | | |||||
* | | Update include headers | Chris Robinson | 2021-04-27 | 1 | -2/+3 |
| | | | | | | | | Don't add alc/ to the include paths. | ||||
* | | Move BufferStorage and Voice to core | Chris Robinson | 2021-04-27 | 4 | -0/+1235 |
| | | |||||
* | | Move ContextBase and VoiceChange to core | Chris Robinson | 2021-04-27 | 3 | -0/+207 |
| | | |||||
* | | Move GetChannelIdxByName and clean up some more includes | Chris Robinson | 2021-04-26 | 1 | -0/+16 |
| | | |||||
* | | Move bformatdec to core | Chris Robinson | 2021-04-25 | 3 | -0/+370 |
| | | |||||
* | | Move async_event.h to core | Chris Robinson | 2021-04-25 | 1 | -0/+55 |
| | | |||||
* | | Move some functions to core | Chris Robinson | 2021-04-25 | 2 | -0/+227 |
| | | | | | | | | And clean up more includes | ||||
* | | Move GetHFOrderScales to a more appropriate place | Chris Robinson | 2021-04-24 | 2 | -0/+48 |
| | | |||||
* | | Update some more includes | Chris Robinson | 2021-04-24 | 2 | -3/+2 |
| | | |||||
* | | Move the DeviceBase declaraction to core | Chris Robinson | 2021-04-24 | 2 | -0/+281 |
| | | |||||
* | | Move some more sources to core | Chris Robinson | 2021-04-24 | 3 | -0/+467 |
| | | |||||
* | | Move hrtf.cpp/h to core | Chris Robinson | 2021-04-22 | 2 | -0/+1538 |
| | | |||||
* | | Avoid over-long lines | Chris Robinson | 2021-04-22 | 1 | -2/+5 |
| | | |||||
* | | Move helpers.cpp to core | Chris Robinson | 2021-04-22 | 2 | -0/+528 |
| | | |||||
* | | Optionally use RTKit/D-Bus to set elevated priority | Chris Robinson | 2021-04-18 | 4 | -0/+441 |
| | | | | | | | | If pthread_setschedparam fails or is unavailable. | ||||
* | | Don't reference non-static local variables in lambdas | Chris Robinson | 2021-04-11 | 1 | -2/+2 |
| | | | | | | | | GCC and Clang seem to allow it for local constexpr variables, but MSVC doesn't. | ||||
* | | Update a comment | Chris Robinson | 2021-04-11 | 1 | -1/+1 |
| | | |||||
* | | Fix UHJ encoding/decoding factors | Chris Robinson | 2021-04-11 | 2 | -16/+34 |
| | | | | | | | | | | | | | | | | | | | | | | Classic B-Format uses scaling factors W=1, X=sqrt(2), Y=sqrt(2), and Z=sqrt(2), which is +3dB louder than FuMa. The base factors are designed assuming classic scaling, so encoding a 0dBFS FuMa signal without accounting for this would result in the UHJ signal peaking at about -3dBFS. Similarly, decoding UHJ to FuMa B-Format would be +3dB louder than intended. So encoding needs to implicitly boost the signal by +3dB, and decoding needs to attenuate by -3dB. | ||||
* | | Add RESTRICT to some pointers | Chris Robinson | 2021-04-04 | 1 | -11/+9 |
| | | | | | | | | And update some comments | ||||
* | | Rename Uhj2Encoder to UhjEncoder | Chris Robinson | 2021-04-01 | 2 | -5/+5 |
| | | |||||
* | | Avoid passing an array of pointers | Chris Robinson | 2021-04-01 | 2 | -26/+30 |
| | | |||||
* | | Add support for 4-channel UHJ | Chris Robinson | 2021-03-31 | 2 | -8/+12 |
| | | | | | | | | Also add the SOFT moniker to the new macros | ||||
* | | Decode UHJ buffers to B-Format for mixing | Chris Robinson | 2021-03-31 | 4 | -6/+100 |
| | | | | | | | | | | This should also have an adjustment for the shelf filter. Although it's not clear what the appropriate adjustments should be. | ||||
* | | Rename a couple class members | Chris Robinson | 2021-03-28 | 2 | -12/+12 |
| | | |||||
* | | Remove some unnecessary includes | Chris Robinson | 2021-03-28 | 1 | -6/+0 |
| | | |||||
* | | Move the UHJ phase shifter to a common header | Chris Robinson | 2021-03-28 | 2 | -203/+14 |
| | | |||||
* | | Update the UHJ decoding coefficients | Chris Robinson | 2021-03-24 | 1 | -2/+5 |
| | | |||||
* | | Fix the UHJ all-pass delay | Chris Robinson | 2021-03-20 | 2 | -11/+8 |
| | | | | | | | | | | | | | | | | | | For real this time. The non-all-passed signal needs a one-sample delay over the all-passed signal. Because of the way the all-pass FIR filter is structured, it wouldn't otherwise use the last buffered sample, allowing it to be shifted forward in time by one sample. Also, remove a couple unnecessary buffers. | ||||
* | | Fix UHJ FIR filter alignment | Chris Robinson | 2021-03-15 | 1 | -1/+1 |
| | | |||||
* | | Workaround mingw complaining about the %z formatter | Chris Robinson | 2021-03-12 | 1 | -1/+6 |
| | | |||||
* | | Avoid making BSincPointsMax public | Chris Robinson | 2021-03-01 | 2 | -18/+30 |
| | | |||||
* | | Avoid cutting off the last bsinc filter coefficient | Chris Robinson | 2021-03-01 | 1 | -3/+3 |
| | | |||||
* | | Avoiding cutting all bsinc resampler output at scale 0 | Chris Robinson | 2021-02-24 | 1 | -7/+6 |
| | | | | | | | | | | | | | | | | | | | | | | | | This is mostly for the SampleConverter, used by some capture backends. When recording at really low rates, like 5512hz, with a device capturing at a higher rate like 44100hz or 48000hz, it hits the filter's downscaling limit and produces pure silence. In such cases, it's better to just accept some aliasing noise so that the app will still get some recognizable audio. The alternative would be to scale the desired rate by 2x, 3x, etc until it's above the bsinc limit, then take every 2nd, 3rd, etc sample of the result as if by an extra simpler resampler pass. | ||||
* | | Use a more appropriate epsilon for Sinc() | Chris Robinson | 2021-02-24 | 1 | -1/+2 |
| | | |||||
* | | Avoid an unnecessary loop iteration | Chris Robinson | 2021-02-23 | 1 | -2/+3 |
| | |