libsidplayfp
1.8.3
|
#include <ExternalFilter.h>
Public Member Functions | |
int | clock (int Vi) |
ExternalFilter () | |
void | setClockFrequency (double frequency) |
void | reset () |
The audio output stage in a Commodore 64 consists of two STC networks, a low-pass filter with 3-dB frequency 16kHz followed by a high-pass filter with 3-dB frequency 16Hz (the latter provided an audio equipment input impedance of 1kOhm).
The STC networks are connected with a BJT supposedly meant to act as a unity gain buffer, which is not really how it works. A more elaborate model would include the BJT, however DC circuit analysis yields BJT base-emitter and emitter-base impedances sufficiently low to produce additional low-pass and high-pass 3dB-frequencies in the order of hundreds of kHz. This calls for a sampling frequency of several MHz, which is far too high for practical use.
reSIDfp::ExternalFilter::ExternalFilter | ( | ) |
Constructor.
RESID_INLINE int reSIDfp::ExternalFilter::clock | ( | int | Vi | ) |
SID clocking.
Vi |
void reSIDfp::ExternalFilter::reset | ( | ) |
SID reset.
void reSIDfp::ExternalFilter::setClockFrequency | ( | double | frequency | ) |
Setup of the external filter sampling parameters.
frequency |