~ubuntu-branches/ubuntu/feisty/muse/feisty

« back to all changes in this revision

Viewing changes to synti/stklib/Plucked.h

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Kobras
  • Date: 2002-04-23 17:28:23 UTC
  • Revision ID: james.westby@ubuntu.com-20020423172823-w8yplzr81a759xa3
Tags: upstream-0.5.2
ImportĀ upstreamĀ versionĀ 0.5.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/******************************************/  
 
2
/*  Karplus-Strong plucked string model   */
 
3
/*  by Perry Cook, 1995-96                */
 
4
/*                                        */
 
5
/*  There exist at least two patents,     */
 
6
/*  assigned to Stanford, bearing the     */
 
7
/*  names of Karplus and/or Strong.       */
 
8
/******************************************/
 
9
 
 
10
#if !defined(__Plucked_h)
 
11
#define __Plucked_h
 
12
 
 
13
#include "Instrmnt.h" 
 
14
#include "DLineA.h" 
 
15
#include "OneZero.h" 
 
16
#include "OnePole.h" 
 
17
#include "Noise.h" 
 
18
 
 
19
class Plucked : public Instrmnt
 
20
{
 
21
  protected:  
 
22
    DLineA *delayLine;
 
23
    OneZero *loopFilt;
 
24
    OnePole *pickFilt;
 
25
    Noise *noise;
 
26
    long length;
 
27
    MY_FLOAT loopGain;
 
28
  public:
 
29
    Plucked(MY_FLOAT lowestFreq);
 
30
    ~Plucked();
 
31
    void clear();
 
32
    virtual void setFreq(MY_FLOAT frequency);
 
33
    void pluck(MY_FLOAT amplitude);
 
34
    virtual void noteOn(MY_FLOAT freq, MY_FLOAT amp);
 
35
    virtual void noteOff(MY_FLOAT amp);
 
36
    virtual MY_FLOAT tick();
 
37
};
 
38
 
 
39
#endif
 
40