From 4734a5ea068c6ed23f106324364da0332f65f0f8 Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Mon, 3 Feb 2025 17:18:21 -0600 Subject: [PATCH] Rewritten this thing --- src/audio/audio_synthesis.c | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/src/audio/audio_synthesis.c b/src/audio/audio_synthesis.c index 93cb7b1b..af3348c0 100644 --- a/src/audio/audio_synthesis.c +++ b/src/audio/audio_synthesis.c @@ -1036,26 +1036,12 @@ Acmd* AudioSynth_ProcessNote(s32 noteIndex, NoteSubEu* noteSub, NoteSynthesisSta goto skip; case CODEC_S16: - aClearBuffer(cmd, DMEM_UNCOMPRESSED_NOTE, (numSamplesToLoadAdj + 16) * 2); + aLoadBuffer(aList++, OS_K0_TO_PHYSICAL(bookSample->sampleAddr + synthState->samplePosInt * 2), DMEM_UNCOMPRESSED_NOTE, + (numSamplesToLoadAdj + SAMPLES_PER_FRAME) * 2); flags = A_CONTINUE; skipBytes = 0; - numSamplesProcessed += numSamplesToLoadAdj; - aligned = numSamplesToLoadAdj; - size_t bytesToRead; - - if (((synthState->samplePosInt * 2) + (numSamplesToLoadAdj + 16) * 2) < - bookSample->size) { - bytesToRead = (numSamplesToLoadAdj + 16) * 2; - } else { - bytesToRead = bookSample->size - (synthState->samplePosInt * 2); - } - // @port [Custom audio] - // TLDR samples are loaded async and might be null the first time they are played. - // See note in AudioSampleFactory.cpp - if ((void*) sampleAddr != NULL) { - aLoadBuffer(cmd++, sampleAddr + (synthState->samplePosInt * 2), DMEM_UNCOMPRESSED_NOTE, - bytesToRead); - } + numSamplesProcessed = numSamplesToLoadAdj; + dmemUncompressedAddrOffset1 = numSamplesToLoadAdj; goto skip; }