Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Clear the old reverb pipeline buffer when it's done | Chris Robinson | 2022-12-17 | 1 | -9/+46 |
| | |||||
* | Rework reverb fading to toggle between pipelines | Chris Robinson | 2022-12-17 | 1 | -475/+360 |
| | | | | | | | | | | | | When non-simple properties are changed, the active reverb pipeline is switched and the new parameters set on that one. The main process function will then be set to fade out input on the old pipeline, fade in input on the new pipeline, then process and mix both pipelines. After some number of samples (calculated from its decay time), the old pipeline will stop processing. This should improve the transition from a highly reverberant environment by not harshly interpolating to the new environment, as well as better handle changes to the all-pass and T60 filters. | ||||
* | Use a bitset for the enabled event flags | Chris Robinson | 2022-12-16 | 1 | -4/+3 |
| | |||||
* | Avoid inlining certain exception functions | Chris Robinson | 2022-12-16 | 2 | -7/+17 |
| | |||||
* | Avoid extraneous temporaries when filling vectors | Chris Robinson | 2022-12-15 | 2 | -8/+18 |
| | |||||
* | Avoid manually specifying FFT template parameters | Chris Robinson | 2022-12-14 | 2 | -5/+5 |
| | |||||
* | Implement an al::unreachable wrapper/helper | Chris Robinson | 2022-12-13 | 1 | -1/+1 |
| | |||||
* | Rename a potentially confusing member function | Chris Robinson | 2022-12-08 | 1 | -2/+2 |
| | |||||
* | Avoid setting PipeWire stream properties with separate calls | Chris Robinson | 2022-12-06 | 1 | -12/+11 |
| | |||||
* | Avoid using a macro to wrap standard attributes | Chris Robinson | 2022-12-06 | 7 | -36/+36 |
| | |||||
* | Avoid LIKELY/UNLIKELY macros | Chris Robinson | 2022-12-05 | 5 | -23/+23 |
| | |||||
* | Avoid some uses of the LIKELY/UNLIKELY macros | Chris Robinson | 2022-12-05 | 1 | -1/+1 |
| | |||||
* | Use standard likely/unlikely attributes when available | Chris Robinson | 2022-12-05 | 3 | -12/+12 |
| | |||||
* | Use the correct variable for reading the WASAPI playback rate | Chris Robinson | 2022-12-05 | 1 | -2/+2 |
| | |||||
* | Fix building with PipeWire 0.3.49 and earlier | Chris Robinson | 2022-12-02 | 1 | -0/+19 |
| | |||||
* | Add missing device_clock/source_latency enums for querying | Chris Robinson | 2022-11-29 | 1 | -0/+9 |
| | |||||
* | Use complex floats for convolution reverb FFTs | Chris Robinson | 2022-11-24 | 2 | -24/+23 |
| | |||||
* | Don't prematurely change ALCdevice::BufferSize | Chris Robinson | 2022-11-22 | 1 | -7/+11 |
| | |||||
* | Fix WASAPI capture handling the background COM thread | Chris Robinson | 2022-11-19 | 1 | -18/+30 |
| | |||||
* | Avoid a use-after-free in the ALSA backend | Chris Robinson | 2022-11-16 | 1 | -12/+12 |
| | |||||
* | Use the correct frame size for WASAPI resampling | Chris Robinson | 2022-11-13 | 1 | -2/+2 |
| | |||||
* | Change a function to a static method | Chris Robinson | 2022-11-13 | 2 | -4/+5 |
| | |||||
* | Add a config option to prevent WASAPI from using a resampler | Chris Robinson | 2022-11-12 | 1 | -1/+5 |
| | |||||
* | Add a resampler to WASAPI output | Chris Robinson | 2022-11-12 | 1 | -10/+75 |
| | | | | | | | This allows mixing at various samples rates that WASAPI doesn't otherwise support. This is mostly helpful for users that have unnecessarily high device rates (96 or 192khz), and lets the ALC_FREQUENCY attribute or frequency config option set a lower mixing rate for more efficient processing. | ||||
* | Dynamically start/stop the WASAPI message thread | Chris Robinson | 2022-11-12 | 1 | -86/+117 |
| | |||||
* | Try to detect the update and buffer size from PipeWire | Chris Robinson | 2022-11-08 | 1 | -4/+45 |
| | |||||
* | Make sure sio_write and sio_read return valid values | Chris Robinson | 2022-11-07 | 1 | -5/+12 |
| | |||||
* | Add preliminary support for 7.1.4 output modes | Chris Robinson | 2022-11-03 | 14 | -5/+129 |
| | | | | | | | | I don't know how different sound APIs handle 7.1.4 ("Atmos" or "Auro3D") output, but currently it simply specifies the additional channels with the height channel labels. This isn't likely how it works for a virtualized channel bed, for playing over other with-height configurations (7.1.2, 5.1.4, etc), but this should be an okay start. | ||||
* | Add functions to start sources at a particular device time | Chris Robinson | 2022-11-03 | 3 | -0/+13 |
| | | | | | | | | This starts a source at a particular device clock time, rounded to the nearest sample (really, 4th sample for SIMD reasons), allowing to start a sound at a particular point in the output instead of the next update. Unlike using negative offsets, this is not affected by pitch/velocity. | ||||
* | Add the ability to start a voice at a particular time | Chris Robinson | 2022-11-03 | 1 | -1/+5 |
| | |||||
* | Add missing header | Chris Robinson | 2022-10-22 | 1 | -0/+1 |
| | |||||
* | Add a warning when using the old UHJ filter option | Chris Robinson | 2022-10-21 | 1 | -2/+8 |
| | |||||
* | Rename some variables to be less ambiguous | Chris Robinson | 2022-10-21 | 1 | -2/+2 |
| | |||||
* | Add separate filter options for UHJ encoding and decoding | Chris Robinson | 2022-10-21 | 2 | -8/+29 |
| | |||||
* | Add an IIR filter option for UHJ encoding/decoding | Chris Robinson | 2022-10-21 | 2 | -3/+5 |
| | | | | | | 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. | ||||
* | Avoid using a modulo in a loop | Chris Robinson | 2022-10-18 | 1 | -10/+42 |
| | |||||
* | Remove unnecessary includes and forward declarations | Chris Robinson | 2022-09-23 | 1 | -7/+0 |
| | |||||
* | Remove an unnecessary include | Chris Robinson | 2022-09-22 | 1 | -1/+0 |
| | |||||
* | Use PulseAudio's threaded mainloop instead of a custom one | Chris Robinson | 2022-09-22 | 1 | -141/+160 |
| | |||||
* | Correctly check if a multi-channel decoder is set | Chris Robinson | 2022-09-16 | 1 | -1/+1 |
| | |||||
* | Update the built-in quad and 7.1 decoders | Chris Robinson | 2022-09-16 | 1 | -26/+26 |
| | | | | | Make them first- and second-order respectively. They don't have enough speakers to really be suitable for higher orders than that. | ||||
* | Don't pack ambdec coefficients | Chris Robinson | 2022-09-12 | 1 | -64/+22 |
| | | | | | | | | | 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. | ||||
* | Ensure coeff_scale is set for ambdec files | Chris Robinson | 2022-09-11 | 1 | -0/+1 |
| | |||||
* | Track if doing 2D mixing only | Chris Robinson | 2022-09-04 | 4 | -6/+15 |
| | | | | And use it to select the proper HF scales | ||||
* | Allow different HF scales for 2D mixing/output | Chris Robinson | 2022-09-04 | 2 | -2/+2 |
| | | | | | 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 | 2 | -2/+2 |
| | |||||
* | Revert "Don't apply the HF scaling for "upsampling" ambisonics" | Chris Robinson | 2022-09-02 | 2 | -4/+42 |
| | | | | This reverts commit bf3f63fb4c5faa45784d7433d68b7013e29ee2c1. | ||||
* | Use an icosahedron for 3D second-order | Chris Robinson | 2022-09-01 | 1 | -32/+33 |
| | |||||
* | Don't apply the HF scaling for "upsampling" ambisonics | Chris Robinson | 2022-08-31 | 2 | -42/+4 |
| | | | | | | | | | | | | 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 a more precise 3D7.1 decoder | Chris Robinson | 2022-08-30 | 1 | -12/+12 |
| |