Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Avoid nesting lambdas | Chris Robinson | 2022-10-24 | 1 | -42/+27 |
| | |||||
* | Avoid a duplicate all-pass function that accumulates | Chris Robinson | 2022-10-22 | 1 | -33/+30 |
| | |||||
* | Don't pass null to fprintf | Chris Robinson | 2022-10-10 | 1 | -2/+2 |
| | |||||
* | Handle the delays specified in SOFA files | Chris Robinson | 2022-10-10 | 1 | -44/+55 |
| | |||||
* | Resample before frequency analysis | Chris Robinson | 2022-05-13 | 5 | -38/+92 |
| | | | | | | | | | | We want to resample before minimum phase reconstruction since that changes the phase relationship of the sampled signal, introducing a slight bit of noise from truncated sampling. It's not clear that the frequency domain resampling method is accurate, so resampling prior to frequency analysis is an alternative to ensure the resulting frequencies are given the proper phase for sampling. This also cleans up some micro allocations in loops. | ||||
* | Handle 3D7.1 as a separate channel configuration | Chris Robinson | 2022-04-26 | 3 | -35/+80 |
| | | | | | | | It's treated as 5.1 + 2 aux channels. This allows AL_DIRECT_CHANNELS_SOFT to behave better, not forwarding rear left/right channel inputs to lower front and upper rear, and allows reporting a more appropriate output mode to the app instead of 7.1. | ||||
* | Update a tooltip to match current behavior | Chris Robinson | 2022-04-26 | 1 | -3/+1 |
| | |||||
* | Add an option to alsoft-config for EAX API support | Chris Robinson | 2022-04-26 | 2 | -1/+29 |
| | |||||
* | Print the output mode from openal-info | Chris Robinson | 2022-04-17 | 1 | -0/+29 |
| | |||||
* | Fix the UHJ decoder parameters in uhjdecoder | Chris Robinson | 2022-03-02 | 1 | -5/+5 |
| | |||||
* | Use a more compatible method to check for EFX effects | Chris Robinson | 2022-02-26 | 1 | -41/+68 |
| | | | | | | Creative's wrapper driver doesn't seem to handle EFX enums for alGetEnumValue, let alone return values only for what's supported. The only way to check which filter and effect types it supports is try to set them and check for errors. | ||||
* | Add options to encode 3- and 4-channel UHJ to uhjencoder | Chris Robinson | 2022-02-04 | 1 | -19/+71 |
| | | | | | | | The generated files won't play correctly if the player doesn't know they're 3- and 4-channel UHJ (the third and fourth channels must be ignored, or decoded, for playback). This is largely just for completion's sake, just in case someone has a use for it. | ||||
* | Rename Sqrt1_2 for consistency | Chris Robinson | 2022-02-01 | 1 | -2/+2 |
| | |||||
* | Remove math_defs.h | Chris Robinson | 2022-01-27 | 1 | -47/+48 |
| | |||||
* | Get rid of MathDefs | Chris Robinson | 2022-01-27 | 1 | -1/+2 |
| | |||||
* | Add an ambi-format option for ACN ordering and FuMa scaling | Chris Robinson | 2022-01-12 | 1 | -1/+2 |
| | |||||
* | Use the deprecated enum for older Qt versions | Chris Robinson | 2022-01-06 | 1 | -0/+4 |
| | |||||
* | Avoid a deprecated QString enum | Chris Robinson | 2022-01-05 | 1 | -1/+1 |
| | |||||
* | Add a third-order ambisonic decoder for HRTF | Chris Robinson | 2022-01-05 | 1 | -5/+4 |
| | | | | | Using the 20-channel dodecahedron, seems to be good enough to handle 16-channel third-order ambisonics. | ||||
* | Add the PipeWire config option to alsoft-config | Chris Robinson | 2021-12-25 | 2 | -0/+33 |
| | |||||
* | Slight update to the UHJ coefficients | Chris Robinson | 2021-11-28 | 2 | -34/+34 |
| | | | | | | | The extended precision of the encoder's 0.6512*X term was guesswork, with no real basis for it. Switch back to the original value until something better actually comes up. Also updates the decoder to account for the change in the encoder. | ||||
* | Recognize PipeWire in alsoft-config | Chris Robinson | 2021-11-26 | 1 | -0/+3 |
| | |||||
* | Slightly improve logging on Windows | Chris Robinson | 2021-11-21 | 1 | -64/+5 |
| | | | | | The characters won't display properly if the system codepage isn't UTF-8, but at least it shouldn't cut the line off prematurely. | ||||
* | Update alsoft-config | Chris Robinson | 2021-11-11 | 2 | -17/+49 |
| | |||||
* | Remove some lingering mentions of surround51rear | Chris Robinson | 2021-10-21 | 1 | -2/+3 |
| | |||||
* | Use a higher quality all-pass for the UHJ utils | Chris Robinson | 2021-07-30 | 2 | -8/+17 |
| | |||||
* | Add a utility to encode audio files to UHJ | Chris Robinson | 2021-07-09 | 1 | -0/+454 |
| | |||||
* | Fix UHJ encoding/decoding factors | Chris Robinson | 2021-04-11 | 1 | -1/+3 |
| | | | | | | | | | | | 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. | ||||
* | 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 | 1 | -196/+31 |
| | |||||
* | Add an option to change the UHJ decoder method | Chris Robinson | 2021-03-26 | 1 | -27/+50 |
| | | | | | | | | | | | | For 2-channel UHJ, two decoding equations are provided in the original paper. The alternative one is most often referenced for 2-channel UHJ decoding, but the original/general one can also be used by assuming T is fully attenuated (which the format allows for, as T can be variably attenuated by a factor between 0 and 1 to deal with an imperfect transmission medium). Neither method can be perfect for 2-channel UHJ, it's irrevocably lossy to the original source, but my subjective testing indicates the general equation produces less audibly errant results. | ||||
* | Fix a comment typo | Chris Robinson | 2021-03-24 | 1 | -2/+2 |
| | |||||
* | Update the UHJ decoding coefficients | Chris Robinson | 2021-03-24 | 1 | -60/+66 |
| | |||||
* | Add support for decoding 3- and 4-channel UHJ audio | Chris Robinson | 2021-03-21 | 1 | -32/+185 |
| | | | | | | | There are no known file formats intended to support 3- and 4-channel UHJ, but it is possible to store them in various audio files when a player/decoder is aware of what it's dealing with. So there's no reason not to have it as an option. | ||||
* | Don't assume two input channels in uhjdecoder | Chris Robinson | 2021-03-21 | 1 | -1/+1 |
| | |||||
* | Add a utility to decode UHJ sound files to AMB | Chris Robinson | 2021-03-21 | 1 | -0/+515 |
| | | | | | | Currently only supports 2-channel UHJ, and the produced .amb files shouldn't be played as normal B-Format (decoded 2-channel UHJ needs to use different shelf filters). | ||||
* | Add missing include | Chris Robinson | 2021-02-16 | 1 | -0/+1 |
| | |||||
* | Avoid a deprecated function | Chris Robinson | 2020-11-13 | 1 | -10/+10 |
| | |||||
* | Print the number of used measurements in sofa-info | Chris Robinson | 2020-10-07 | 1 | -1/+9 |
| | |||||
* | Avoid using a deprecated function | Chris Robinson | 2020-08-31 | 1 | -4/+3 |
| | |||||
* | Avoid allocating for each HRIR reconstruction | Chris Robinson | 2020-08-14 | 1 | -9/+9 |
| | |||||
* | Simplify StrSubst in makemhr | Chris Robinson | 2020-08-13 | 1 | -36/+27 |
| | |||||
* | Improve handling main() with UTF-8 args on Windows | Chris Robinson | 2020-08-12 | 3 | -5/+4 |
| | |||||
* | Add the jack/connect-ports option to alsoft-config | Chris Robinson | 2020-08-05 | 2 | -1/+20 |
| | |||||
* | Apply simulated HRIR occlusion in the frequency domain | Chris Robinson | 2020-06-21 | 1 | -50/+59 |
| | |||||
* | Synthesize missing elevations in the frequency domain | Chris Robinson | 2020-06-21 | 1 | -141/+147 |
| | | | | | | This should help avoid destructive phase interference. The occlusion low-pass filter is still applied in the time domain due to no clear topology (cutoff frequency, slope, bandwidth, etc). | ||||
* | Use multiple threads for magnitude calculations | Chris Robinson | 2020-06-19 | 3 | -46/+107 |
| | | | | Also allow user-declarable thread count. | ||||
* | Avoid blending multiple IRs for the -90 elevation IR | Chris Robinson | 2020-06-19 | 1 | -33/+27 |
| | |||||
* | Calculate the HRIR onsets and magnitudes separately from loading | Chris Robinson | 2020-06-17 | 1 | -21/+82 |
| | | | | | This should help improve memory use a bit since the SOFA file can be unloaded before allocating some temp buffers for onset detection and FFT calculation. | ||||
* | Add a makemhr option to use the farthest field only | Chris Robinson | 2020-06-17 | 1 | -8/+30 |
| | | | | | All fields are used for equalization, but only the farthest field is resampled, reconstructed, normalized, and written to the mhr. |