Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial
STK resonance model abstract base class. More...
#include <Modal.h>
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. |
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-2011.
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.
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 Synthesis ToolKit in C++ (STK) |
©1995-2011 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |