From d62ea958895e9f408244e1444ea256a7cdc1cfb0 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Tue, 9 Apr 2024 21:53:40 -0400 Subject: [PATCH] Make some intimation towards audio. --- Machines/Acorn/Archimedes/Sound.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Machines/Acorn/Archimedes/Sound.hpp b/Machines/Acorn/Archimedes/Sound.hpp index 501e0ff7e..1ea17be30 100644 --- a/Machines/Acorn/Archimedes/Sound.hpp +++ b/Machines/Acorn/Archimedes/Sound.hpp @@ -8,6 +8,9 @@ #pragma once +#include "../../../Concurrency/AsyncTaskQueue.hpp" +#include "../../../Outputs/Speaker/Implementation/LowpassSpeaker.hpp" + #include namespace Archimedes { @@ -15,7 +18,10 @@ namespace Archimedes { /// Models the Archimedes sound output; in a real machine this is a joint efort between the VIDC and the MEMC. template struct Sound { - Sound(InterruptObserverT &observer, const uint8_t *ram) : ram_(ram), observer_(observer) {} + Sound(InterruptObserverT &observer, const uint8_t *ram) : ram_(ram), observer_(observer) { + speaker_.set_input_rate(1'000'000); + speaker_.set_high_frequency_cutoff(10'000.0f); // Complete guess as to frequency. + } void set_next_end(uint32_t value) { next_.end = value; @@ -115,6 +121,8 @@ private: } positions_[8]; InterruptObserverT &observer_; + Outputs::Speaker::PushLowpass speaker_; + Concurrency::AsyncTaskQueue queue_; }; }