convolver crossfeed; filter debug code moved to the classes

This commit is contained in:
minjaesong
2023-12-21 17:00:23 +09:00
parent 64ef0343b9
commit fefdf44e3e
15 changed files with 299 additions and 182 deletions

View File

@@ -1,7 +1,14 @@
package net.torvald.terrarum.audio.dsp
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.jme3.math.FastMath
import net.torvald.terrarum.App
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack
import net.torvald.terrarum.audio.linToLogPerc
import net.torvald.terrarum.roundToFloat
import net.torvald.terrarum.ui.BasicDebugInfoWindow
import net.torvald.terrarum.ui.BasicDebugInfoWindow.Companion.toIntAndFrac
import net.torvald.terrarum.ui.Toolkit
class Bitcrush(var steps: Int, var inputGain: Float = 1f): TerrarumAudioFilter() {
override fun thru(inbuf: List<FloatArray>, outbuf: List<FloatArray>) {
@@ -14,4 +21,19 @@ class Bitcrush(var steps: Int, var inputGain: Float = 1f): TerrarumAudioFilter()
}
}
}
override fun drawDebugView(batch: SpriteBatch, x: Int, y: Int) {
val perc = linToLogPerc(steps.toDouble(), 2.0, 65536.0).toFloat()
batch.color = BasicDebugInfoWindow.COL_METER_GRAD2
Toolkit.fillArea(batch, x.toFloat(), y.toFloat(), BasicDebugInfoWindow.STRIP_W * perc, 14f)
batch.color = BasicDebugInfoWindow.COL_METER_GRAD
Toolkit.fillArea(batch, x.toFloat(), y+14f, BasicDebugInfoWindow.STRIP_W * perc, 2f)
val bits = FastMath.log(steps.toFloat(), 2f).toIntAndFrac(1,2)
batch.color = BasicDebugInfoWindow.FILTER_NAME_ACTIVE
App.fontSmallNumbers.draw(batch, "B:$bits", x+3f, y+1f)
}
override val debugViewHeight = 16
}