chorus.cpp

来自「Mobile STK for Symbian OS V0.1」· C++ 代码 · 共 64 行

CPP
64
字号
/***************************************************//*! \class Chorus    \brief STK chorus effect class.    This class implements a chorus effect.    by Perry R. Cook and Gary P. Scavone, 1995 - 2005.*//***************************************************/#include "Chorus.h"#if !defined(SYMBIAN)#include <iostream>#endifChorus :: Chorus(StkFloat baseDelay){  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();}Chorus :: ~Chorus(){}void Chorus :: clear(){  delayLine_[0].clear();  delayLine_[1].clear();  lastOutput_[0] = 0.0;  lastOutput_[1] = 0.0;}void Chorus :: setModDepth(StkFloat depth){  modDepth_ = depth;}void Chorus :: setModFrequency(StkFloat frequency){  mods_[0].setFrequency(frequency);  mods_[1].setFrequency(frequency * 1.1111);}StkFloat Chorus :: computeSample(StkFloat input){  delayLine_[0].setDelay( baseLength_ * 0.707 * (1.0 + modDepth_ * mods_[0].tick()) );  delayLine_[1].setDelay( baseLength_  * 0.5 *  (1.0 - modDepth_ * mods_[1].tick()) );  lastOutput_[0] = input * (1.0 - effectMix_);  lastOutput_[0] += effectMix_ * delayLine_[0].tick(input);  lastOutput_[1] = input * (1.0 - effectMix_);  lastOutput_[1] += effectMix_ * delayLine_[1].tick(input);  return Effect::lastOut();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?