diff options
| author | Tortuga veloz <danielcampora@outlook.es> | 2025-03-12 14:20:33 +0100 |
|---|---|---|
| committer | Alejandro Asenjo Nitti <96613413+sonicdcer@users.noreply.github.com> | 2025-03-24 02:50:18 -0400 |
| commit | b86153c110251af9c9302af53acacac3e8812791 (patch) | |
| tree | 77192dbdb087d78ebd074469a4fd699efee756ff | |
| parent | 638616a67e1cd824e6cec48113b7544f9934e8d0 (diff) | |
Fix spectrogram.
| -rw-r--r-- | src/audio/audio_general.c | 14 | ||||
| -rw-r--r-- | src/audio/audio_thread.c | 2 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/audio/audio_general.c b/src/audio/audio_general.c index c54407a5..22f0f7c6 100644 --- a/src/audio/audio_general.c +++ b/src/audio/audio_general.c @@ -2251,7 +2251,7 @@ void Audio_AnalyzeFrequencies(f32* buffer0, f32* buffer1, s32 length, f32* buffe s32 size; size = 1 << length; - half = size >> 1; + half = size / 2; // Initialize buffer 2 if it is the wrong size for this calculation if (size != (s32) buffer2[0]) { @@ -2335,9 +2335,15 @@ u8* Audio_UpdateFrequencyAnalysis(void) { Audio_ProcessPlaylist(); // clang-format off - aiData = gAiBuffers[gCurAiBuffIndex];\ - for(i3 = 0; i3 < 256; i3++) {\ - sAudioAnalyzerData[i3] = *aiData++; + aiData = gAiBuffers[gCurAiBuffIndex]; + int numChannels = GetNumAudioChannels(); + for(i3 = 0; i3 < 256; i3++) { + sAudioAnalyzerData[i3] = *aiData; + if (i3 % 2 == 0) { + aiData++; + } else { + aiData += numChannels - 1; + } } // clang-format on Audio_AnalyzeFrequencies(sAudioAnalyzerData, sAnalyzerBuffer1, 8, sAnalyzerBuffer2); diff --git a/src/audio/audio_thread.c b/src/audio/audio_thread.c index 4853158b..09eaa2f8 100644 --- a/src/audio/audio_thread.c +++ b/src/audio/audio_thread.c @@ -82,7 +82,7 @@ void AudioThread_CreateNextAudioBuffer(s16* samples, u32 num_samples) { AudioSynth_Update(gCurAbiCmdBuffer, &abiCmdCount, samples, num_samples); // Spectrum Analyzer fix - memcpy(gAiBuffers[gCurAiBuffIndex], samples, num_samples * sizeof(s16)); + memcpy(gAiBuffers[gCurAiBuffIndex], samples, GetNumAudioChannels() * num_samples * sizeof(s16)); gAudioRandom = osGetCount() * (gAudioRandom + gAudioTaskCountQ); } |
