📄 echo.cpp
字号:
/***************************************************//*! \class Echo \brief STK echo effect class. This class implements an echo effect. by Perry R. Cook and Gary P. Scavone, 1995 - 2005.*//***************************************************/#include "Echo.h"#if !defined(SYMBIAN)#include <iostream>#endifEcho :: Echo( unsigned long maximumDelay ) : Effect(){ this->setMaximumDelay( maximumDelay ); delayLine_.setDelay( length_ >> 1 ); effectMix_ = 0.5; this->clear();}Echo :: ~Echo(){}void Echo :: clear(){ delayLine_.clear(); lastOutput_[0] = 0.0; lastOutput_[1] = 0.0;}void Echo :: setMaximumDelay( unsigned long delay ){ length_ = delay; if ( delay == 0 ) {#if !defined(SYMBIAN) errorString_ << "Echo::setMaximumDelay: parameter cannot be zero ... setting to 10!"; handleError( StkError::WARNING );#endif length_ = 10; } delayLine_.setMaximumDelay( length_ );}void Echo :: setDelay( unsigned long delay ){ unsigned long size = delay; if ( delay > length_ ) {#if !defined(SYMBIAN) errorString_ << "Echo::setDelay: parameter is greater than maximum delay length ... setting to max!"; handleError( StkError::WARNING );#endif size = length_; } delayLine_.setDelay( size );}StkFloat Echo :: computeSample(StkFloat input){ lastOutput_[0] = effectMix_ * delayLine_.tick(input); lastOutput_[0] += input * (1.0 - effectMix_); lastOutput_[1] = lastOutput_[0]; return lastOutput_[0];}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -