audio filters moved to its own files

This commit is contained in:
minjaesong
2023-11-28 13:56:15 +09:00
parent ce6f5909a8
commit af48a171eb
22 changed files with 542 additions and 459 deletions

View File

@@ -0,0 +1,17 @@
package net.torvald.terrarum.audio.dsp
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack
import net.torvald.terrarum.roundToFloat
class Bitcrush(var steps: Int, var inputGain: Float = 1f): TerrarumAudioFilter() {
override fun thru(inbuf: List<FloatArray>, outbuf: List<FloatArray>) {
for (ch in outbuf.indices) {
for (i in 0 until TerrarumAudioMixerTrack.BUFFER_SIZE / 4) {
val inn = ((inbuf[ch][i] * inputGain).coerceIn(-1f, 1f) + 1f) / 2f // 0f..1f
val stepped = (inn * (steps - 1)).roundToFloat() / (steps - 1)
val out = (stepped * 2f) - 1f // -1f..1f
outbuf[ch][i] = out
}
}
}
}