libsidplayfp
2.0.2
|
#include <WaveformCalculator.h>
Public Member Functions | |
matrix_t * | buildTable (ChipModel model) |
Static Public Member Functions | |
static WaveformCalculator * | getInstance () |
Combined waveform calculator for WaveformGenerator. By combining waveforms, the bits of each waveform are effectively short circuited. A zero bit in one waveform will result in a zero output bit (thus the infamous claim that the waveforms are AND'ed). However, a zero bit in one waveform may also affect the neighboring bits in the output.
Example:
1 1 Bit # 1 0 9 8 7 6 5 4 3 2 1 0 ----------------------- Sawtooth 0 0 0 1 1 1 1 1 1 0 0 0 Triangle 0 0 1 1 1 1 1 1 0 0 0 0 AND 0 0 0 1 1 1 1 1 0 0 0 0 Output 0 0 0 0 1 1 1 0 0 0 0 0
Re-vectorized die photographs reveal the mechanism behind this behavior. Each waveform selector bit acts as a switch, which directly connects internal outputs into the waveform DAC inputs as follows:
We can thus draw the following conclusions:
matrix_t * reSIDfp::WaveformCalculator::buildTable | ( | ChipModel | model | ) |
Build waveform tables for use by WaveformGenerator.
model | Chip model to use |
|
static |
Get the singleton instance.