[3ae31e9] | 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 | };
|
---|