Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use the IIR filter for UHJ by default | Chris Robinson | 2022-10-30 | 1 | -1/+1 |
| | | | | | | | Now that it doesn't cause the distortion like before, the IIR implementation provides a very wide pass-band with the lowest CPU requirements. If maintaining the original phase is important, fir256 and fir512 are still available, given whether lower CPU use or a wider pass-band is more important. | ||||
* | Rename some variables to more clearly indicate their meaning | Chris Robinson | 2022-10-28 | 5 | -40/+40 |
| | |||||
* | Rework the UHJ IIR filters to avoid applying an IIR in reverse | Chris Robinson | 2022-10-27 | 2 | -153/+128 |
| | |||||
* | Switch back to the FIR256 filter by default | Chris Robinson | 2022-10-26 | 1 | -1/+1 |
| | | | | | | There is a surprisingly noticeable amount of static caused by the IIR filter in particular circumstances. The 256-point filter is only slightly slower, but the frequency response should be good enough to use as a default for now. | ||||
* | Use the correct input for the IIR UHJ encoder | Chris Robinson | 2022-10-26 | 1 | -7/+29 |
| | | | | Also better detail the IIR implementation. | ||||
* | Use the IIR all-pass filter by default | Chris Robinson | 2022-10-26 | 1 | -1/+1 |
| | |||||
* | Fix up a comment | Chris Robinson | 2022-10-26 | 1 | -2/+2 |
| | |||||
* | Add a comment about the filter delay | Chris Robinson | 2022-10-25 | 1 | -0/+3 |
| | |||||
* | Fix some value ordering | Chris Robinson | 2022-10-25 | 1 | -2/+2 |
| | |||||
* | Avoid a duplicate all-pass function that accumulates | Chris Robinson | 2022-10-22 | 2 | -92/+113 |
| | |||||
* | Rename some variables to be less ambiguous | Chris Robinson | 2022-10-21 | 3 | -20/+20 |
| | |||||
* | Rename a couple functions to clarify their use | Chris Robinson | 2022-10-21 | 1 | -13/+13 |
| | |||||
* | Add separate filter options for UHJ encoding and decoding | Chris Robinson | 2022-10-21 | 3 | -4/+6 |
| | |||||
* | Add an IIR filter option for UHJ encoding/decoding | Chris Robinson | 2022-10-21 | 3 | -30/+384 |
| | | | | | | This uses the reversed-allpass trick to maintain linear phase. with a 256- sample look-ahead/delay to minimize distortion. This should better preserve low frequencies while maintaining a proper phase response. | ||||
* | Increase sub-sample precision to 16 bits | Chris Robinson | 2022-10-16 | 1 | -1/+1 |
| | |||||
* | Move some comments to a more appropriate place | Chris Robinson | 2022-09-23 | 1 | -32/+32 |
| | |||||
* | Remove an unused variable | Chris Robinson | 2022-09-20 | 1 | -10/+9 |
| | |||||
* | Clear the buffer loop element when out of the loop range | Chris Robinson | 2022-09-18 | 1 | -2/+3 |
| | |||||
* | Clear trailing whitespace from the loaded ambdec description | Chris Robinson | 2022-09-15 | 1 | -0/+2 |
| | |||||
* | Use the correct va_list for the second vsnprintf | Chris Robinson | 2022-09-14 | 1 | -1/+1 |
| | |||||
* | Use ifstream's wchar_t constructors on Windows | Chris Robinson | 2022-09-12 | 1 | -1/+1 |
| | | | | MinGW seems to have added them a while ago, so that greatly simplifies things. | ||||
* | Don't pack ambdec coefficients | Chris Robinson | 2022-09-12 | 1 | -4/+3 |
| | | | | | | | | | Tne coefficients are placed as for full 3D ACN handling. The ChanMask just indicates which have potentially useful values. This could be a bit more agressive and clear ChanMask bits for channels that don't contribute to output, so that a decoder the specifies height-related channel bits, but leaves their coefficients all 0, can be handled as 2D. I don't expect many ambdec files to be like that, though. | ||||
* | Simplify ambdec loading | Chris Robinson | 2022-09-12 | 1 | -236/+156 |
| | |||||
* | Ensure coeff_scale is set for ambdec files | Chris Robinson | 2022-09-11 | 2 | -6/+12 |
| | |||||
* | Reject ambdec files with higher than third order and FuMa scaling | Chris Robinson | 2022-09-11 | 1 | -13/+15 |
| | |||||
* | Track if doing 2D mixing only | Chris Robinson | 2022-09-04 | 2 | -2/+5 |
| | | | | And use it to select the proper HF scales | ||||
* | Allow different HF scales for 2D mixing/output | Chris Robinson | 2022-09-04 | 3 | -5/+25 |
| | | | | | Not actually used yet, the device needs to track whether it's using 2D or 3D mixing. | ||||
* | Use the difference in HF scale for upsampling ambisonics | Chris Robinson | 2022-09-03 | 3 | -32/+30 |
| | |||||
* | Update the second-order upsampler HF scale | Chris Robinson | 2022-09-02 | 1 | -1/+1 |
| | |||||
* | Revert "Don't apply the HF scaling for "upsampling" ambisonics" | Chris Robinson | 2022-09-02 | 3 | -12/+77 |
| | | | | This reverts commit bf3f63fb4c5faa45784d7433d68b7013e29ee2c1. | ||||
* | Use an icosahedron for 3D second-order | Chris Robinson | 2022-09-01 | 3 | -34/+29 |
| | |||||
* | Don't apply the HF scaling for "upsampling" ambisonics | Chris Robinson | 2022-08-31 | 3 | -77/+12 |
| | | | | | | | | | | | | Not sure if this is best, but it fixes the issue of upsampling lower orders to higher orders multiple times (mixing lower order to higher order, cutting back to lower order by dropping the extra channels, then upsampling again, applying the HF scale multiple times and messing up the high frequencies/energy vector), as well as having too-strong high frequencies of upsampled content in general. As it is, with the new upsampling method, the lower order signal contributes to some higher order channels, which helps offset the high frequency scaling difference (except first- to second-order, which adds nothing). | ||||
* | Use predefined variables to handle 1/sqrt(3) | Chris Robinson | 2022-08-30 | 1 | -44/+45 |
| | |||||
* | Allow the remix tables to be variable length | Chris Robinson | 2022-08-28 | 1 | -1/+1 |
| | |||||
* | Add a 2D fourth-order upsampler | Chris Robinson | 2022-08-27 | 2 | -1/+53 |
| | | | | This will be necessary for 2D fourth-order sources with 3D fourth-order output. | ||||
* | Fix variable name | Chris Robinson | 2022-08-26 | 2 | -3/+3 |
| | |||||
* | Create and use 2D upsampling matrices | Chris Robinson | 2022-08-25 | 3 | -11/+156 |
| | |||||
* | Create a proper third-order upsampler matrix | Chris Robinson | 2022-08-19 | 1 | -5/+63 |
| | | | | | This is just an identity matrix for now, since with third-order mixing, it results in a matrix being multiplied with it's inverse. | ||||
* | Inline and precompute some CalcDirectionCoeffs calls | Chris Robinson | 2022-08-18 | 1 | -0/+12 |
| | |||||
* | Avoid duplicate code | Chris Robinson | 2022-08-18 | 3 | -77/+56 |
| | |||||
* | rtkit: match includes with code (#752) | Rosen Penev | 2022-08-18 | 1 | -1/+2 |
| | | | | | | | | | These headers are used for __gettid. Match the if with the code. Fixes compilation under MinGW. Signed-off-by: Rosen Penev <[email protected]> Signed-off-by: Rosen Penev <[email protected]> | ||||
* | Inline a function and remove an unnecessary parameter | Chris Robinson | 2022-08-16 | 3 | -30/+21 |
| | |||||
* | Use proper array sizes for more gains | Chris Robinson | 2022-08-15 | 3 | -4/+4 |
| | |||||
* | Use the proper type for a global definition | Chris Robinson | 2022-08-15 | 1 | -9/+11 |
| | | | | | Some compilers don't seem to like auto deduction for defining a declared variable. | ||||
* | Use a decode-encode method for ambisonic upsampling | Chris Robinson | 2022-08-15 | 2 | -16/+176 |
| | | | | | | | | This should allow for clearer and less diffuse responses. While a cube is in the blindspots for second-order, resulting in an identify transform for first- to-second-order, they do start contributing to third-order channels, which should make for sharper virtual points. The fixed HF scales should also play nicer with larger order upmixes. | ||||
* | Use the right array size for the mixing parameters | Chris Robinson | 2022-08-14 | 1 | -1/+1 |
| | |||||
* | Update some arrays in preparation for fourth order support | Chris Robinson | 2022-08-14 | 1 | -5/+8 |
| | |||||
* | Move a member variable to the struct it's needed | Chris Robinson | 2022-08-09 | 1 | -2/+2 |
| | |||||
* | Add an option for higher quality UHJ filters | Chris Robinson | 2022-08-08 | 3 | -4/+25 |
| | |||||
* | Parameterize the UHJ filter length | Chris Robinson | 2022-08-07 | 5 | -37/+98 |
| |