aboutsummaryrefslogtreecommitdiffstats
path: root/alc
Commit message (Collapse)AuthorAgeFilesLines
* Create and use 2D upsampling matricesChris Robinson2022-08-253-9/+29
|
* Apply the upsampler before rotationChris Robinson2022-08-251-84/+23
| | | | | | | | Although this will necessitate applying a full device-order rotation for all ambisonic sources, it should be slightly better since it's effectively rotated after being mixed to higher order. This will also allow using more optimized upsamplers for 2D ambisonic sources vs 3D (while still allowing the sources to be rotated in 3D).
* Skip LFE for aux send gains with Direct ChannelsChris Robinson2022-08-181-0/+4
|
* Fix the channel spread for aux send gains with full HRTFChris Robinson2022-08-181-1/+1
|
* Inline and precompute some CalcDirectionCoeffs callsChris Robinson2022-08-186-8/+8
|
* Fix the ringbuffer write sizeChris Robinson2022-08-181-1/+1
|
* Use an intermediate buffer for writing to the ringbufferChris Robinson2022-08-181-26/+11
| | | | | It doesn't seem as though AudioUnitRender likes being given two buffers to render/capture samples into segmented memory.
* Pass the action flags to AudioUnitRender from the callbackChris Robinson2022-08-171-3/+2
|
* Inline a function and remove an unnecessary parameterChris Robinson2022-08-162-2/+2
|
* Pass the bus number to AudioUnitRender from the callbackChris Robinson2022-08-161-2/+2
|
* Use proper array sizes for more gainsChris Robinson2022-08-1512-22/+26
|
* Use amplitude-matching HF scaling for non-FOA HRTF outputChris Robinson2022-08-151-4/+4
|
* Update in incorrect commentChris Robinson2022-08-151-1/+1
|
* Use a decode-encode method for ambisonic upsamplingChris Robinson2022-08-151-6/+107
| | | | | | | | 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.
* Update some arrays in preparation for fourth order supportChris Robinson2022-08-141-1/+3
|
* Rename the UHJ filter config optionChris Robinson2022-08-091-2/+2
|
* Add an option for higher quality UHJ filtersChris Robinson2022-08-082-15/+30
|
* Parameterize the UHJ filter lengthChris Robinson2022-08-072-3/+3
|
* Avoid putting a 1KB array on the stackChris Robinson2022-08-021-6/+6
|
* Rework multi-channel source radius handlingChris Robinson2022-08-021-50/+118
| | | | | | | | Rather than applying the calculated spread to each virtual channel, the spread indicates how much the virtual channels surround the listener. At full spread, the channels retain their virtual speaker positions, while at no spread, all channels converge on the source position. This behavior is more consistent with B-Format sources.
* Change an inline function to a class methodChris Robinson2022-08-023-9/+8
|
* Check the channel count for a valid DecoderViewChris Robinson2022-08-021-1/+1
| | | | | Ambisonic decoders can be zeroth order, but they need at least one output channel.
* Add media class for Audio/Source/Virtual as a valid node (#747)Eir W2022-08-021-1/+6
|
* Use an intrusive_ptr to hold on to the EffectStateChris Robinson2022-07-291-3/+3
|
* Ensure some mixing buffers are aligned for SIMDChris Robinson2022-07-262-2/+2
|
* Use the reverb air absorption for the send pathsChris Robinson2022-07-191-9/+7
|
* Declare variables closer to where they're usedChris Robinson2022-07-181-4/+2
|
* [EAX_CONTEXT] Fix defaults for current propertiesBoris I. Bendovsky2022-07-172-6/+41
|
* [EAX_CONTEXT] Fix committing of a property valueBoris I. Bendovsky2022-07-171-1/+3
|
* [EAX_FX_SLOT] Mark sources as changed instead of commiting them to catch up ↵Boris I. Bendovsky2022-07-172-7/+1
| | | | with changes in FX slot
* Don't pass an EaxCall to initialize_fx_slotsChris Robinson2022-07-152-9/+8
|
* Don't store and manage wet buffers separatelyChris Robinson2022-07-154-54/+15
|
* Allocate EffectSlots in clustersChris Robinson2022-07-152-1/+20
|
* Dynamically allocate EffectSlot objectsChris Robinson2022-07-152-4/+4
|
* Don't track dirty flags per EAX versionChris Robinson2022-07-132-38/+25
| | | | | Only the current version's flags are used, and they're all reset when changing versions, making it unnecessary to track non-current version flags.
* Don't commit EAX properties when not initializedChris Robinson2022-07-131-1/+2
|
* [EAX] Add separate context state for each version (#731)Boris I. Bendovsky2022-07-132-688/+615
|
* [EAX] Use separate FX slot state for each version (#730)Boris I. Bendovsky2022-07-122-17/+4
| | | | | | | * [EAX] Use separate FX slot state for each version [EAX] Don't defer FX slot properties * [EAX_FXSLOT] Use mPropsDirty to defer update [EAX_CONTEXT] Commit all updates on first initialization
* Add a config compat option for NFC distance scalingChris Robinson2022-07-073-8/+12
| | | | | | | | | | | | Currently there's no way for an application to specify the "real world" scale for in-game units. If the game doesn't use one unit to represent what should be perceived as one meter to the user, the NFC filter's effect will be too near or too far sounding. This allows adjusting the unit scale as applied to the NFC filters only, correcting the misalignment. This also removes the influence of EFX's MetersPerUnit from the NFC filters, since many games don't use it, and those that do won't know it also influences the perceived wave curvature along with the air absorption strength.
* Add a speaker-dist config optionChris Robinson2022-07-071-7/+15
| | | | | | | This can be used to specify an average speaker distance without having the modify the decoder config files. This also sets a default value of 1, letting near-field effects work (if imprecisely) without an explicitly-configured distance.
* Remove an unused structChris Robinson2022-07-051-9/+1
| | | | And minor formatting cleanup
* Define PW_KEY_NODE_RATE when neededChris Robinson2022-06-241-0/+5
|
* Fix the PipeWire version checkChris Robinson2022-06-241-1/+2
| | | | | | PW_CHECK_VERSION checks if the header version is equal to or newer than the values specified, it can't be used to check if the library version is equal to or newer than the header version.
* Remove an unused lambda captureChris Robinson2022-06-181-1/+1
|
* [EAX] Add separate source state for each version (#720)Boris I. Bendovsky2022-06-182-27/+8
|
* Don't apply effect auto send adjustments for non-reverb effectsChris Robinson2022-06-161-1/+1
|
* Match exactly 5.1 Rear in WASAPIChris Robinson2022-06-161-2/+2
| | | | | So 7.1 and other configurations like it aren't detected as 5.1 Rear despite having side channels.
* Handle a blank channel mask from WASAPIChris Robinson2022-06-141-10/+18
| | | | | | | Without a channel mask, the channels are treated as "raw" or unknown. Auto- detection will only go up to stereo (assuming the first two channels are front- left and front-right), while explicit requests will work as long as there are enough channels (the user is responsible for ensuring a correct setup).
* Use an inline function instead of a function-like macroChris Robinson2022-06-121-6/+7
|
* Disable EAX if the Chorus effect is disabledChris Robinson2022-06-101-2/+7
|