~ubuntu-branches/ubuntu/karmic/muse/karmic-proposed

« back to all changes in this revision

Viewing changes to synti/stklib/NRev.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
/*  NRev Reverb Subclass                  */
 
3
/*  by Tim Stilson, 1998                  */
 
4
/*    based on CLM NRev                   */
 
5
/*  Integrated into STK by Gary Scavone   */
 
6
/*                                        */
 
7
/*  This is based on some of the famous   */
 
8
/*  Stanford CCRMA reverbs (NRev, KipRev) */
 
9
/*  all based on the the Chowning/Moorer/ */
 
10
/*  Schroeder reverberators, which use    */
 
11
/*  networks of simple allpass and comb   */
 
12
/*  delay filters.  This particular       */
 
13
/*  arrangement consists of 6 comb        */
 
14
/*  filters in parallel, followed by 3    */
 
15
/*  allpass filters, a lowpass filter,    */
 
16
/*  and another allpass in series,        */
 
17
/*  followed by two allpass filters in    */
 
18
/*  parallel with corresponding right and */
 
19
/*  left outputs.                         */
 
20
/******************************************/
 
21
 
 
22
#if !defined(__NRev_h)
 
23
#define __NRev_h
 
24
 
 
25
#include "Object.h" 
 
26
#include "Reverb.h" 
 
27
#include "DLineN.h" 
 
28
 
 
29
class NRev : public Reverb
 
30
{
 
31
  protected:  
 
32
    DLineN *APdelayLine[8];
 
33
    DLineN *CdelayLine[6];
 
34
    MY_FLOAT allPassCoeff;
 
35
    MY_FLOAT combCoef[6];
 
36
        MY_FLOAT lpLastout;
 
37
    MY_FLOAT lastOutL;
 
38
    MY_FLOAT lastOutR;
 
39
    MY_FLOAT effectMix;
 
40
  public:
 
41
    NRev(MY_FLOAT T60);
 
42
    ~NRev();
 
43
    void clear();
 
44
    void setEffectMix(MY_FLOAT mix);
 
45
    MY_FLOAT lastOutput();
 
46
    MY_FLOAT lastOutputL();
 
47
    MY_FLOAT lastOutputR();
 
48
    MY_FLOAT tick(MY_FLOAT input);
 
49
};
 
50
 
 
51
#endif
 
52