|
- /***************************************************/
- /*! \class Chorus
- \brief STK chorus effect class.
-
- This class implements a chorus effect. It takes a monophonic
- input signal and produces a stereo output signal.
-
- by Perry R. Cook and Gary P. Scavone, 1995--2017.
- */
- /***************************************************/
-
- #include "Chorus.h"
-
- namespace stk {
-
- Chorus :: Chorus( StkFloat baseDelay )
- {
- lastFrame_.resize( 1, 2, 0.0 ); // resize lastFrame_ for stereo output
- delayLine_[0].setMaximumDelay( (unsigned long) (baseDelay * 1.414) + 2);
- delayLine_[0].setDelay( baseDelay );
- delayLine_[1].setMaximumDelay( (unsigned long) (baseDelay * 1.414) + 2);
- delayLine_[1].setDelay( baseDelay );
- baseLength_ = baseDelay;
-
- mods_[0].setFrequency( 0.2 );
- mods_[1].setFrequency( 0.222222 );
- modDepth_ = 0.05;
- effectMix_ = 0.5;
- this->clear();
- }
-
- void Chorus :: clear( void )
- {
- delayLine_[0].clear();
- delayLine_[1].clear();
- lastFrame_[0] = 0.0;
- lastFrame_[1] = 0.0;
- }
-
- void Chorus :: setModDepth( StkFloat depth )
- {
- if ( depth < 0.0 || depth > 1.0 ) {
- oStream_ << "Chorus::setModDepth(): depth argument must be between 0.0 - 1.0!";
- handleError( StkError::WARNING ); return;
- }
-
- modDepth_ = depth;
- };
-
- void Chorus :: setModFrequency( StkFloat frequency )
- {
- mods_[0].setFrequency( frequency );
- mods_[1].setFrequency( frequency * 1.1111 );
- }
-
- } // stk namespace
|