Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | More include cleanup | Chris Robinson | 2021-04-24 | 4 | -9/+10 |
| | |||||
* | Move GetHFOrderScales to a more appropriate place | Chris Robinson | 2021-04-24 | 8 | -43/+53 |
| | |||||
* | Update some more includes | Chris Robinson | 2021-04-24 | 2 | -3/+2 |
| | |||||
* | Don't bother with al string types | Chris Robinson | 2021-04-24 | 2 | -16/+3 |
| | |||||
* | Update some includes | Chris Robinson | 2021-04-24 | 2 | -6/+10 |
| | |||||
* | Move the DeviceBase declaraction to core | Chris Robinson | 2021-04-24 | 5 | -251/+289 |
| | |||||
* | Use the DeviceBase for the backend | Chris Robinson | 2021-04-24 | 35 | -69/+69 |
| | |||||
* | Create a base the ALCdevice and ALCcontext structs | Chris Robinson | 2021-04-24 | 27 | -324/+359 |
| | | | | | A base that contains the API-agnostic data, with ALCdevice and ALCcontext being for AL-specific data. | ||||
* | Move some more sources to core | Chris Robinson | 2021-04-24 | 6 | -12/+12 |
| | |||||
* | Use the root mean square for the HRTF B-Format HF scale | Chris Robinson | 2021-04-24 | 1 | -1/+3 |
| | | | | | | | | For the second-order decoder. Since the delays are adjusted to avoid most high frequency phase cancelation, the energy-based scaling with the number of channels used creates a significant HF increase. Using the RMS-based scaling seems to create a more level response, though it's not perfect either. More testing and measurements may be needed. | ||||
* | Move hrtf.cpp/h to core | Chris Robinson | 2021-04-22 | 8 | -39/+18 |
| | |||||
* | Avoid using config methods in hrtf.cpp | Chris Robinson | 2021-04-22 | 5 | -40/+46 |
| | |||||
* | Avoid over-long lines | Chris Robinson | 2021-04-22 | 1 | -2/+5 |
| | |||||
* | Move helpers.cpp to core | Chris Robinson | 2021-04-22 | 18 | -41/+23 |
| | |||||
* | Move declarations to a more appropriate header | Chris Robinson | 2021-04-22 | 10 | -14/+22 |
| | |||||
* | Print an error when starting the backend fails | Chris Robinson | 2021-04-20 | 1 | -0/+4 |
| | |||||
* | Lower RLIMIT_RTTIME to allow RTKit to give RT priority | Chris Robinson | 2021-04-20 | 4 | -12/+65 |
| | |||||
* | Force an effect slot update when implicitly starting | Chris Robinson | 2021-04-19 | 1 | -0/+4 |
| | |||||
* | Don't flag the auxslot dirty when setting the current value | Chris Robinson | 2021-04-19 | 1 | -0/+14 |
| | |||||
* | Fill the PulseAudio buffer before uncorking playback | Chris Robinson | 2021-04-19 | 1 | -14/+14 |
| | |||||
* | Fix dirty flag check | Chris Robinson | 2021-04-18 | 1 | -1/+1 |
| | |||||
* | Don't require RTKit for Xenial CI | Chris Robinson | 2021-04-18 | 1 | -1/+0 |
| | | | | It apparently doesn't have DBus1Config.cmake in its libdbus-1-dev package. | ||||
* | Require RTKit for Linux CI | Chris Robinson | 2021-04-18 | 2 | -3/+7 |
| | |||||
* | Optionally use RTKit/D-Bus to set elevated priority | Chris Robinson | 2021-04-18 | 7 | -18/+528 |
| | | | | If pthread_setschedparam fails or is unavailable. | ||||
* | Restore missing AL_SOFT_source_length queries | Chris Robinson | 2021-04-15 | 1 | -0/+93 |
| | |||||
* | Make an inverted atomic flag type and use it | Chris Robinson | 2021-04-15 | 10 | -23/+46 |
| | | | | | | | | The inverted atomic flag replaces test_and_set+clear with test_and_clear+set, essentially inverting the flag status. This makes more logical sense for flagging dirty state, which is less confusing than flagging clean state. The one caveat is ATOMIC_FLAG_INIT (or default construction in C++20) initializes the state to true rather than false. | ||||
* | Fix inverted check for updating deferred effectslot properties | Chris Robinson | 2021-04-13 | 1 | -1/+1 |
| | |||||
* | 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 | 3 | -17/+37 |
| | | | | | | | | | | | 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. | ||||
* | Use per-HRIR delay alignment for B-Format-to-HRTF | Chris Robinson | 2021-04-09 | 1 | -6/+11 |
| | | | | | | | | | | | | | For HOA signals, the number of responses used with slightly varying delays causes noticeable attenuation in the higher frequencies because of destructive phase interference. This is not a result of minimum phase alignment (attempts to compensate for minimum phase had negligible results), nor does it affect first-order signals (which only has 4 unique responses on each side). This alternate alignment is only used when doing second-order rendering for HRTF output, which is not the default with HRTF. It's likely not very ideal, but it's necessary to prevent second-order rendering with HRTF from sounding muffled. | ||||
* | Log the reset exception error | Chris Robinson | 2021-04-07 | 1 | -0/+1 |
| | |||||
* | Add RESTRICT to some pointers | Chris Robinson | 2021-04-04 | 1 | -11/+9 |
| | | | | And update some comments | ||||
* | Add an option to decode stereo as UHJ in alffplay | Chris Robinson | 2021-04-02 | 1 | -76/+137 |
| | |||||
* | Advertise the in-progress AL_SOFT_UHJ extension | Chris Robinson | 2021-04-01 | 1 | -1/+12 |
| | |||||
* | Rename Uhj2Encoder to UhjEncoder | Chris Robinson | 2021-04-01 | 6 | -12/+12 |
| | |||||
* | Avoid passing an array of pointers | Chris Robinson | 2021-04-01 | 3 | -33/+31 |
| | |||||
* | Add support for 4-channel UHJ | Chris Robinson | 2021-03-31 | 11 | -35/+64 |
| | | | | Also add the SOFT moniker to the new macros | ||||
* | Handle 3-channel UHJ audio buffers | Chris Robinson | 2021-03-31 | 9 | -12/+30 |
| | |||||
* | Decode UHJ buffers to B-Format for mixing | Chris Robinson | 2021-03-31 | 10 | -82/+214 |
| | | | | | This should also have an adjustment for the shelf filter. Although it's not clear what the appropriate adjustments should be. | ||||
* | Start an interface for providing UHJ audio | Chris Robinson | 2021-03-31 | 7 | -2/+45 |
| | | | | Currently only 2-channel UHJ, which gets treated as stereo. | ||||
* | Combine some duplicate code | Chris Robinson | 2021-03-30 | 4 | -90/+53 |
| | |||||
* | Rename a couple class members | Chris Robinson | 2021-03-28 | 2 | -12/+12 |
| | |||||
* | Remove some unnecessary includes | Chris Robinson | 2021-03-28 | 2 | -12/+0 |
| | |||||
* | Move the UHJ phase shifter to a common header | Chris Robinson | 2021-03-28 | 6 | -400/+394 |
| | |||||
* | Add the export definitions to the library projects | Chris Robinson | 2021-03-28 | 2 | -6/+4 |
| | | | | Instead of the config.h header. | ||||
* | 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 | 2 | -62/+71 |
| | |||||
* | Don't add the resampler prepadding to the source size to load | Chris Robinson | 2021-03-23 | 1 | -18/+17 |
| |