Files
stk/include/Reverb.h
Gary Scavone 81475b04c5 Version 4.0
2013-09-29 23:04:45 +02:00

59 lines
1.4 KiB
C++

/***************************************************/
/*! \class Reverb
\brief STK abstract reverberator parent class.
This class provides common functionality for
STK reverberator subclasses.
by Perry R. Cook and Gary P. Scavone, 1995 - 2002.
*/
/***************************************************/
#include "Stk.h"
#if !defined(__REVERB_H)
#define __REVERB_H
class Reverb : public Stk
{
public:
//! Class constructor.
Reverb();
//! Class destructor.
virtual ~Reverb();
//! Reset and clear all internal state.
virtual void clear() = 0;
//! Set the mixture of input and "reverberated" levels in the output (0.0 = input only, 1.0 = reverb only).
void setEffectMix(MY_FLOAT mix);
//! Return the last output value.
MY_FLOAT lastOut() const;
//! Return the last left output value.
MY_FLOAT lastOutLeft() const;
//! Return the last right output value.
MY_FLOAT lastOutRight() const;
//! Abstract tick function ... must be implemented in subclasses.
virtual MY_FLOAT tick(MY_FLOAT input) = 0;
//! Take \e vectorSize inputs, compute the same number of outputs and return them in \e vector.
virtual MY_FLOAT *tick(MY_FLOAT *vector, unsigned int vectorSize);
protected:
// Returns true if argument value is prime.
bool isPrime(int number);
MY_FLOAT lastOutput[2];
MY_FLOAT effectMix;
};
#endif // defined(__REVERB_H)