diff options
Diffstat (limited to 'stksitar~/sitar.h')
-rw-r--r-- | stksitar~/sitar.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/stksitar~/sitar.h b/stksitar~/sitar.h new file mode 100644 index 0000000..d787211 --- /dev/null +++ b/stksitar~/sitar.h @@ -0,0 +1,44 @@ +/******************************************/ +/* Karplus-Strong Sitar1 string model */ +/* by Perry Cook, 1995-96 */ +/* */ +/* There exist at least two patents, */ +/* assigned to Stanford, bearing the */ +/* names of Karplus and/or Strong. */ +/******************************************/ + +#if !defined(__sitar_h) +#define __sitar_h + +#include "Instrmnt.h" +#include "DLineA.h" +#include "OneZero.h" +#include "ADSR.h" +#include "Noise.h" +#include "Object.h" + +class sitar : public Instrmnt +{ +protected: + DLineA *delayLine; + OneZero *loopFilt; + ADSR *envelope; + Noise *noise; + long length; + MY_FLOAT loopGain; + MY_FLOAT amPluck; + MY_FLOAT delay; + MY_FLOAT delayTarg; +public: + sitar(MY_FLOAT lowestFreq); + ~sitar(); + void clear(); + virtual void setFreq(MY_FLOAT frequency); + void pluck(MY_FLOAT amplitude); + virtual void noteOn(MY_FLOAT freq, MY_FLOAT amp); + virtual void noteOff(MY_FLOAT amp); + virtual MY_FLOAT tick(); +}; + +#endif + |