diff options
author | Steve M. Robbins <smr@debian.org> | 2011-10-22 04:54:51 +0200 |
---|---|---|
committer | Steve M. Robbins <smr@debian.org> | 2011-10-22 04:54:51 +0200 |
commit | dd657ad3f1428b026486db3ec36691df17ddf515 (patch) | |
tree | 6ffb465595479fb5a76c1a6ea3ec992abaa8c1c1 /nyqstk/include/PitShift.h |
Import nyquist_3.05.orig.tar.gz
[dgit import orig nyquist_3.05.orig.tar.gz]
Diffstat (limited to 'nyqstk/include/PitShift.h')
-rw-r--r-- | nyqstk/include/PitShift.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/nyqstk/include/PitShift.h b/nyqstk/include/PitShift.h new file mode 100644 index 0000000..775b8e2 --- /dev/null +++ b/nyqstk/include/PitShift.h @@ -0,0 +1,52 @@ +/***************************************************/ +/*! \class PitShift + \brief STK simple pitch shifter effect class. + + This class implements a simple pitch shifter + using delay lines. + + by Perry R. Cook and Gary P. Scavone, 1995 - 2005. +*/ +/***************************************************/ + +#ifndef STK_PITSHIFT_H +#define STK_PITSHIFT_H + +#include "Effect.h" +#include "DelayL.h" + +namespace Nyq +{ + +class PitShift : public Effect +{ + public: + //! Class constructor. + PitShift(); + + //! Class destructor. + ~PitShift(); + + //! Reset and clear all internal state. + void clear(); + + //! Set the pitch shift factor (1.0 produces no shift). + void setShift(StkFloat shift); + + protected: + + StkFloat computeSample( StkFloat input ); + + DelayL delayLine_[2]; + StkFloat delay_[2]; + StkFloat env_[2]; + StkFloat rate_; + unsigned long delayLength; + unsigned long halfLength; + +}; + +} // namespace Nyq + +#endif + |