mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-07-23 14:19:52 -06:00
Fix audio renderer compressor effect (#5742)
* Delete DecibelToLinearExtended and fix Log10 function * Fix CopyBuffer and ClearBuffer * Change effect states from class to struct + formatting * Formatting * Make UpdateLowPassFilter readonly * More compressor fixes
This commit is contained in:
@ -79,53 +79,57 @@ namespace Ryujinx.Audio.Renderer.Dsp.Command
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private void ProcessReverbMono(ref ReverbState state, ReadOnlySpan<IntPtr> outputBuffers, ReadOnlySpan<IntPtr> inputBuffers, uint sampleCount)
|
||||
{
|
||||
ProcessReverbGeneric(ref state,
|
||||
outputBuffers,
|
||||
inputBuffers,
|
||||
sampleCount,
|
||||
_outputEarlyIndicesTableMono,
|
||||
_targetEarlyDelayLineIndicesTableMono,
|
||||
_targetOutputFeedbackIndicesTableMono,
|
||||
_outputIndicesTableMono);
|
||||
ProcessReverbGeneric(
|
||||
ref state,
|
||||
outputBuffers,
|
||||
inputBuffers,
|
||||
sampleCount,
|
||||
_outputEarlyIndicesTableMono,
|
||||
_targetEarlyDelayLineIndicesTableMono,
|
||||
_targetOutputFeedbackIndicesTableMono,
|
||||
_outputIndicesTableMono);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private void ProcessReverbStereo(ref ReverbState state, ReadOnlySpan<IntPtr> outputBuffers, ReadOnlySpan<IntPtr> inputBuffers, uint sampleCount)
|
||||
{
|
||||
ProcessReverbGeneric(ref state,
|
||||
outputBuffers,
|
||||
inputBuffers,
|
||||
sampleCount,
|
||||
_outputEarlyIndicesTableStereo,
|
||||
_targetEarlyDelayLineIndicesTableStereo,
|
||||
_targetOutputFeedbackIndicesTableStereo,
|
||||
_outputIndicesTableStereo);
|
||||
ProcessReverbGeneric(
|
||||
ref state,
|
||||
outputBuffers,
|
||||
inputBuffers,
|
||||
sampleCount,
|
||||
_outputEarlyIndicesTableStereo,
|
||||
_targetEarlyDelayLineIndicesTableStereo,
|
||||
_targetOutputFeedbackIndicesTableStereo,
|
||||
_outputIndicesTableStereo);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private void ProcessReverbQuadraphonic(ref ReverbState state, ReadOnlySpan<IntPtr> outputBuffers, ReadOnlySpan<IntPtr> inputBuffers, uint sampleCount)
|
||||
{
|
||||
ProcessReverbGeneric(ref state,
|
||||
outputBuffers,
|
||||
inputBuffers,
|
||||
sampleCount,
|
||||
_outputEarlyIndicesTableQuadraphonic,
|
||||
_targetEarlyDelayLineIndicesTableQuadraphonic,
|
||||
_targetOutputFeedbackIndicesTableQuadraphonic,
|
||||
_outputIndicesTableQuadraphonic);
|
||||
ProcessReverbGeneric(
|
||||
ref state,
|
||||
outputBuffers,
|
||||
inputBuffers,
|
||||
sampleCount,
|
||||
_outputEarlyIndicesTableQuadraphonic,
|
||||
_targetEarlyDelayLineIndicesTableQuadraphonic,
|
||||
_targetOutputFeedbackIndicesTableQuadraphonic,
|
||||
_outputIndicesTableQuadraphonic);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private void ProcessReverbSurround(ref ReverbState state, ReadOnlySpan<IntPtr> outputBuffers, ReadOnlySpan<IntPtr> inputBuffers, uint sampleCount)
|
||||
{
|
||||
ProcessReverbGeneric(ref state,
|
||||
outputBuffers,
|
||||
inputBuffers,
|
||||
sampleCount,
|
||||
_outputEarlyIndicesTableSurround,
|
||||
_targetEarlyDelayLineIndicesTableSurround,
|
||||
_targetOutputFeedbackIndicesTableSurround,
|
||||
_outputIndicesTableSurround);
|
||||
ProcessReverbGeneric(
|
||||
ref state,
|
||||
outputBuffers,
|
||||
inputBuffers,
|
||||
sampleCount,
|
||||
_outputEarlyIndicesTableSurround,
|
||||
_targetEarlyDelayLineIndicesTableSurround,
|
||||
_targetOutputFeedbackIndicesTableSurround,
|
||||
_outputIndicesTableSurround);
|
||||
}
|
||||
|
||||
private unsafe void ProcessReverbGeneric(ref ReverbState state, ReadOnlySpan<IntPtr> outputBuffers, ReadOnlySpan<IntPtr> inputBuffers, uint sampleCount, ReadOnlySpan<int> outputEarlyIndicesTable, ReadOnlySpan<int> targetEarlyDelayLineIndicesTable, ReadOnlySpan<int> targetOutputFeedbackIndicesTable, ReadOnlySpan<int> outputIndicesTable)
|
||||
|
Reference in New Issue
Block a user