From b16a6ced93848d59660d410534e8f70882f2a373 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Fri, 24 Nov 2023 01:21:06 +0900 Subject: [PATCH] filter: xy-ms conv --- .../terrarum/audio/TerrarumAudioFilter.kt | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/net/torvald/terrarum/audio/TerrarumAudioFilter.kt b/src/net/torvald/terrarum/audio/TerrarumAudioFilter.kt index 90acbd1dc..3a2b9bd5a 100644 --- a/src/net/torvald/terrarum/audio/TerrarumAudioFilter.kt +++ b/src/net/torvald/terrarum/audio/TerrarumAudioFilter.kt @@ -286,3 +286,29 @@ class Reverb(val delayMS: Float, var decay: Float, var lowpass: Float): Terrarum } } } + +object XYtoMS: TerrarumAudioFilter() { + override fun thru(inbuf0: List, inbuf1: List, outbuf0: List, outbuf1: List) { + for (i in 0 until BUFFER_SIZE / 4) { + val X = inbuf1[0][i] + val Y = inbuf1[1][i] + val M = (X + Y) / 2f + val S = (X - Y) / 2f + outbuf1[0][i] = M + outbuf1[1][i] = S + } + } +} + +object MStoXY: TerrarumAudioFilter() { + override fun thru(inbuf0: List, inbuf1: List, outbuf0: List, outbuf1: List) { + for (i in 0 until BUFFER_SIZE / 4) { + val M = inbuf1[0][i] + val S = inbuf1[1][i] + val X = M + S + val Y = M - S + outbuf1[0][i] = X + outbuf1[1][i] = Y + } + } +}