From d77b8087cb716c6471817a5621e121d5d8db380f Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sun, 19 Nov 2023 14:11:19 +0900 Subject: [PATCH] buffer size adjustments --- .../torvald/terrarum/audio/MixerTrackProcessor.kt | 8 ++++++-- .../terrarum/audio/TerrarumAudioMixerTrack.kt | 2 +- .../torvald/terrarum/ui/BasicDebugInfoWindow.kt | 14 ++++++++++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/net/torvald/terrarum/audio/MixerTrackProcessor.kt b/src/net/torvald/terrarum/audio/MixerTrackProcessor.kt index aa809c6df..5b8bf20bd 100644 --- a/src/net/torvald/terrarum/audio/MixerTrackProcessor.kt +++ b/src/net/torvald/terrarum/audio/MixerTrackProcessor.kt @@ -12,8 +12,9 @@ import kotlin.math.absoluteValue */ class MixerTrackProcessor(val bufferSize: Int, val rate: Int, val track: TerrarumAudioMixerTrack): Runnable { - val BACK_BUF_COUNT = 2 - + companion object { + val BACK_BUF_COUNT = 1 + } @Volatile private var running = true @Volatile private var paused = false @@ -163,6 +164,9 @@ class MixerTrackProcessor(val bufferSize: Int, val rate: Int, val track: Terraru maxSigLevel[index] = fl.toDouble() } } + else { + maxSigLevel.fill(0.0) + } // by this time, the output buffer is filled with processed results, pause the execution diff --git a/src/net/torvald/terrarum/audio/TerrarumAudioMixerTrack.kt b/src/net/torvald/terrarum/audio/TerrarumAudioMixerTrack.kt index a2f10cdcc..663af3a05 100644 --- a/src/net/torvald/terrarum/audio/TerrarumAudioMixerTrack.kt +++ b/src/net/torvald/terrarum/audio/TerrarumAudioMixerTrack.kt @@ -19,7 +19,7 @@ class TerrarumAudioMixerTrack(val name: String, val isMaster: Boolean = false): const val SAMPLING_RATE = 48000 const val SAMPLING_RATEF = 48000f const val SAMPLING_RATED = 48000.0 - const val BUFFER_SIZE = 12000 + const val BUFFER_SIZE = 6000 const val INDEX_BGM = 0 const val INDEX_AMB = 1 diff --git a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt index c62c4aeed..8d85a1d62 100644 --- a/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt +++ b/src/net/torvald/terrarum/ui/BasicDebugInfoWindow.kt @@ -12,6 +12,7 @@ import net.torvald.terrarum.Terrarum.mouseTileX import net.torvald.terrarum.Terrarum.mouseTileY import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.audio.* +import net.torvald.terrarum.audio.MixerTrackProcessor.Companion.BACK_BUF_COUNT import net.torvald.terrarum.audio.TerrarumAudioMixerTrack.Companion.BUFFER_SIZE import net.torvald.terrarum.controller.TerrarumController import net.torvald.terrarum.gameworld.GameWorld @@ -490,7 +491,7 @@ class BasicDebugInfoWindow : UICanvas() { // currently streaming if (track.streamPlaying) { - batch.color = Color.LIME + batch.color = ICON_GREEN App.fontSmallNumbers.draw(batch, "\u00C0", x + 17f, faderY + 1f) } } @@ -502,13 +503,22 @@ class BasicDebugInfoWindow : UICanvas() { App.fontSmallNumbers.draw(batch, "F:${filter.cutoff.toInt()}", x+3f, y+1f) } is Buffer -> { + val currentQueueSize = track.pcmQueue.size + for (i in 0 until BACK_BUF_COUNT) { + batch.color = if (i < currentQueueSize) ICON_GREEN else ICON_RED + App.fontSmallNumbers.draw(batch, "|", x+3f+26 + 4*i, y+1f) + } + batch.color = FILTER_NAME_ACTIVE - App.fontSmallNumbers.draw(batch, "Buf:${track.pcmQueue.size}", x+3f, y+1f) + App.fontSmallNumbers.draw(batch, "Buf:", x+3f, y+1f) App.fontSmallNumbers.draw(batch, "Bs:${BUFFER_SIZE/4}", x+3f, y+17f) } } } + private val ICON_GREEN = Color(0x33ff33_bb.toInt()) + private val ICON_RED = Color(0xff4444_bb.toInt()) + private val FADER_HANDLE_D1 = Color(0xffffff_bb.toInt()) private val FADER_HANDLE_D2 = Color(0xdddddd_bb.toInt())