From 7b7f19e218fca2af7a7695791e18cbdbd2a8d062 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Sun, 19 Nov 2023 20:34:40 +0900 Subject: [PATCH] turns out wikipedia just flat out give you a code for LP/HP filter --- src/net/torvald/terrarum/audio/TerrarumAudioFilter.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/net/torvald/terrarum/audio/TerrarumAudioFilter.kt b/src/net/torvald/terrarum/audio/TerrarumAudioFilter.kt index 33c2665c1..4e72f295e 100644 --- a/src/net/torvald/terrarum/audio/TerrarumAudioFilter.kt +++ b/src/net/torvald/terrarum/audio/TerrarumAudioFilter.kt @@ -57,7 +57,7 @@ class Lowpass(cutoff0: Float, val rate: Int): TerrarumAudioFilter() { out[0] = outbuf0[ch].last() for (i in 1 until outbuf1[ch].size) { - out[i] = out[i-1] + (alpha * (inn[i] - out[i-1])) + out[i] = out[i-1] + alpha * (inn[i] - out[i-1]) } } } @@ -86,7 +86,7 @@ class Highpass(cutoff0: Float, val rate: Int): TerrarumAudioFilter() { // println("LP Cutoff: $cutoff") val RC: Double = 1.0 / (cutoff * Math.PI * 2.0) val dt: Double = 1.0 / rate - alpha = (dt / (RC + dt)).toFloat() + alpha = (RC / (RC + dt)).toFloat() this.cutoff = cutoff } @@ -98,7 +98,7 @@ class Highpass(cutoff0: Float, val rate: Int): TerrarumAudioFilter() { out[0] = outbuf0[ch].last() for (i in 1 until outbuf1[ch].size) { - out[i] = inn[i] - inn[i-1] + (alpha * out[i-1]) // this actually works but setCutoff need to be changed + out[i] = alpha * (out[i-1] + inn[i] - inn[i-1]) } } }