aboutsummaryrefslogtreecommitdiffstats
path: root/alc/front_stablizer.h
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2020-05-05 01:01:30 -0700
committerChris Robinson <[email protected]>2020-05-05 01:05:38 -0700
commitdeac36a1ebc009e755ef999bcbcdc41323c84ef0 (patch)
treeace92f4838a67f8972648276992374776ba74eef /alc/front_stablizer.h
parentfcec76663f0ea24dd5d1f477f839ca2e781bf9b3 (diff)
Improve the front stablizer
Apply the all-pass+band-split only once, after generating the mid and side signals separately.
Diffstat (limited to 'alc/front_stablizer.h')
-rw-r--r--alc/front_stablizer.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/alc/front_stablizer.h b/alc/front_stablizer.h
index ad31508a..179a1953 100644
--- a/alc/front_stablizer.h
+++ b/alc/front_stablizer.h
@@ -10,14 +10,15 @@
struct FrontStablizer {
static constexpr size_t DelayLength{256u};
- alignas(16) float DelayBuf[MAX_OUTPUT_CHANNELS][DelayLength];
-
- BandSplitter LFilter, RFilter;
- alignas(16) float LSplit[2][BUFFERSIZE];
- alignas(16) float RSplit[2][BUFFERSIZE];
+ BandSplitter MidFilter;
+ alignas(16) float MidLF[BUFFERSIZE];
+ alignas(16) float MidHF[BUFFERSIZE];
+ alignas(16) float Side[BUFFERSIZE];
alignas(16) float TempBuf[BUFFERSIZE + DelayLength];
+ alignas(16) float DelayBuf[MAX_OUTPUT_CHANNELS][DelayLength];
+
DEF_NEWDEL(FrontStablizer)
};