1 | Function point structure definitions from instdsp.h Version 34 -- 1988-05-10
|
---|
2 | ------------------------------------ ---------------------------------------
|
---|
3 |
|
---|
4 | struct instpnt { /* function point definition */
|
---|
5 |
|
---|
6 | short iptim; /* time (packed) */
|
---|
7 | short ipval; /* value */
|
---|
8 | short ipvmlt; /* value multiplier */
|
---|
9 |
|
---|
10 | char ipvsrc; /* value source */
|
---|
11 | char ipact; /* action code */
|
---|
12 |
|
---|
13 | #define AC_NULL 0 /* null action */
|
---|
14 | #define AC_SUST 1 /* sustain (hold here while key is down) */
|
---|
15 | #define AC_ENBL 2 /* enable (hold here while key is up) */
|
---|
16 | #define AC_JUMP 3 /* unconditional (continuous) jump */
|
---|
17 | #define AC_LOOP 4 /* jump (loop) n times */
|
---|
18 | #define AC_KYUP 5 /* jump if key up (enable jump) */
|
---|
19 | #define AC_KYDN 6 /* jump if key down (sustain jump) */
|
---|
20 | #define AC_UNDF 7 /* -- undefined - treated as AC_NULL -- */
|
---|
21 |
|
---|
22 | char ippar1; /* action parameter 1 (point) */
|
---|
23 | char ippar2; /* action parameter 2 (count) */
|
---|
24 |
|
---|
25 | char ippar3; /* action parameter 3 (counter) */
|
---|
26 | char ippad; /* padding for even boundary */
|
---|
27 | };
|
---|
28 |
|
---|
29 | |
---|
30 |
|
---|
31 | Function header structure definitions
|
---|
32 | -------------------------------------
|
---|
33 |
|
---|
34 | struct idfnhdr { /* function header */
|
---|
35 |
|
---|
36 | short idfpch; /* pitch (used for freq1 only) */
|
---|
37 | short idfmlt; /* overall value multiplier (-1 .. +1) */
|
---|
38 |
|
---|
39 | char idfsrc; /* overall value source */
|
---|
40 | char idfpif; /* points in the function */
|
---|
41 |
|
---|
42 | char idfpt1; /* index of first point (0..NIPTS) */
|
---|
43 | char idftmd; /* trigger mode and control bits */
|
---|
44 |
|
---|
45 | #define I_TM_KEY 0x01 /* trigger on key closure */
|
---|
46 | #define I_ACTIVE 0x02 /* function active */
|
---|
47 | #define I_NRATIO 0x04 /* not ratio mode (matches hardware) */
|
---|
48 | #define I_NVBITS 0x18 /* new value select bits (matches hardware) */
|
---|
49 | #define I_VNSUBN 0x08 /* new value sub-n bit (matches hardware) */
|
---|
50 |
|
---|
51 | char idfcpt; /* index of current point (0..NIPTS) */
|
---|
52 | char idfprm; /* parameter associated with this function */
|
---|
53 |
|
---|
54 | short idftrg; /* trigger that started the function */
|
---|
55 | };
|
---|
56 |
|
---|
57 | |
---|
58 |
|
---|
59 | Instrument definition structure definitions
|
---|
60 | -------------------------------------------
|
---|
61 |
|
---|
62 | struct instdef { /* instrument definition */
|
---|
63 |
|
---|
64 | short idhflag; /* flags */
|
---|
65 |
|
---|
66 | char idhname[MAXIDLN+1]; /* instrument name */
|
---|
67 | char idhcom1[MAXIDLN+1]; /* first line of comments */
|
---|
68 | char idhcom2[MAXIDLN+1]; /* second line of comments */
|
---|
69 | char idhcom3[MAXIDLN+1]; /* third line of comments */
|
---|
70 |
|
---|
71 | char idhcfg; /* configuration byte */
|
---|
72 | char idhplft; /* points unused */
|
---|
73 |
|
---|
74 | char idhwsa; /* waveshape A library number */
|
---|
75 | char idhwsb; /* waveshape B library number */
|
---|
76 |
|
---|
77 | char idhos1c; /* oscillator 1 controls */
|
---|
78 | char idhos2c; /* oscillator 2 controls */
|
---|
79 | char idhos3c; /* oscillator 3 controls */
|
---|
80 | char idhos4c; /* oscillator 4 controls */
|
---|
81 |
|
---|
82 | #define OC_MOD 0x0003 /* oscillator mode mask */
|
---|
83 |
|
---|
84 | #define OC_INT 0x0000 /* oscillator in interval mode */
|
---|
85 | #define OC_RAT 0x0001 /* oscillator in ratio mode */
|
---|
86 | #define OC_FRQ 0x0002 /* oscillator in frequency mode */
|
---|
87 | #define OC_PCH 0x0003 /* oscillator in pitch mode */
|
---|
88 |
|
---|
89 | #define OC_SYN 0x0004 /* oscillator in sync mode */
|
---|
90 |
|
---|
91 | short idhos1v; /* oscillator 1 value */
|
---|
92 | short idhos2v; /* oscillator 2 value */
|
---|
93 | short idhos3v; /* oscillator 3 value */
|
---|
94 | short idhos4v; /* oscillator 4 value */
|
---|
95 |
|
---|
96 | struct idfnhdr idhfnc[NFINST]; /* function headers */
|
---|
97 |
|
---|
98 | struct instpnt idhpnt[NIPNTS]; /* point table */
|
---|
99 |
|
---|
100 | short idhwvaf[NUMWPNT]; /* waveshape A final values */
|
---|
101 | short idhwvao[NUMWPNT]; /* waveshape A offset values */
|
---|
102 | short idhwvah[NUMHARM]; /* waveshape A harmonic values */
|
---|
103 |
|
---|
104 | short idhwvbf[NUMWPNT]; /* waveshape B final values */
|
---|
105 | short idhwvbo[NUMWPNT]; /* waveshape B offset values */
|
---|
106 | short idhwvbh[NUMHARM]; /* waveshape B harmonic values */
|
---|
107 |
|
---|
108 | };
|
---|