diff options
Diffstat (limited to 'src/Ryujinx.Tests/Audio/Renderer/Dsp')
| -rw-r--r-- | src/Ryujinx.Tests/Audio/Renderer/Dsp/ResamplerTests.cs | 19 | ||||
| -rw-r--r-- | src/Ryujinx.Tests/Audio/Renderer/Dsp/UpsamplerTests.cs | 17 |
2 files changed, 11 insertions, 25 deletions
diff --git a/src/Ryujinx.Tests/Audio/Renderer/Dsp/ResamplerTests.cs b/src/Ryujinx.Tests/Audio/Renderer/Dsp/ResamplerTests.cs index 364837ee..0624f340 100644 --- a/src/Ryujinx.Tests/Audio/Renderer/Dsp/ResamplerTests.cs +++ b/src/Ryujinx.Tests/Audio/Renderer/Dsp/ResamplerTests.cs @@ -1,14 +1,7 @@ using NUnit.Framework; using Ryujinx.Audio.Renderer.Dsp; using Ryujinx.Audio.Renderer.Parameter; -using Ryujinx.Audio.Renderer.Server.Upsampler; using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; -using System.Threading.Tasks; namespace Ryujinx.Tests.Audio.Renderer.Dsp { @@ -41,8 +34,8 @@ namespace Ryujinx.Tests.Audio.Renderer.Dsp /// <param name="quality">The resampler quality to use</param> private static void DoResamplingTest(int inputRate, int outputRate, VoiceInParameter.SampleRateConversionQuality quality) { - float inputSampleRate = (float)inputRate; - float outputSampleRate = (float)outputRate; + float inputSampleRate = inputRate; + float outputSampleRate = outputRate; int inputSampleCount = inputRate; int outputSampleCount = outputRate; short[] inputBuffer = new short[inputSampleCount + 100]; // add some safety buffer at the end @@ -50,7 +43,7 @@ namespace Ryujinx.Tests.Audio.Renderer.Dsp for (int sample = 0; sample < inputBuffer.Length; sample++) { // 440 hz sine wave with amplitude = 0.5f at input sample rate - inputBuffer[sample] = (short)(32767 * MathF.Sin((440 / inputSampleRate) * (float)sample * MathF.PI * 2f) * 0.5f); + inputBuffer[sample] = (short)(32767 * MathF.Sin((440 / inputSampleRate) * sample * MathF.PI * 2f) * 0.5f); } float fraction = 0; @@ -70,14 +63,14 @@ namespace Ryujinx.Tests.Audio.Renderer.Dsp { VoiceInParameter.SampleRateConversionQuality.High => 3, VoiceInParameter.SampleRateConversionQuality.Default => 1, - _ => 0 + _ => 0, }; for (int sample = 0; sample < outputSampleCount; sample++) { outputBuffer[sample] /= 32767; // 440 hz sine wave with amplitude = 0.5f at output sample rate - expectedOutput[sample] = MathF.Sin((440 / outputSampleRate) * (float)(sample + delay) * MathF.PI * 2f) * 0.5f; + expectedOutput[sample] = MathF.Sin((440 / outputSampleRate) * (sample + delay) * MathF.PI * 2f) * 0.5f; float thisDelta = Math.Abs(expectedOutput[sample] - outputBuffer[sample]); // Ensure no discontinuities @@ -85,7 +78,7 @@ namespace Ryujinx.Tests.Audio.Renderer.Dsp sumDifference += thisDelta; } - sumDifference = sumDifference / (float)outputSampleCount; + sumDifference /= outputSampleCount; // Expect the output to be 99% similar to the expected resampled sine wave Assert.IsTrue(sumDifference < 0.01f); } diff --git a/src/Ryujinx.Tests/Audio/Renderer/Dsp/UpsamplerTests.cs b/src/Ryujinx.Tests/Audio/Renderer/Dsp/UpsamplerTests.cs index 2018752b..9b01b3ca 100644 --- a/src/Ryujinx.Tests/Audio/Renderer/Dsp/UpsamplerTests.cs +++ b/src/Ryujinx.Tests/Audio/Renderer/Dsp/UpsamplerTests.cs @@ -1,14 +1,7 @@ using NUnit.Framework; using Ryujinx.Audio.Renderer.Dsp; -using Ryujinx.Audio.Renderer.Parameter; using Ryujinx.Audio.Renderer.Server.Upsampler; using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Runtime.CompilerServices; -using System.Text; -using System.Threading.Tasks; namespace Ryujinx.Tests.Audio.Renderer.Dsp { @@ -17,7 +10,7 @@ namespace Ryujinx.Tests.Audio.Renderer.Dsp [Test] public void TestUpsamplerConsistency() { - UpsamplerBufferState bufferState = new UpsamplerBufferState(); + UpsamplerBufferState bufferState = new(); int inputBlockSize = 160; int numInputSamples = 32000; int numOutputSamples = 48000; @@ -28,14 +21,14 @@ namespace Ryujinx.Tests.Audio.Renderer.Dsp for (int sample = 0; sample < inputBuffer.Length; sample++) { // 440 hz sine wave with amplitude = 0.5f at input sample rate - inputBuffer[sample] = MathF.Sin((440 / inputSampleRate) * (float)sample * MathF.PI * 2f) * 0.5f; + inputBuffer[sample] = MathF.Sin((440 / inputSampleRate) * sample * MathF.PI * 2f) * 0.5f; } int inputIdx = 0; int outputIdx = 0; while (inputIdx + inputBlockSize < numInputSamples) { - int outputBufLength = (int)Math.Round((float)(inputIdx + inputBlockSize) * outputSampleRate / inputSampleRate) - outputIdx; + int outputBufLength = (int)Math.Round((inputIdx + inputBlockSize) * outputSampleRate / inputSampleRate) - outputIdx; UpsamplerHelper.Upsample( outputBuffer.AsSpan(outputIdx), inputBuffer.AsSpan(inputIdx), @@ -52,11 +45,11 @@ namespace Ryujinx.Tests.Audio.Renderer.Dsp for (int sample = 0; sample < numOutputSamples; sample++) { // 440 hz sine wave with amplitude = 0.5f at output sample rate with an offset of 15 - expectedOutput[sample] = MathF.Sin((440 / outputSampleRate) * (float)(sample - 15) * MathF.PI * 2f) * 0.5f; + expectedOutput[sample] = MathF.Sin((440 / outputSampleRate) * (sample - 15) * MathF.PI * 2f) * 0.5f; sumDifference += Math.Abs(expectedOutput[sample] - outputBuffer[sample]); } - sumDifference = sumDifference / (float)expectedOutput.Length; + sumDifference /= expectedOutput.Length; // Expect the output to be 98% similar to the expected resampled sine wave Assert.IsTrue(sumDifference < 0.02f); } |
