Plaquette
 
Loading...
Searching...
No Matches
pq::AbstractOscillator Class Reference

Triangle/sawtooth oscillator. More...

#include <AbstractOscillator.h>

Inheritance diagram for pq::AbstractOscillator:
Collaboration diagram for pq::AbstractOscillator:

Public Member Functions

 AbstractOscillator (float period)
 Constructor.
 
virtual void period (float period)
 Sets the period (in seconds).
 
virtual float period () const
 Returns the period (in seconds).
 
virtual void frequency (float frequency)
 Sets the frequency (in Hz).
 
virtual float frequency () const
 Returns the frequency (in Hz).
 
virtual void bpm (float bpm)
 Sets the frequency in beats-per-minute.
 
virtual float bpm () const
 Returns the frequency (in BPM).
 
virtual void phase (float phase)
 Sets the phase at % of period.
 
virtual float phase () const
 Returns the phase (in % of period).
 
virtual void phaseShift (float phaseShift)
 Sets the phase shift (ie.
 
virtual float phaseShift () const
 Returns the phase shift (ie.
 
virtual float timeToPhase (float time) const
 Utility function to convert time to phase.
 
virtual void setTime (float time)
 Forces current time (in seconds).
 
virtual void addTime (float time)
 Adds time to current time (in seconds).
 
virtual bool isRunning () const
 Returns true iff the wave is currently running.
 
virtual bool isForward () const
 Returns true iff the wave is moving forward in time.
 
virtual void setForward (bool isForward)
 Sets the direction of oscillation.
 
virtual void forward ()
 Sets the direction of oscillation to move forward in time.
 
virtual void reverse ()
 Sets the direction of oscillation to move backward in time.
 
virtual void toggleReverse ()
 Toggles the direction of oscillation.
 
virtual float randomness () const
 Returns the randomness level in [0, 1].
 
virtual void randomize (float randomness=1.0f)
 Sets the randomness level in [0, 1] (0: no randomness, 1: full randomness).
 
virtual void noRandomize ()
 Disables randomness.
 
virtual void start ()
 Starts/restarts the chronometer.
 
virtual void stop ()
 Interrupts the chronometer and resets to zero.
 
virtual void pause ()
 Interrupts the chronometer.
 
virtual void resume ()
 Resumes process.
 
virtual void togglePause ()
 Toggles pause/unpause.
 

Protected Member Functions

void _stepPhase (float deltaTimeSecondsTimesFixed32Max)
 
virtual void _setPhase32 (q0_32u_t phase32)
 
virtual void _setRunning (bool isRunning)
 
void _randomPickNext ()
 

Protected Attributes

float _period
 
float _frequency
 
float _phaseShiftOrRandomFrequencyRatio = 0
 
q0_32u_t _phase32
 
bool _overflowed: 1
 
bool _isRunning: 1
 
bool _isForward: 1
 
bool _valueNeedsUpdate: 1
 
uint8_t _randomness: 4
 

Detailed Description

Triangle/sawtooth oscillator.

Constructor & Destructor Documentation

◆ AbstractOscillator()

pq::AbstractOscillator::AbstractOscillator ( float  period)

Constructor.

Parameters
periodthe period of oscillation (in seconds)

Member Function Documentation

◆ _setRunning()

void pq::AbstractOscillator::_setRunning ( bool  isRunning)
protectedvirtual

Implements pq::Timeable.

◆ addTime()

void pq::AbstractOscillator::addTime ( float  time)
virtual

Adds time to current time (in seconds).

Warning
This function is disabled if randomness() > 0.

Implements pq::Timeable.

◆ bpm()

void pq::AbstractOscillator::bpm ( float  bpm)
virtual

Sets the frequency in beats-per-minute.

Parameters
bpmthe frequency of oscillation (in BPM)

◆ frequency()

void pq::AbstractOscillator::frequency ( float  frequency)
virtual

Sets the frequency (in Hz).

Parameters
frequencythe frequency of oscillation (in Hz)

◆ isRunning()

virtual bool pq::AbstractOscillator::isRunning ( ) const
inlinevirtual

Returns true iff the wave is currently running.

Implements pq::Timeable.

◆ pause()

void pq::Timeable::pause ( )
virtualinherited

Interrupts the chronometer.

Reimplemented in pq::AbstractChronometer.

◆ period()

void pq::AbstractOscillator::period ( float  period)
virtual

Sets the period (in seconds).

Parameters
periodthe period of oscillation (in seconds)

◆ phase()

void pq::AbstractOscillator::phase ( float  phase)
virtual

Sets the phase at % of period.

Parameters
phasethe phase (in % of period)

◆ phaseShift() [1/2]

float pq::AbstractOscillator::phaseShift ( ) const
virtual

Returns the phase shift (ie.

the offset, in % of period).

Warning
This function always returns 0 when randomness() > 0.

◆ phaseShift() [2/2]

void pq::AbstractOscillator::phaseShift ( float  phaseShift)
virtual

Sets the phase shift (ie.

the offset, in % of period).

Parameters
phaseShiftthe phase shift (in % of period)
Warning
This function is disabled if randomness() > 0.

◆ resume()

void pq::Timeable::resume ( )
virtualinherited

Resumes process.

Reimplemented in pq::AbstractChronometer.

◆ setForward()

virtual void pq::AbstractOscillator::setForward ( bool  isForward)
inlinevirtual

Sets the direction of oscillation.

Parameters
isForwardtrue iff the wave is moving forward in time

◆ setTime()

void pq::AbstractOscillator::setTime ( float  time)
virtual

Forces current time (in seconds).

Warning
This function is disabled if randomness() > 0.

Implements pq::Timeable.

◆ start()

void pq::Timeable::start ( )
virtualinherited

Starts/restarts the chronometer.

Reimplemented in pq::AbstractTimer, and pq::Ramp.

◆ timeToPhase()

float pq::AbstractOscillator::timeToPhase ( float  time) const
virtual

Utility function to convert time to phase.

Parameters
timerelative time in seconds
Returns
the equivalent phase

The documentation for this class was generated from the following files: