28#include "siddefs-fp.h"
29#include "ExternalFilter.h"
30#include "Potentiometer.h"
54 const char* getMessage()
const {
return message; }
70 Filter8580*
const filter8580;
73 std::unique_ptr<Resampler> resampler;
100 unsigned int nextVoiceSync;
106 CombinedWaveforms cws;
109 unsigned char busValue;
131 void ageBusValue(
unsigned int n);
146 void voiceSync(
bool sync);
186 void input(
int value);
208 unsigned char read(
int offset);
216 void write(
int offset,
unsigned char value);
244 double clockFrequency,
245 SamplingMethod method,
246 double samplingFrequency
256 int clock(
unsigned int cycles,
short* buf);
301#if RESID_INLINING || defined(SID_CPP)
306#include "ExternalFilter.h"
308#include "resample/Resampler.h"
314void SID::ageBusValue(
unsigned int n)
316 if (likely(busValueTtl != 0))
320 if (unlikely(busValueTtl <= 0))
331 const float v1 = voice[0].
output(voice[2].wave());
332 const float v2 = voice[1].
output(voice[0].wave());
333 const float v3 = voice[2].
output(voice[1].wave());
335 const int input =
static_cast<int>(filter->
clock(v1, v2, v3));
348 unsigned int delta_t = std::min(nextVoiceSync, cycles);
350 if (likely(delta_t > 0))
352 for (
unsigned int i = 0; i < delta_t; i++)
355 voice[0].wave()->
clock();
356 voice[1].wave()->
clock();
357 voice[2].wave()->
clock();
360 voice[0].envelope()->
clock();
361 voice[1].envelope()->
clock();
362 voice[2].envelope()->
clock();
364 if (unlikely(resampler->input(output())))
366 buf[s++] = resampler->getOutput(scaleFactor);
371 nextVoiceSync -= delta_t;
374 if (unlikely(nextVoiceSync == 0))
void clock()
Definition EnvelopeGenerator.h:177
Definition ExternalFilter.h:65
int clock(int input)
Definition ExternalFilter.h:111
Definition Filter6581.h:321
virtual unsigned short clock(float v1, float v2, float v3)=0
Definition Potentiometer.h:38
void setChipModel(ChipModel model)
Definition SID.cpp:207
void input(int value)
Definition SID.cpp:316
unsigned char read(int offset)
Definition SID.cpp:322
void write(int offset, unsigned char value)
Definition SID.cpp:357
void setSamplingParameters(double clockFrequency, SamplingMethod method, double samplingFrequency)
Definition SID.cpp:476
void setFilter6581Range(double adjustment)
Definition SID.cpp:157
ChipModel getChipModel() const
Definition SID.h:163
void setCombinedWaveforms(CombinedWaveforms cws)
Definition SID.cpp:271
void setFilter6581Curve(double filterCurve)
Definition SID.cpp:152
void setFilter8580Curve(double filterCurve)
Definition SID.cpp:162
void enableFilter(bool enable)
Definition SID.cpp:167
void reset()
Definition SID.cpp:295
int clock(unsigned int cycles, short *buf)
Definition SID.h:341
void clockSilent(unsigned int cycles)
Definition SID.cpp:495
RESID_INLINE float output(const WaveformGenerator *ringModulator)
Definition Voice.h:66