mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-15 16:16:10 +09:00
turns out wikipedia just flat out give you a code for LP/HP filter
This commit is contained in:
@@ -57,7 +57,7 @@ class Lowpass(cutoff0: Float, val rate: Int): TerrarumAudioFilter() {
|
|||||||
out[0] = outbuf0[ch].last()
|
out[0] = outbuf0[ch].last()
|
||||||
|
|
||||||
for (i in 1 until outbuf1[ch].size) {
|
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")
|
// println("LP Cutoff: $cutoff")
|
||||||
val RC: Double = 1.0 / (cutoff * Math.PI * 2.0)
|
val RC: Double = 1.0 / (cutoff * Math.PI * 2.0)
|
||||||
val dt: Double = 1.0 / rate
|
val dt: Double = 1.0 / rate
|
||||||
alpha = (dt / (RC + dt)).toFloat()
|
alpha = (RC / (RC + dt)).toFloat()
|
||||||
this.cutoff = cutoff
|
this.cutoff = cutoff
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ class Highpass(cutoff0: Float, val rate: Int): TerrarumAudioFilter() {
|
|||||||
out[0] = outbuf0[ch].last()
|
out[0] = outbuf0[ch].last()
|
||||||
|
|
||||||
for (i in 1 until outbuf1[ch].size) {
|
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])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user