1 /* $Id: nsynth.h,v 1.11 1994/11/08 13:30:50 a904209 Exp a904209 $
2 */
3 #define CASCADE_PARALLEL      1
4 #define ALL_PARALLEL          2
5 #define NPAR                 40
6 #define IMPULSIVE             1
7 #define NATURAL               2
8 #ifndef PI
9 #define PI            3.1415927
10 #endif
11 
12 #ifndef TRUE
13 #define TRUE                  1
14 #endif
15 
16 #ifndef FALSE
17 #define FALSE                 0
18 #endif
19 
20 typedef struct
21  {
22   long F0hz10;            /* Voicing fund freq in Hz                          */
23   long AVdb;              /* Amp of voicing in dB,            0 to   70       */
24   long F1hz;              /* First formant freq in Hz,        200 to 1300     */
25   long B1hz;              /* First formant bw in Hz,          40 to 1000      */
26   long F2hz;              /* Second formant freq in Hz,       550 to 3000     */
27   long B2hz;              /* Second formant bw in Hz,         40 to 1000      */
28   long F3hz;              /* Third formant freq in Hz,        1200 to 4999    */
29   long B3hz;              /* Third formant bw in Hz,          40 to 1000      */
30   long F4hz;              /* Fourth formant freq in Hz,       1200 to 4999    */
31   long B4hz;              /* Fourth formant bw in Hz,         40 to 1000      */
32   long F5hz;              /* Fifth formant freq in Hz,        1200 to 4999    */
33   long B5hz;              /* Fifth formant bw in Hz,          40 to 1000      */
34   long F6hz;              /* Sixth formant freq in Hz,        1200 to 4999    */
35   long B6hz;              /* Sixth formant bw in Hz,          40 to 2000      */
36   long FNZhz;             /* Nasal zero freq in Hz,           248 to  528     */
37   long BNZhz;             /* Nasal zero bw in Hz,             40 to 1000      */
38   long FNPhz;             /* Nasal pole freq in Hz,           248 to  528     */
39   long BNPhz;             /* Nasal pole bw in Hz,             40 to 1000      */
40   long ASP;               /* Amp of aspiration in dB,         0 to   70       */
41   long Kopen;             /* # of samples in open period,     10 to   65      */
42   long Aturb;             /* Breathiness in voicing,          0 to   80       */
43   long TLTdb;             /* Voicing spectral tilt in dB,     0 to   24       */
44   long AF;                /* Amp of frication in dB,          0 to   80       */
45   long Kskew;             /* Skewness of alternate periods,   0 to   40 in sample#/2  */
46   long A1;                /* Amp of par 1st formant in dB,    0 to   80       */
47   long B1phz;             /* Par. 1st formant bw in Hz,       40 to 1000      */
48   long A2;                /* Amp of F2 frication in dB,       0 to   80       */
49   long B2phz;             /* Par. 2nd formant bw in Hz,       40 to 1000      */
50   long A3;                /* Amp of F3 frication in dB,       0 to   80       */
51   long B3phz;             /* Par. 3rd formant bw in Hz,       40 to 1000      */
52   long A4;                /* Amp of F4 frication in dB,       0 to   80       */
53   long B4phz;             /* Par. 4th formant bw in Hz,       40 to 1000      */
54   long A5;                /* Amp of F5 frication in dB,       0 to   80       */
55   long B5phz;             /* Par. 5th formant bw in Hz,       40 to 1000      */
56   long A6;                /* Amp of F6 (same as r6pa),        0 to   80       */
57   long B6phz;             /* Par. 6th formant bw in Hz,       40 to 2000      */
58   long ANP;               /* Amp of par nasal pole in dB,     0 to   80       */
59   long AB;                /* Amp of bypass fric. in dB,       0 to   80       */
60   long AVpdb;             /* Amp of voicing,  par in dB,      0 to   70       */
61   long Gain0;             /* Overall gain, 60 dB is unity,    0 to   60       */
62  } klatt_frame_t, *klatt_frame_ptr;
63 
64 extern klatt_frame_t def_pars;
65 
66 typedef struct
67  {
68   int  synthesis_model;
69   int  quiet_flag;
70   int  f0_flutter;
71   int  outsl;
72   long samrate;
73   long nfcascade;
74   long glsource;
75   long nspfr;
76  } klatt_global_t, *klatt_global_ptr;
77 
78 extern klatt_global_t klatt_global;
79 
80 extern void parwave  PROTO((klatt_global_ptr, klatt_frame_ptr pars,short int *jwave));
81 extern void parwave_init  PROTO((klatt_global_ptr));
82 extern void pr_pars PROTO((void));
83 extern int  init_synth PROTO((int argc,char *argv[]));
84 
85