source: buchla-68k/orig/DOC/INSTDEF.TXT

Last change on this file was 3ae31e9, checked in by Thomas Lopatic <thomas@…>, 7 years ago

Imported original source code.

  • Property mode set to 100755
File size: 3.6 KB
Line 
1Function point structure definitions from instdsp.h Version 34 -- 1988-05-10
2------------------------------------ ---------------------------------------
3
4struct 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
31Function header structure definitions
32-------------------------------------
33
34struct 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
59Instrument definition structure definitions
60-------------------------------------------
61
62struct 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};
Note: See TracBrowser for help on using the repository browser.