Fix spectrogram.

This commit is contained in:
Tortuga veloz 2025-03-12 14:20:33 +01:00 committed by Alejandro Asenjo Nitti
parent 638616a67e
commit b86153c110
2 changed files with 11 additions and 5 deletions

View file

@ -2251,7 +2251,7 @@ void Audio_AnalyzeFrequencies(f32* buffer0, f32* buffer1, s32 length, f32* buffe
s32 size; s32 size;
size = 1 << length; size = 1 << length;
half = size >> 1; half = size / 2;
// Initialize buffer 2 if it is the wrong size for this calculation // Initialize buffer 2 if it is the wrong size for this calculation
if (size != (s32) buffer2[0]) { if (size != (s32) buffer2[0]) {
@ -2335,9 +2335,15 @@ u8* Audio_UpdateFrequencyAnalysis(void) {
Audio_ProcessPlaylist(); Audio_ProcessPlaylist();
// clang-format off // clang-format off
aiData = gAiBuffers[gCurAiBuffIndex];\ aiData = gAiBuffers[gCurAiBuffIndex];
for(i3 = 0; i3 < 256; i3++) {\ int numChannels = GetNumAudioChannels();
sAudioAnalyzerData[i3] = *aiData++; for(i3 = 0; i3 < 256; i3++) {
sAudioAnalyzerData[i3] = *aiData;
if (i3 % 2 == 0) {
aiData++;
} else {
aiData += numChannels - 1;
}
} }
// clang-format on // clang-format on
Audio_AnalyzeFrequencies(sAudioAnalyzerData, sAnalyzerBuffer1, 8, sAnalyzerBuffer2); Audio_AnalyzeFrequencies(sAudioAnalyzerData, sAnalyzerBuffer1, 8, sAnalyzerBuffer2);

View file

@ -82,7 +82,7 @@ void AudioThread_CreateNextAudioBuffer(s16* samples, u32 num_samples) {
AudioSynth_Update(gCurAbiCmdBuffer, &abiCmdCount, samples, num_samples); AudioSynth_Update(gCurAbiCmdBuffer, &abiCmdCount, samples, num_samples);
// Spectrum Analyzer fix // Spectrum Analyzer fix
memcpy(gAiBuffers[gCurAiBuffIndex], samples, num_samples * sizeof(s16)); memcpy(gAiBuffers[gCurAiBuffIndex], samples, GetNumAudioChannels() * num_samples * sizeof(s16));
gAudioRandom = osGetCount() * (gAudioRandom + gAudioTaskCountQ); gAudioRandom = osGetCount() * (gAudioRandom + gAudioTaskCountQ);
} }