From 87e865d0258209aebca27c78b02f141e9797a61c Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sat, 8 Oct 2022 21:31:38 +0300 Subject: [PATCH] Make sure Karplus-Strong generated sound is the same in both channels --- libs/audio/source/wave/karplus_strong.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/audio/source/wave/karplus_strong.cpp b/libs/audio/source/wave/karplus_strong.cpp index 4313786d..f166b60a 100644 --- a/libs/audio/source/wave/karplus_strong.cpp +++ b/libs/audio/source/wave/karplus_strong.cpp @@ -19,8 +19,12 @@ namespace psemek::audio : buffer_(2 * std::round(audio::frequency / frequency)) { random::generator rng{0x4b0a763ef6573bf2ull, 0}; - for (auto & v : buffer_) - v = random::uniform(rng, -1.f, 1.f); + for (std::size_t i = 0; i < buffer_.size(); i += 2) + { + float v = random::uniform(rng, -1.f, 1.f); + buffer_[i + 0] = v; + buffer_[i + 1] = v; + } } std::optional length() const override