Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   FAQ   Tutorial


stk::SineWave Class Reference

STK sinusoid oscillator class. More...

#include <SineWave.h>

Inheritance diagram for stk::SineWave:
stk::Generator stk::Stk

List of all members.

Public Member Functions

 SineWave (void)
 Default constructor.
 ~SineWave (void)
 Class destructor.
void reset (void)
 Clear output and reset time pointer to zero.
void setRate (StkFloat rate)
 Set the data read rate in samples. The rate can be negative.
void setFrequency (StkFloat frequency)
 Set the data interpolation rate based on a looping frequency.
void addTime (StkFloat time)
 Increment the read pointer by time in samples, modulo the table size.
void addPhase (StkFloat phase)
 Increment the read pointer by a normalized phase value.
void addPhaseOffset (StkFloat phaseOffset)
 Add a normalized phase offset to the read pointer.
StkFloat lastOut (void) const
 Return the last computed output value.
StkFloat tick (void)
 Compute and return one output sample.
StkFramestick (StkFrames &frames, unsigned int channel=0)
 Fill a channel of the StkFrames object with computed outputs.

Detailed Description

STK sinusoid oscillator class.

This class computes and saves a static sine "table" that can be shared by multiple instances. It has an interface similar to the WaveLoop class but inherits from the Generator class. Output values are computed using linear interpolation.

The "table" length, set in SineWave.h, is 2048 samples by default.

by Perry R. Cook and Gary P. Scavone, 1995 - 2007.


Member Function Documentation

void stk::SineWave::setRate ( StkFloat  rate  )  [inline]

Set the data read rate in samples. The rate can be negative.

If the rate value is negative, the data is read in reverse order.

void stk::SineWave::setFrequency ( StkFloat  frequency  ) 

Set the data interpolation rate based on a looping frequency.

This function determines the interpolation rate based on the file size and the current Stk::sampleRate. The frequency value corresponds to file cycles per second. The frequency can be negative, in which case the loop is read in reverse order.

void stk::SineWave::addPhase ( StkFloat  phase  ) 

Increment the read pointer by a normalized phase value.

This function increments the read pointer by a normalized phase value, such that phase = 1.0 corresponds to a 360 degree phase shift. Positive or negative values are possible.

void stk::SineWave::addPhaseOffset ( StkFloat  phaseOffset  ) 

Add a normalized phase offset to the read pointer.

A phaseOffset = 1.0 corresponds to a 360 degree phase offset. Positive or negative values are possible.

StkFrames & stk::SineWave::tick ( StkFrames frames,
unsigned int  channel = 0 
) [inline, virtual]

Fill a channel of the StkFrames object with computed outputs.

The channel argument must be less than the number of channels in the StkFrames argument (the first channel is specified by 0). However, range checking is only performed if _STK_DEBUG_ is defined during compilation, in which case an out-of-range value will trigger an StkError exception.

Implements stk::Generator.


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

The Synthesis ToolKit in C++ (STK)
©1995-2010 Perry R. Cook and Gary P. Scavone. All Rights Reserved.