26 #include "siddefs-fp.h" 31 #include "FilterModelConfig.h" 324 unsigned short* currentGain;
327 unsigned short* currentMixer;
330 unsigned short* currentSummer;
333 unsigned short* currentResonance;
335 const unsigned short* f0_dac;
337 unsigned short** mixer;
338 unsigned short** summer;
339 unsigned short** gain;
353 const int voiceScaleS14;
357 std::auto_ptr<Integrator> hpIntegrator;
360 std::auto_ptr<Integrator> bpIntegrator;
368 f0_dac(FilterModelConfig::getInstance()->getDAC(0.5)),
369 mixer(FilterModelConfig::getInstance()->getMixer()),
370 summer(FilterModelConfig::getInstance()->getSummer()),
371 gain(FilterModelConfig::getInstance()->getGain()),
376 voiceScaleS14(FilterModelConfig::getInstance()->getVoiceScaleS14()),
377 voiceDC(FilterModelConfig::getInstance()->getVoiceDC()),
378 hpIntegrator(FilterModelConfig::getInstance()->buildIntegrator()),
379 bpIntegrator(FilterModelConfig::getInstance()->buildIntegrator())
386 int clock(
int voice1,
int voice2,
int voice3);
388 void input(
int sample) { ve = (sample * voiceScaleS14 * 3 >> 10) + mixer[0][0]; }
415 #if RESID_INLINING || defined(FILTER6581_CPP) 417 #include "Integrator.h" 425 voice1 = (voice1 * voiceScaleS14 >> 18) + voiceDC;
426 voice2 = (voice2 * voiceScaleS14 >> 18) + voiceDC;
427 voice3 = (voice3 * voiceScaleS14 >> 18) + voiceDC;
432 (
filt1 ? Vi : Vo) += voice1;
434 (filt2 ? Vi : Vo) += voice2;
447 (filtE ? Vi : Vo) += ve;
449 const int oldVhp = Vhp;
450 Vhp = currentSummer[currentResonance[Vbp] + Vlp + Vi];
451 Vlp = bpIntegrator->solve(Vbp);
452 Vbp = hpIntegrator->solve(oldVhp);
469 return currentGain[currentMixer[Vo]] - (1 << 15);
void updatedMixing()
Definition: Filter6581.cpp:42
bool hp
Highpass, bandpass, and lowpass filter modes.
Definition: Filter.h:51
bool filt1
Routing to filter or outside filter.
Definition: Filter.h:45
int clock(int voice1, int voice2, int voice3)
Definition: Filter6581.h:423
bool voice3off
Switch voice 3 off.
Definition: Filter.h:48
void setFilterCurve(double curvePosition)
Definition: Filter6581.cpp:84
void updatedCenterFrequency()
Definition: Filter6581.cpp:35
unsigned char res
Filter resonance.
Definition: Filter.h:39
Definition: Filter6581.h:320
void updatedResonance()
Definition: Filter6581.h:400