From 247b04379adc366df8a184da2b33a37d110a764a Mon Sep 17 00:00:00 2001 From: PJB3005 Date: Mon, 16 Mar 2026 13:57:04 +0100 Subject: [PATCH] Output as F32 This completely fucks up audio. Pending debugging to figure out why --- src/dusk/audio/DuskAudioSystem.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/dusk/audio/DuskAudioSystem.cpp b/src/dusk/audio/DuskAudioSystem.cpp index 9b089eb807..ae23b995f3 100644 --- a/src/dusk/audio/DuskAudioSystem.cpp +++ b/src/dusk/audio/DuskAudioSystem.cpp @@ -33,7 +33,7 @@ static void InitSDL3Output() { SDL_Init(SDL_INIT_AUDIO); constexpr SDL_AudioSpec spec = { - SDL_AUDIO_S16, + SDL_AUDIO_F32, 1, SampleRate, }; @@ -68,6 +68,7 @@ void SDLCALL GetNewAudio( } static std::ofstream outRaw("guh.raw", std::ios_base::out | std::ios_base::binary); +static std::ofstream outRawF32("guh.f32.raw", std::ios_base::out | std::ios_base::binary); int RenderNewAudioFrame() { JASCriticalSection section; @@ -92,7 +93,14 @@ void RenderAudioSubframe() { JASDriver::updateDSP(); DspRender(subFrame); - outRaw.write((const char*)subFrame.data(), subFrame.size() * sizeof(s16)); + std::array guh = {}; + for (int i = 0; i < DSP_SUBFRAME_SIZE; i++) { + guh[i] = (f32)subFrame[i] / (f32)0x7FFF; + } - SDL_PutAudioStreamData(PlaybackStream, &subFrame, sizeof(subFrame)); + outRaw.write((const char*)subFrame.data(), sizeof(subFrame)); + outRawF32.write((const char*)guh.data(), sizeof(guh)); + + SDL_PutAudioStreamData(PlaybackStream, guh.data(), sizeof(guh)); + // SDL_PutAudioStreamData(PlaybackStream, subFrame.data(), sizeof(subFrame)); }