aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2021-03-24 00:24:10 -0700
committerChris Robinson <[email protected]>2021-03-24 00:24:10 -0700
commitd732a8831e9f7f4edcb19a0a39d785fe84e7fc16 (patch)
tree3c2ff8dc135729944b887b84f9d913786f79fdcb /core
parent9a31dcf84f220632c1c4ac29a8df20e99fe40b26 (diff)
Update the UHJ decoding coefficients
Diffstat (limited to 'core')
-rw-r--r--core/uhjfilter.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/core/uhjfilter.cpp b/core/uhjfilter.cpp
index 3fbec3b3..5cb7d0ab 100644
--- a/core/uhjfilter.cpp
+++ b/core/uhjfilter.cpp
@@ -215,15 +215,18 @@ void allpass_process(al::span<float> dst, const float *RESTRICT src)
} // namespace
-/* Encoding 2-channel UHJ from B-Format is done as:
+/* Encoding UHJ from B-Format is done as:
*
* S = 0.9396926*W + 0.1855740*X
* D = j(-0.3420201*W + 0.5098604*X) + 0.6554516*Y
*
* Left = (S + D)/2.0
* Right = (S - D)/2.0
+ * T = j(-0.1432*W + 0.6511746*X) - 0.7071068*Y
+ * Q = 0.9772*Z
*
- * where j is a wide-band +90 degree phase shift.
+ * where j is a wide-band +90 degree phase shift. T is excluded from 2-channel
+ * output, and Q is excluded from 2- and 3-channel output.
*
* The phase shift is done using a FIR filter derived from an FFT'd impulse
* with the desired shift.