Fix audio artifacts when importing 32-bit IEE wav files

This commit is contained in:
Wojtek Figat
2025-03-11 18:46:25 +01:00
parent 3c303514a4
commit 2af6bdc283

View File

@@ -4,7 +4,7 @@
#include "AudioTool.h" #include "AudioTool.h"
#include "Engine/Core/Core.h" #include "Engine/Core/Core.h"
#include "Engine/Core/Memory/Allocation.h" #include "Engine/Core/Math/Math.h"
#if USE_EDITOR #if USE_EDITOR
#include "Engine/Serialization/Serialization.h" #include "Engine/Serialization/Serialization.h"
#include "Engine/Scripting/Enums.h" #include "Engine/Scripting/Enums.h"
@@ -307,8 +307,9 @@ void AudioTool::ConvertFromFloat(const float* input, int32* output, uint32 numSa
{ {
for (uint32 i = 0; i < numSamples; i++) for (uint32 i = 0; i < numSamples; i++)
{ {
const float sample = *(float*)input; float sample = *(float*)input;
output[i] = static_cast<int32>(sample * 2147483647.0f); sample = Math::Clamp(sample, -1.0f + ZeroTolerance, +1.0f - ZeroTolerance);
output[i] = static_cast<int32>(sample * 2147483648.0f);
input++; input++;
} }
} }