blob: c5f7a0d6ac6810e6ad839f79ce929ccde37a8817 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
/******************************************/
/* Karplus-Strong drone 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(__drone_h)
#define __drone_h
#include "Instrmnt.h"
#include "DLineA.h"
#include "OneZero.h"
#include "ADSR.h"
#include "Noise.h"
class drone : public Instrmnt
{
protected:
DLineA *delayLine;
ADSR *envelope;
Noise *noise;
OneZero *loopFilt;
long length;
MY_FLOAT loopGain;
public:
drone(MY_FLOAT lowestFreq);
~drone();
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
|