29#include "siddefs-fp.h"
30#include "ExternalFilter.h"
31#include "Potentiometer.h"
55 const char* getMessage()
const {
return message; }
71 Filter8580*
const filter8580;
74 std::unique_ptr<Resampler> resampler;
101 unsigned int nextVoiceSync;
107 CombinedWaveforms cws;
110 unsigned char busValue;
132 void ageBusValue(
unsigned int n);
140 void voiceSync(
bool sync);
180 void input(
int value);
202 unsigned char read(
int offset);
210 void write(
int offset,
unsigned char value);
238 double clockFrequency,
239 SamplingMethod method,
240 double samplingFrequency
250 int clock(
unsigned int cycles,
short* buf);
295#if RESID_INLINING || defined(SID_CPP)
300#include "ExternalFilter.h"
302#include "resample/Resampler.h"
308void SID::ageBusValue(
unsigned int n)
310 if (likely(busValueTtl != 0))
314 if (unlikely(busValueTtl <= 0))
330 unsigned int delta_t = std::min(nextVoiceSync, cycles);
332 if (likely(delta_t > 0))
334 for (
unsigned int i = 0; i < delta_t; i++)
337 voice[0].wave()->
clock();
338 voice[1].wave()->
clock();
339 voice[2].wave()->
clock();
342 voice[0].envelope()->
clock();
343 voice[1].envelope()->
clock();
344 voice[2].envelope()->
clock();
346 const int sidOutput =
static_cast<int>(filter->
clock(voice[0], voice[1], voice[2]));
347 const int c64Output = externalFilter.
clock(sidOutput + INT16_MIN);
348 if (unlikely(resampler->input(c64Output)))
350 buf[s++] = resampler->getOutput(scaleFactor);
355 nextVoiceSync -= delta_t;
358 if (unlikely(nextVoiceSync == 0))
void clock()
Definition EnvelopeGenerator.h:177
Definition ExternalFilter.h:66
int clock(int input)
Definition ExternalFilter.h:113
Definition Filter6581.h:321
unsigned short clock(Voice &v1, Voice &v2, Voice &v3)
Definition Filter.h:207
Definition Potentiometer.h:38
void setChipModel(ChipModel model)
Definition SID.cpp:217
void input(int value)
Definition SID.cpp:327
unsigned char read(int offset)
Definition SID.cpp:333
void write(int offset, unsigned char value)
Definition SID.cpp:368
void setSamplingParameters(double clockFrequency, SamplingMethod method, double samplingFrequency)
Definition SID.cpp:487
void setFilter6581Range(double adjustment)
Definition SID.cpp:167
ChipModel getChipModel() const
Definition SID.h:157
void setCombinedWaveforms(CombinedWaveforms cws)
Definition SID.cpp:282
void setFilter6581Curve(double filterCurve)
Definition SID.cpp:162
void setFilter8580Curve(double filterCurve)
Definition SID.cpp:172
void enableFilter(bool enable)
Definition SID.cpp:177
void reset()
Definition SID.cpp:306
int clock(unsigned int cycles, short *buf)
Definition SID.h:323
void clockSilent(unsigned int cycles)
Definition SID.cpp:506