buffer size adjustments

This commit is contained in:
minjaesong
2023-11-19 14:11:19 +09:00
parent 574c2e6745
commit d77b8087cb
3 changed files with 19 additions and 5 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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())