aboutsummaryrefslogtreecommitdiffstats
path: root/alc/panning.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2023-01-06 01:40:10 -0800
committerChris Robinson <[email protected]>2023-01-06 01:40:10 -0800
commitec30a306df6c1d2079786c9cd4ae37fd6554e229 (patch)
tree223928cf686f6f62cdcc9c51f75f3b394065ff8d /alc/panning.cpp
parent3f8a3af3637606dae61ba112cb5bd9d2d897e5cb (diff)
Avoid using a reversed all-pass for the front stablizer
While a neat trick, it's been shown to be too volatile and add noise as the signal gets louder. It's better to just accept the phase shift and ensure everything stays aligned.
Diffstat (limited to 'alc/panning.cpp')
-rw-r--r--alc/panning.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/alc/panning.cpp b/alc/panning.cpp
index 1210b318..80418b39 100644
--- a/alc/panning.cpp
+++ b/alc/panning.cpp
@@ -116,13 +116,13 @@ inline const char *GetLabelFromChannel(Channel channel)
std::unique_ptr<FrontStablizer> CreateStablizer(const size_t outchans, const uint srate)
{
auto stablizer = FrontStablizer::Create(outchans);
- for(auto &buf : stablizer->DelayBuf)
- std::fill(buf.begin(), buf.end(), 0.0f);
/* Initialize band-splitting filter for the mid signal, with a crossover at
* 5khz (could be higher).
*/
stablizer->MidFilter.init(5000.0f / static_cast<float>(srate));
+ for(auto &filter : stablizer->ChannelFilters)
+ filter = stablizer->MidFilter;
return stablizer;
}