diff --git a/src/net/torvald/terrarum/audio/dsp/Convolv.kt b/src/net/torvald/terrarum/audio/dsp/Convolv.kt index 16c1bf8e5..079dc6a5c 100644 --- a/src/net/torvald/terrarum/audio/dsp/Convolv.kt +++ b/src/net/torvald/terrarum/audio/dsp/Convolv.kt @@ -47,9 +47,12 @@ class Convolv(irModule: String, irPath: String, val crossfeed: Float, gain: Floa private val fftOutR = FloatArray(fftLen) private fun convolve(x: ComplexArray, h: ComplexArray, output: FloatArray) { - FFT.fftInto(x, fftIn) - fftIn.mult(h, fftMult) - FFT.ifftAndGetReal(fftMult, output) + try { + FFT.fftInto(x, fftIn) + fftIn.mult(h, fftMult) + FFT.ifftAndGetReal(fftMult, output) + } + catch (_: InterruptedException) { /* ignore it */ } } /** diff --git a/src/net/torvald/terrarum/audio/dsp/LoFi.kt b/src/net/torvald/terrarum/audio/dsp/LoFi.kt index e0415acc2..dbed965d5 100644 --- a/src/net/torvald/terrarum/audio/dsp/LoFi.kt +++ b/src/net/torvald/terrarum/audio/dsp/LoFi.kt @@ -28,12 +28,12 @@ open class LoFi( internal val convolver = Convolv(irModule, irPath, crossfeed, gain) private val immAfterStaticMix = listOf(FloatArray(App.audioBufferSize), FloatArray(App.audioBufferSize)) - private val immAfterConvolv = listOf(FloatArray(App.audioBufferSize), FloatArray(App.audioBufferSize)) + private val immAfterSat = listOf(FloatArray(App.audioBufferSize), FloatArray(App.audioBufferSize)) override fun thru(inbuf: List, outbuf: List) { staticMixThru(inbuf, immAfterStaticMix) - convolver.thru(immAfterStaticMix, immAfterConvolv) - saturatorThru(immAfterConvolv, outbuf) + saturatorThru(immAfterStaticMix, immAfterSat) + convolver.thru(immAfterSat, outbuf) } private fun staticMixThru(inbuf: List, outbuf: List) {