Struct APU::apu_pulse
- Defined in File APU.h 
Nested Relationships
This struct is a nested type of Class APU.
Struct Documentation
- 
struct apu_pulse
- Public Functions - 
apu_pulse(bool useTwosComplement)
 - 
void setupSweep(uint8_t value)
 - 
void clockSweep()
 - 
void updateTargetPeriod()
 - 
void reset()
 - 
void clock()
 - 
uint8_t output()
 - 
float oscOutput()
 - Public Members - 
const uint8_t sequences[4] = {0x40, 0x60, 0x78, 0x9F}
- Duty Cycle Sequences This array contains sequencer output waveforms: 0: 0100 0000 (12.5 %) 1: 0110 0000 (25 %) 2: 0111 1000 (50 %) 3: 1001 1111 (25 % negated) 
 - 
const double sequencesOsc[4] = {0.125, 0.25, 0.5, 0.75}
 - 
uint8_t sequencerPos = 0
- Current position in the sequence (value 0-7). The position is updated when the timer goes from 0 to t (underflows). 
 - 
uint16_t timer = 0
- 11-bit timer current value. 
 - 
uint16_t timerPeriod = 0
- Timer reset value. 
 - 
uint8_t dutyCycle = 0
- Current duty cycle (sequences array 2-bit index). 
 - 
apu_envelope envelope
- Volume envelope. 
 - 
apu_lengthCounter lengthCounter
- Length counter. 
 - 
bool useTwosComplement = false
- Sweep unit. 
 - 
bool sweepReload = false
 - 
bool sweepEnabled = false
 - 
bool sweepNegate = false
 - 
uint8_t sweepShiftCount = 0
 - 
uint8_t sweepPeriod = 0
 - 
uint8_t sweepCounter = 0
 - 
uint16_t targetPeriod = 0
 - 
double phaseIndex = 0
- Oscillator index in the generated pulse. 
 
- 
apu_pulse(bool useTwosComplement)