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

#include <SquareWave.h>

Inheritance diagram for pq::SquareWave:
Collaboration diagram for pq::SquareWave:

Public Member Functions

 SquareWave (Engine &engine=Engine::primary())
 Constructor.
 
 SquareWave (float period, Engine &engine=Engine::primary())
 Constructor.
 
 SquareWave (float period, float skew, Engine &engine=Engine::primary())
 Constructor.
 
virtual void dutyCycle (float dutyCycle)
 
virtual float dutyCycle () const
 
virtual float get ()
 Returns value in [0, 1].
 
virtual float shiftBy (float phaseShift)
 Returns oscillator's value with given phase shift (in % of period).
 
virtual float shiftByTime (float timeShift)
 Returns oscillator's value with given phase shift expressed in time (in seconds).
 
virtual float atPhase (float phase)
 Returns the oscillator's value at a given absolute phase (in % of period).
 
virtual void amplitude (float amplitude)
 Sets the amplitude of the wave.
 
virtual float amplitude () const
 Returns the amplitude of the wave.
 
virtual void skew (float skew)
 Sets the skew of the signal as a % of period.
 
virtual float skew () const
 Returns the skew of the signal.
 
virtual void width (float width)
 
virtual float width () const
 
virtual void onBang (EventCallback callback)
 Registers event callback on wave end-of-period ("bang") event.
 
virtual float mapTo (float toLow, float toHigh)
 Maps value to new range.
 
virtual void clearEvents ()
 
float seconds () const
 Returns engine time in seconds.
 
uint32_t milliSeconds () const
 Returns engine time in milliseconds.
 
uint64_t microSeconds () const
 Returns engine time in microseconds.
 
unsigned long nSteps () const
 Returns number of engine steps.
 
float sampleRate () const
 Returns engine sample rate.
 
float samplePeriod () const
 Returns enginesample period.
 
 operator float ()
 Object can be used directly to access its value.
 
virtual float put (float value)
 Pushes value into the unit.
 
 operator bool ()
 Operator that allows usage in conditional expressions.
 
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.
 

Static Public Member Functions

static bool analogToDigital (float f)
 Converts analog (float) value to digital (bool) value.
 
static float digitalToAnalog (bool b)
 Converts digital (bool) value to analog (float) value.
 

Protected Member Functions

virtual void step ()
 
virtual q0_32u_t _getFixed32 (q0_32u_t t)
 Returns true iff an event of a certain type has been triggered.
 
virtual void begin ()
 
virtual bool eventTriggered (EventType eventType)
 Returns true iff an event of a certain type has been triggered.
 
virtual float _getAmplified (q0_32u_t t)
 
virtual void onEvent (EventCallback callback, EventType eventType)
 Registers event callback.
 
Engineengine () const
 Returns the engine that owns this unit.
 
void _stepPhase (float deltaTimeSecondsTimesFixed32Max)
 
virtual void _setPhase32 (q0_32u_t phase32)
 
virtual void _setRunning (bool isRunning)
 
void _randomPickNext ()
 

Protected Attributes

bool _onValue = false
 
q0_32u_t _amplitude
 
q0_32u_t _skew32
 
float _value
 
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

Deprecated:
Square oscillator. Duty cycle is expressed as % of period.

Constructor & Destructor Documentation

◆ SquareWave() [1/3]

pq::SquareWave::SquareWave ( Engine engine = Engine::primary())

Constructor.

Parameters
enginethe engine running this unit

◆ SquareWave() [2/3]

pq::SquareWave::SquareWave ( float  period,
Engine engine = Engine::primary() 
)

Constructor.

Parameters
periodthe period of oscillation (in seconds)
enginethe engine running this unit

◆ SquareWave() [3/3]

pq::SquareWave::SquareWave ( float  period,
float  skew,
Engine engine = Engine::primary() 
)

Constructor.

Parameters
periodthe period of oscillation (in seconds)
skewthe duty-cycle as a value in [0, 1]
enginethe engine running this unit

Member Function Documentation

◆ _getFixed32()

q0_32u_t pq::SquareWave::_getFixed32 ( q0_32u_t  t)
protectedvirtual

Returns true iff an event of a certain type has been triggered.

Implements pq::AbstractWave.

◆ _setRunning()

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

Implements pq::Timeable.

◆ addTime()

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

Adds time to current time (in seconds).

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

Implements pq::Timeable.

◆ amplitude()

void pq::AbstractWave::amplitude ( float  amplitude)
virtualinherited

Sets the amplitude of the wave.

Parameters
amplitudea value in [0, 1] that determines the amplitude of the wave (centered at 0.5).

◆ atPhase()

float pq::AbstractWave::atPhase ( float  phase)
virtualinherited

