summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTortuga veloz <danielcampora@outlook.es>2025-03-12 14:20:33 +0100
committerAlejandro Asenjo Nitti <96613413+sonicdcer@users.noreply.github.com>2025-03-24 02:50:18 -0400
commitb86153c110251af9c9302af53acacac3e8812791 (patch)
tree77192dbdb087d78ebd074469a4fd699efee756ff
parent638616a67e1cd824e6cec48113b7544f9934e8d0 (diff)
Fix spectrogram.
-rw-r--r--src/audio/audio_general.c14
-rw-r--r--src/audio/audio_thread.c2
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);
}