summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2020-10-02 09:07:41 +0200
committer Olivier Galibert <galibert@pobox.com>2020-10-02 09:27:51 +0200
commitb5477919bf70c4b71f557758a01361cda31c5d74 (patch)
treee5d80fc91625d53bcdec4fa403fb3645b77f364c /src/devices/sound
parentdd1b9daecaea0495d022a1b378b63d9b0fbdfc36 (diff)
votrax: Adjust the final filter [O. Galibert]
Diffstat (limited to 'src/devices/sound')
-rw-r--r--src/devices/sound/votrax.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/devices/sound/votrax.cpp b/src/devices/sound/votrax.cpp
index f3a6e4d9234..067e639ed78 100644
--- a/src/devices/sound/votrax.cpp
+++ b/src/devices/sound/votrax.cpp
@@ -877,8 +877,11 @@ void votrax_sc01_device::build_lowpass_filter(double *a, double *b,
double c1t, // Unswitched cap, over amp-op, top
double c1b) // Switched cap, over amp-op, bottom
{
+ // The caps values puts the cutoff at around 150Hz, put that's no good.
+ // Recordings shows we want it around 4K, so fuzz it.
+
// Compute the only coefficient we care about
- double k = c1b / (m_cclock * c1t);
+ double k = c1b / (m_cclock * c1t) * (150.0/4000.0);
// Compute the filter cutoff frequency
double fpeak = 1/(2*M_PI*k);
@@ -1001,7 +1004,7 @@ void votrax_sc01_device::build_injection_filter(double *a, double *b,
b[1] = k1 + m;
// That ends up in a numerically unstable filter. Neutralize it for now.
- a[0] = 1;
+ a[0] = 0;
a[1] = 0;
b[0] = 1;
b[1] = 0;