convolver to ignore FFT interruptedexception

This commit is contained in:
minjaesong
2024-07-12 01:31:23 +09:00
parent 836d287fa9
commit c1ca06c8e0
2 changed files with 9 additions and 6 deletions

View File

@@ -47,9 +47,12 @@ class Convolv(irModule: String, irPath: String, val crossfeed: Float, gain: Floa
private val fftOutR = FloatArray(fftLen) private val fftOutR = FloatArray(fftLen)
private fun convolve(x: ComplexArray, h: ComplexArray, output: FloatArray) { private fun convolve(x: ComplexArray, h: ComplexArray, output: FloatArray) {
FFT.fftInto(x, fftIn) try {
fftIn.mult(h, fftMult) FFT.fftInto(x, fftIn)
FFT.ifftAndGetReal(fftMult, output) fftIn.mult(h, fftMult)
FFT.ifftAndGetReal(fftMult, output)
}
catch (_: InterruptedException) { /* ignore it */ }
} }
/** /**

View File

@@ -28,12 +28,12 @@ open class LoFi(
internal val convolver = Convolv(irModule, irPath, crossfeed, gain) internal val convolver = Convolv(irModule, irPath, crossfeed, gain)
private val immAfterStaticMix = listOf(FloatArray(App.audioBufferSize), FloatArray(App.audioBufferSize)) 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<FloatArray>, outbuf: List<FloatArray>) { override fun thru(inbuf: List<FloatArray>, outbuf: List<FloatArray>) {
staticMixThru(inbuf, immAfterStaticMix) staticMixThru(inbuf, immAfterStaticMix)
convolver.thru(immAfterStaticMix, immAfterConvolv) saturatorThru(immAfterStaticMix, immAfterSat)
saturatorThru(immAfterConvolv, outbuf) convolver.thru(immAfterSat, outbuf)
} }
private fun staticMixThru(inbuf: List<FloatArray>, outbuf: List<FloatArray>) { private fun staticMixThru(inbuf: List<FloatArray>, outbuf: List<FloatArray>) {