From 6696fd975554677b36a19de09fbfa8dd33009307 Mon Sep 17 00:00:00 2001 From: Ne_Eo Date: Wed, 16 Oct 2024 01:00:17 +0200 Subject: [PATCH] Small optimization --- source/funkin/backend/utils/AudioAnalyzer.hx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/source/funkin/backend/utils/AudioAnalyzer.hx b/source/funkin/backend/utils/AudioAnalyzer.hx index b5208fa3..ba961ac7 100644 --- a/source/funkin/backend/utils/AudioAnalyzer.hx +++ b/source/funkin/backend/utils/AudioAnalyzer.hx @@ -21,16 +21,21 @@ class AudioAnalyzer { } public function analyze(startPos:Float, endPos:Float):Float { - var bytesStartPos:Int = Math.floor(startPos * __timeMulti / 4000 / buffer.bitsPerSample) * buffer.bitsPerSample; - var bytesEndPos:Int = Math.floor(endPos * __timeMulti / 4000 / buffer.bitsPerSample) * buffer.bitsPerSample; + var bitsPerSample = buffer.bitsPerSample; + var multi = __timeMulti / 4000 / bitsPerSample; + var bytesStartPos:Int = Math.floor(startPos * multi) * bitsPerSample; + var bytesEndPos:Int = Math.floor(endPos * multi) * bitsPerSample; - bytesStartPos -= bytesStartPos % buffer.bitsPerSample; - bytesEndPos -= bytesEndPos % buffer.bitsPerSample; + bytesStartPos -= bytesStartPos % bitsPerSample; + bytesEndPos -= bytesEndPos % bitsPerSample; + + var dataBuffer = buffer.data.buffer; var maxByte:Int = 0; - for(i in 0...Math.floor((bytesEndPos - bytesStartPos) / buffer.bitsPerSample)) { - var byte:Int = buffer.data.buffer.get(bytesStartPos + (i * buffer.bitsPerSample)) - | (buffer.data.buffer.get(bytesStartPos + (i * buffer.bitsPerSample) + 1) << 8); + for(i in 0...Math.floor((bytesEndPos - bytesStartPos) / bitsPerSample)) { + var bytePos = bytesStartPos + (i * bitsPerSample); + // What if bitsPerSample is 8? or 32? or 64? -Ne_Eo + var byte:Int = dataBuffer.get(bytePos) | (dataBuffer.get(bytePos + 1) << 8); if (byte > 256 * 128) byte -= 256 * 256; if (maxByte < byte) maxByte = byte; }