The Synthesis ToolKit in C++ (STK)

Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial

# stk::Modal Class Reference

STK resonance model abstract base class. More...

`#include <Modal.h>`

Inheritance diagram for stk::Modal:

List of all members.

## Public Member Functions
| Modal (unsigned int modes=4)
| Class constructor, taking the desired number of modes to create.
virtual | ~Modal (void)
| Class destructor.
void | clear (void)
| Reset and clear all internal state.
virtual void | setFrequency (StkFloat frequency)
| Set instrument parameters for a particular frequency.
void | setRatioAndRadius (unsigned int modeIndex, StkFloat ratio, StkFloat radius)
| Set the ratio and radius for a specified mode filter.
void | setMasterGain (StkFloat aGain)
| Set the master gain.
void | setDirectGain (StkFloat aGain)
| Set the direct gain.
void | setModeGain (unsigned int modeIndex, StkFloat gain)
| Set the gain for a specified mode filter.
virtual void | strike (StkFloat amplitude)
| Initiate a strike with the given amplitude (0.0 - 1.0).
void | damp (StkFloat amplitude)
| Damp modes with a given decay factor (0.0 - 1.0).
void | noteOn (StkFloat frequency, StkFloat amplitude)
| Start a note with the given frequency and amplitude.
void | noteOff (StkFloat amplitude)
| Stop a note with the given amplitude (speed of decay).
virtual void | controlChange (int number, StkFloat value)=0
| Perform the control change specified by number and value (0.0 - 128.0).
StkFloat | tick (unsigned int channel=0)
| 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 resonance model abstract base class.

This class contains an excitation wavetable, an envelope, an oscillator, and N resonances (non-sweeping BiQuad filters), where N is set during instantiation.

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

## Constructor & Destructor Documentation

stk::Modal::Modal | ( | unsigned int | modes = `4` | ) |

Class constructor, taking the desired number of modes to create.

An StkError will be thrown if the rawwave path is incorrectly set.

## Member Function Documentation

StkFrames & stk::Modal::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::Instrmnt.

    00126 {
    00127   unsigned int nChannels = lastFrame_.channels();
    00128 #if defined(_STK_DEBUG_)
    00129   if ( channel > frames.channels() - nChannels ) {
    00130     oStream_ << "Modal::tick(): channel and StkFrames arguments are incompatible!";
    00131     handleError( StkError::FUNCTION_ARGUMENT );
    00132   }
    00133 #endif
    00134
    00135   StkFloat *samples = &frames[channel];
    00136   unsigned int j, hop = frames.channels() - nChannels;
    00137   if ( nChannels == 1 ) {
    00138     for ( unsigned int i=0; i<frames.frames(); i++, samples += hop )
    00139       *samples++ = tick();
    00140   }
    00141   else {
    00142     for ( unsigned int i=0; i<frames.frames(); i++, samples += hop ) {
    00143       *samples++ = tick();
    00144       for ( j=1; j<nChannels; j++ )
    00145         *samples++ = lastFrame_[j];
    00146     }
    00147   }
    00148
    00149   return frames;
    00150 }

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

- Modal.h

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