From f5d3d6bcea6b337a938081957898e6281e202540 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sun, 21 Nov 2021 15:37:29 -0500 Subject: [PATCH 1/4] Splits the lowpass filter into push and pull variants. --- Components/6560/6560.hpp | 2 +- Machines/AmstradCPC/AmstradCPC.cpp | 2 +- Machines/Apple/AppleII/AppleII.cpp | 2 +- Machines/Apple/AppleIIgs/AppleIIgs.cpp | 2 +- Machines/Apple/Macintosh/DeferredAudio.hpp | 2 +- Machines/Atari/2600/Bus.hpp | 2 +- Machines/Atari/ST/AtariST.cpp | 2 +- Machines/ColecoVision/ColecoVision.cpp | 2 +- Machines/Electron/Electron.cpp | 2 +- Machines/Enterprise/Enterprise.cpp | 2 +- Machines/MSX/MSX.cpp | 2 +- Machines/MasterSystem/MasterSystem.cpp | 2 +- Machines/Oric/Oric.cpp | 2 +- Machines/Sinclair/ZX8081/ZX8081.cpp | 2 +- Machines/Sinclair/ZXSpectrum/ZXSpectrum.cpp | 2 +- .../Speaker/Implementation/LowpassSpeaker.hpp | 364 +++++++++++------- 16 files changed, 231 insertions(+), 163 deletions(-) diff --git a/Components/6560/6560.hpp b/Components/6560/6560.hpp index fbc61bf94..53e145f29 100644 --- a/Components/6560/6560.hpp +++ b/Components/6560/6560.hpp @@ -435,7 +435,7 @@ template class MOS6560 { Concurrency::DeferringAsyncTaskQueue audio_queue_; AudioGenerator audio_generator_; - Outputs::Speaker::LowpassSpeaker speaker_; + Outputs::Speaker::PullLowpass speaker_; Cycles cycles_since_speaker_update_; void update_audio() { diff --git a/Machines/AmstradCPC/AmstradCPC.cpp b/Machines/AmstradCPC/AmstradCPC.cpp index 21bff7849..a901d11a5 100644 --- a/Machines/AmstradCPC/AmstradCPC.cpp +++ b/Machines/AmstradCPC/AmstradCPC.cpp @@ -158,7 +158,7 @@ class AYDeferrer { private: Concurrency::DeferringAsyncTaskQueue audio_queue_; GI::AY38910::AY38910 ay_; - Outputs::Speaker::LowpassSpeaker> speaker_; + Outputs::Speaker::PullLowpass> speaker_; HalfCycles cycles_since_update_; }; diff --git a/Machines/Apple/AppleII/AppleII.cpp b/Machines/Apple/AppleII/AppleII.cpp index 271ab5634..df993f263 100644 --- a/Machines/Apple/AppleII/AppleII.cpp +++ b/Machines/Apple/AppleII/AppleII.cpp @@ -97,7 +97,7 @@ template class ConcreteMachine: Concurrency::DeferringAsyncTaskQueue audio_queue_; Audio::Toggle audio_toggle_; - Outputs::Speaker::LowpassSpeaker speaker_; + Outputs::Speaker::PullLowpass speaker_; Cycles cycles_since_audio_update_; // MARK: - Cards diff --git a/Machines/Apple/AppleIIgs/AppleIIgs.cpp b/Machines/Apple/AppleIIgs/AppleIIgs.cpp index 68e315e01..d51460325 100644 --- a/Machines/Apple/AppleIIgs/AppleIIgs.cpp +++ b/Machines/Apple/AppleIIgs/AppleIIgs.cpp @@ -1151,7 +1151,7 @@ class ConcreteMachine: Audio::Toggle audio_toggle_; using AudioSource = Outputs::Speaker::CompoundSource; AudioSource mixer_; - Outputs::Speaker::LowpassSpeaker speaker_; + Outputs::Speaker::PullLowpass speaker_; Cycles cycles_since_audio_update_; Cycles cycles_until_audio_event_; static constexpr int audio_divider = 16; diff --git a/Machines/Apple/Macintosh/DeferredAudio.hpp b/Machines/Apple/Macintosh/DeferredAudio.hpp index 6fda448fa..5488f579c 100644 --- a/Machines/Apple/Macintosh/DeferredAudio.hpp +++ b/Machines/Apple/Macintosh/DeferredAudio.hpp @@ -18,7 +18,7 @@ namespace Macintosh { struct DeferredAudio { Concurrency::DeferringAsyncTaskQueue queue; Audio audio; - Outputs::Speaker::LowpassSpeaker