summaryrefslogtreecommitdiff
path: root/nyqstk/include/PitShift.h
diff options
context:
space:
mode:
authorSteve M. Robbins <smr@debian.org>2011-10-22 04:54:51 +0200
committerSteve M. Robbins <smr@debian.org>2011-10-22 04:54:51 +0200
commitdd657ad3f1428b026486db3ec36691df17ddf515 (patch)
tree6ffb465595479fb5a76c1a6ea3ec992abaa8c1c1 /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.h52
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
+