]> git.rkrishnan.org Git - dttsp.git/blob - jDttSP/spottone.h
1b46240fec2d156f9b8ae5f21737c51e1e4be5ce
[dttsp.git] / jDttSP / spottone.h
1 /* spottone.h */
2
3 #ifndef _spottone_h
4 #define _spottone_h
5
6 #include <fromsys.h>
7 #include <banal.h>
8 #include <datatypes.h>
9 #include <bufvec.h>
10 #include <cxops.h>
11 #include <oscillator.h>
12
13 #define SpotTone_IDLE (0)
14 #define SpotTone_WAIT (1)
15 #define SpotTone_RISE (2)
16 #define SpotTone_STDY (3)
17 #define SpotTone_FALL (4)
18 #define SpotTone_HOLD (5)
19
20 typedef struct _spot_tone_gen {
21   REAL curr, gain, mul, scl, sr;
22   struct {
23     REAL freq;
24     OSC gen;
25   } osc;
26   struct {
27     REAL dur, incr;
28     int want, have;
29   } rise, fall;
30   int size, stage;
31   CXB buf;
32 } SpotToneGenDesc, *SpotToneGen;
33
34 extern SpotToneGen newSpotToneGen(REAL gain,    // dB
35                                   REAL freq,    // Hz
36                                   REAL rise,    // msec
37                                   REAL fall,    // msec
38                                   int size,     // buflen
39                                   REAL samplerate);
40 extern void delSpotToneGen(SpotToneGen gen);
41 extern void setSpotToneGenVals(SpotToneGen gen,
42                                REAL gain,
43                                REAL freq,
44                                REAL rise,
45                                REAL fall);
46 extern void SpotToneOn(SpotToneGen gen);
47 extern void SpotToneOff(SpotToneGen gen);
48 extern BOOLEAN SpotTone(SpotToneGen gen);
49
50 #endif