mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-17 22:14:05 +09:00
29 lines
867 B
Kotlin
29 lines
867 B
Kotlin
package net.torvald.terrarum.audio.dsp
|
|
|
|
import net.torvald.terrarum.audio.TerrarumAudioMixerTrack
|
|
|
|
object XYtoMS: TerrarumAudioFilter() {
|
|
override fun thru(inbuf: List<FloatArray>, outbuf: List<FloatArray>) {
|
|
for (i in 0 until TerrarumAudioMixerTrack.AUDIO_BUFFER_SIZE) {
|
|
val X = inbuf[0][i]
|
|
val Y = inbuf[1][i]
|
|
val M = (X + Y) / 2f
|
|
val S = (X - Y) / 2f
|
|
outbuf[0][i] = M
|
|
outbuf[1][i] = S
|
|
}
|
|
}
|
|
}
|
|
|
|
object MStoXY: TerrarumAudioFilter() {
|
|
override fun thru(inbuf: List<FloatArray>, outbuf: List<FloatArray>) {
|
|
for (i in 0 until TerrarumAudioMixerTrack.AUDIO_BUFFER_SIZE) {
|
|
val M = inbuf[0][i]
|
|
val S = inbuf[1][i]
|
|
val X = M + S
|
|
val Y = M - S
|
|
outbuf[0][i] = X
|
|
outbuf[1][i] = Y
|
|
}
|
|
}
|
|
} |