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:

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.
StkFrames & | tick (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:

- SineWave.h

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