The Synthesis ToolKit in C++ (STK)

Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial

Effect.h
1 #ifndef STK_EFFECT_H
2 #define STK_EFFECT_H
3
4 #include "Stk.h"
5 #include <cmath>
6
7 namespace stk {
8
9 /***************************************************/
19 /***************************************************/
20
21 class Effect : public Stk
22 {
23 public:
25 Effect( void ) { lastFrame_.resize( 1, 1, 0.0 ); };
26
28 unsigned int channelsOut( void ) const { return lastFrame_.channels(); };
29
31 const StkFrames& lastFrame( void ) const { return lastFrame_; };
32
34 virtual void clear() = 0;
35
37 virtual void setEffectMix( StkFloat mix );
38
39 protected:
40
41 // Returns true if argument value is prime.
42 bool isPrime( unsigned int number );
43
44 StkFrames lastFrame_;
45 StkFloat effectMix_;
46
47 };
48
49 inline void Effect :: setEffectMix( StkFloat mix )
50 {
51 if ( mix < 0.0 ) {
52 oStream_ << "Effect::setEffectMix: mix parameter is less than zero ... setting to zero!";
53 handleError( StkError::WARNING );
54 effectMix_ = 0.0;
55 }
56 else if ( mix > 1.0 ) {
57 oStream_ << "Effect::setEffectMix: mix parameter is greater than 1.0 ... setting to one!";
58 handleError( StkError::WARNING );
59 effectMix_ = 1.0;
60 }
61 else
62 effectMix_ = mix;
63 }
64
65 inline bool Effect :: isPrime( unsigned int number )
66 {
67 if ( number == 2 ) return true;
68 if ( number & 1 ) {
69 for ( int i=3; i<(int)sqrt((double)number)+1; i+=2 )
70 if ( (number % i) == 0 ) return false;
71 return true; // prime
72 }
73 else return false; // even
74 }
75
76 } // stk namespace
77
78 #endif
79
stk::Stk::handleError
static void handleError(const char *message, StkError::Type type)
Static function for error reporting and handling using c-strings.
stk::Effect::channelsOut
unsigned int channelsOut(void) const
Return the number of output channels for the class.
Definition: Effect.h:28
stk::Effect::Effect
Effect(void)
Class constructor.
Definition: Effect.h:25
stk
The STK namespace.
Definition: ADSR.h:6
stk::StkFrames::resize
void resize(size_t nFrames, unsigned int nChannels=1)
Resize self to represent the specified number of channels and frames.
stk::Stk
STK base class.
Definition: Stk.h:132
stk::Effect
STK abstract effects parent class.
Definition: Effect.h:21
stk::Effect::clear
virtual void clear()=0
Reset and clear all internal state.
stk::Effect::lastFrame
const StkFrames & lastFrame(void) const
Return an StkFrames reference to the last output sample frame.
Definition: Effect.h:31
stk::StkFrames::channels
unsigned int channels(void) const
Return the number of channels represented by the data.
Definition: Stk.h:404
stk::StkFrames
An STK class to handle vectorized audio data.
Definition: Stk.h:275
stk::Effect::setEffectMix
virtual void setEffectMix(StkFloat mix)
Set the mixture of input and "effected" levels in the output (0.0 = input only, 1....
Definition: Effect.h:49

The Synthesis ToolKit in C++ (STK)
©1995--2019 Perry R. Cook and Gary P. Scavone. All Rights Reserved.