aboutsummaryrefslogtreecommitdiffstats
path: root/core
Commit message (Collapse)AuthorAgeFilesLines
* Avoid 5.1Rear as its own channel configurationChris Robinson2021-07-302-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 UHJChris Robinson2021-07-131-1/+2
|
* Add a UHJ-specific coefficient scaling arrayChris Robinson2021-07-134-15/+23
|
* Handle spaces in the ambdec descriptionChris Robinson2021-06-241-1/+1
|
* Convert AmbDecConf to DecoderConfig for loadingChris Robinson2021-06-232-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 voiceChris Robinson2021-06-213-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 channelsChris Robinson2021-06-212-18/+19
|
* Avoid altering SrcBufferSize in each channelChris Robinson2021-06-141-1/+1
|
* Combine some checksChris Robinson2021-06-141-22/+23
|
* Reorder some channel label indicesChris Robinson2021-06-131-1/+1
|
* Add an option to mix directly in the JACK callbackChris Robinson2021-06-081-0/+4
|
* Handle the listener position separate from the rotation matrixChris Robinson2021-05-251-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-sse2kcat2021-05-131-3/+2
|\ | | | | Allow enabling SSE without SSE2
| * Allow enabling SSE without SSE2Tasos Sahanidis2021-04-301-3/+2
| |
* | Avoid shadowing a variable nameChris Robinson2021-05-131-2/+2
| |
* | Update include headersChris Robinson2021-04-271-2/+3
| | | | | | | | Don't add alc/ to the include paths.
* | Move BufferStorage and Voice to coreChris Robinson2021-04-274-0/+1235
| |
* | Move ContextBase and VoiceChange to coreChris Robinson2021-04-273-0/+207
| |
* | Move GetChannelIdxByName and clean up some more includesChris Robinson2021-04-261-0/+16
| |
* | Move bformatdec to coreChris Robinson2021-04-253-0/+370
| |
* | Move async_event.h to coreChris Robinson2021-04-251-0/+55
| |
* | Move some functions to coreChris Robinson2021-04-252-0/+227
| | | | | | | | And clean up more includes
* | Move GetHFOrderScales to a more appropriate placeChris Robinson2021-04-242-0/+48
| |
* | Update some more includesChris Robinson2021-04-242-3/+2
| |
* | Move the DeviceBase declaraction to coreChris Robinson2021-04-242-0/+281
| |
* | Move some more sources to coreChris Robinson2021-04-243-0/+467
| |
* | Move hrtf.cpp/h to coreChris Robinson2021-04-222-0/+1538
| |
* | Avoid over-long linesChris Robinson2021-04-221-2/+5
| |
* | Move helpers.cpp to coreChris Robinson2021-04-222-0/+528
| |
* | Optionally use RTKit/D-Bus to set elevated priorityChris Robinson2021-04-184-0/+441
| | | | | | | | If pthread_setschedparam fails or is unavailable.
* | Don't reference non-static local variables in lambdasChris Robinson2021-04-111-2/+2
| | | | | | | | GCC and Clang seem to allow it for local constexpr variables, but MSVC doesn't.
* | Update a commentChris Robinson2021-04-111-1/+1
| |
* | Fix UHJ encoding/decoding factorsChris Robinson2021-04-112-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 pointersChris Robinson2021-04-041-11/+9
| | | | | | | | And update some comments
* | Rename Uhj2Encoder to UhjEncoderChris Robinson2021-04-012-5/+5
| |
* | Avoid passing an array of pointersChris Robinson2021-04-012-26/+30
| |
* | Add support for 4-channel UHJChris Robinson2021-03-312-8/+12
| | | | | | | | Also add the SOFT moniker to the new macros
* | Decode UHJ buffers to B-Format for mixingChris Robinson2021-03-314-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 membersChris Robinson2021-03-282-12/+12
| |
* | Remove some unnecessary includesChris Robinson2021-03-281-6/+0
| |
* | Move the UHJ phase shifter to a common headerChris Robinson2021-03-282-203/+14
| |
* | Update the UHJ decoding coefficientsChris Robinson2021-03-241-2/+5
| |
* | Fix the UHJ all-pass delayChris Robinson2021-03-202-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 alignmentChris Robinson2021-03-151-1/+1
| |
* | Workaround mingw complaining about the %z formatterChris Robinson2021-03-121-1/+6
| |
* | Avoid making BSincPointsMax publicChris Robinson2021-03-012-18/+30
| |
* | Avoid cutting off the last bsinc filter coefficientChris Robinson2021-03-011-3/+3
| |
* | Avoiding cutting all bsinc resampler output at scale 0Chris Robinson2021-02-241-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 Robinson2021-02-241-1/+2
| |
* | Avoid an unnecessary loop iterationChris Robinson2021-02-231-2/+3
| |