Returns the oscillator's value at a given absolute phase (in % of period).

Supports values outside [0,1], which will be wrapped accordingly. Eg: atPhase(0.25) returns the oscillator value at 25% of its period.

Parameters
phasethe absolute phase at which to evaluate the oscillator (in % of period)
Returns
the value of the oscillator at the given phase

◆ begin()

void pq::AbstractWave::begin ( )
protectedvirtualinherited

Reimplemented from pq::Unit.

◆ bpm()

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

Sets the frequency in beats-per-minute.

Parameters
bpmthe frequency of oscillation (in BPM)

◆ dutyCycle() [1/2]

virtual float pq::SquareWave::dutyCycle ( ) const
inlinevirtual

◆ dutyCycle() [2/2]

virtual void pq::SquareWave::dutyCycle ( float  dutyCycle)
inlinevirtual

◆ eventTriggered()

bool pq::AbstractWave::eventTriggered ( EventType  eventType)
protectedvirtualinherited

Returns true iff an event of a certain type has been triggered.

Reimplemented from pq::Unit.

◆ frequency()

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

Sets the frequency (in Hz).

Parameters
frequencythe frequency of oscillation (in Hz)

◆ get()

float pq::AbstractWave::get ( )
virtualinherited

Returns value in [0, 1].

Reimplemented from pq::AnalogSource.

◆ isRunning()

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

Returns true iff the wave is currently running.

Implements pq::Timeable.

◆ mapTo()

virtual float pq::AnalogSource::mapTo ( float  toLow,
float  toHigh 
)
inlinevirtualinherited

Maps value to new range.

Reimplemented from pq::Chainable.

Reimplemented in pq::Normalizer, pq::StreamIn, and pq::StreamOut.

◆ pause()

void pq::Timeable::pause ( )
virtualinherited

Interrupts the chronometer.

Reimplemented in pq::AbstractChronometer.

◆ period()

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

Sets the period (in seconds).

Parameters
periodthe period of oscillation (in seconds)

◆ phase()

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

Sets the phase at % of period.

Parameters
phasethe phase (in % of period)

◆ phaseShift() [1/2]

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

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)
virtualinherited

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.

◆ put()

virtual float pq::Chainable::put ( float  value)
inlinevirtualinherited

Pushes value into the unit.

Parameters
valuethe value sent to the unit
Returns
the new value of the unit

Reimplemented in pq::Chronometer, pq::MinMaxScaler, pq::Normalizer, pq::PeakDetector, pq::DigitalUnit, pq::AnalogOut, pq::AbstractServoOut, pq::Ramp, pq::Smoother, pq::StreamOut, pq::PivotField, and pq::TimeSliceField< COUNT >.

◆ resume()

void pq::Timeable::resume ( )
virtualinherited

Resumes process.

Reimplemented in pq::AbstractChronometer.

◆ setForward()

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

Sets the direction of oscillation.

Parameters
isForwardtrue iff the wave is moving forward in time

◆ setTime()

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

Forces current time (in seconds).

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

Implements pq::Timeable.

◆ shiftBy()

float pq::AbstractWave::shiftBy ( float  phaseShift)
virtualinherited

Returns oscillator's value with given phase shift (in % of period).

Supports values outside [0,1], which will be wrapped accordingly. Eg. shiftBy(0.2) returns future value of oscillator after 20% of its period would have passed.

Parameters
phaseShiftthe phase shift (in % of period)
Returns
the value of oscillator with given phase shift

◆ shiftByTime()

float pq::AbstractWave::shiftByTime ( float  timeShift)
virtualinherited

Returns oscillator's value with given phase shift expressed in time (in seconds).

Parameters
timeShiftthe shift in time (seconds)
Returns
the value of oscillator with time shift

◆ skew()

void pq::AbstractWave::skew ( float  skew)
virtualinherited

Sets the skew of the signal as a % of period.

Parameters
skewthe skew as a value in [0, 1]

◆ start()

void pq::Timeable::start ( )
virtualinherited

Starts/restarts the chronometer.

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

◆ step()

void pq::SquareWave::step ( )
protectedvirtual

Reimplemented from pq::AbstractWave.

◆ timeToPhase()

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

Utility function to convert time to phase.

Parameters
timerelative time in seconds
Returns
the equivalent phase

◆ width() [1/2]

virtual float pq::AbstractWave::width ( ) const
inlinevirtualinherited
Deprecated:
Returns the skew of the signal.

◆ width() [2/2]

virtual void pq::AbstractWave::width ( float  width)
inlinevirtualinherited
Deprecated:
Sets the width of the signal as a % of period.
Parameters
widththe skew as a value in [0, 1]

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