1 /* 2 ugens1.h: 3 4 Copyright (C) 1991 Barry Vercoe, John ffitch 5 6 This file is part of Csound. 7 8 The Csound Library is free software; you can redistribute it 9 and/or modify it under the terms of the GNU Lesser General Public 10 License as published by the Free Software Foundation; either 11 version 2.1 of the License, or (at your option) any later version. 12 13 Csound is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU Lesser General Public License for more details. 17 18 You should have received a copy of the GNU Lesser General Public 19 License along with Csound; if not, write to the Free Software 20 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 21 02110-1301 USA 22 */ 23 24 /* UGENS1.H */ 25 26 typedef struct { 27 OPDS h; 28 MYFLT *xr, *ia, *idur, *ib; 29 double val, incr, kincr; 30 } LINE; 31 32 typedef struct { 33 OPDS h; 34 MYFLT *xr, *ia, *idur, *ib; 35 double val, mlt, kmlt; 36 } EXPON; 37 38 typedef struct { 39 int32 cnt, acnt; 40 MYFLT val, mlt, amlt; 41 } XSEG; 42 43 typedef struct { 44 int32 cnt, acnt; 45 double nxtpt; 46 } SEG; 47 48 typedef struct { 49 OPDS h; 50 MYFLT *rslt, *argums[VARGMAX]; 51 SEG *cursegp; 52 int32 nsegs; 53 int32 segsrem, curcnt; 54 double curval, curinc, curainc; 55 AUXCH auxch; 56 int32 xtra; 57 } LINSEG; 58 59 typedef struct { 60 OPDS h; 61 MYFLT *rslt, *argums[VARGMAX]; 62 SEG *cursegp; 63 int32 nsegs; 64 int32 segsrem, curcnt; 65 double y1, y2, x, inc, val; 66 AUXCH auxch; 67 int32 xtra; 68 } COSSEG; 69 70 typedef struct { 71 OPDS h; 72 MYFLT *rslt, *argums[VARGMAX]; 73 SEG *cursegp; 74 int32 segsrem, curcnt; 75 double curval, curmlt, curamlt; 76 int32 nsegs; 77 AUXCH auxch; 78 int32 xtra; 79 } EXPSEG; 80 81 typedef struct { 82 OPDS h; 83 MYFLT *rslt, *argums[VARGMAX]; 84 XSEG *cursegp; 85 int32 segsrem, curcnt; 86 double curval, curmlt, curamlt; 87 int32 nsegs; 88 AUXCH auxch; 89 } EXXPSEG; 90 91 typedef struct { 92 OPDS h; 93 MYFLT *rslt, *sig, *iris, *idur, *idec; 94 double lin1, inc1, lin2, inc2; 95 int64_t cnt1, cnt2; 96 } LINEN; 97 98 typedef struct { 99 OPDS h; 100 MYFLT *rslt, *sig, *iris, *idec, *iatdec; 101 double lin1, inc1, val, val2, mlt2; 102 int64_t cnt1; 103 } LINENR; 104 105 typedef struct { 106 OPDS h; 107 MYFLT *rslt, *xamp, *irise, *idur, *idec, *ifn, *iatss; 108 MYFLT *iatdec, *ixmod; 109 int32 phs, ki, cnt1; 110 double val, mlt1, mlt2, asym; 111 FUNC *ftp; 112 } ENVLPX; 113 114 typedef struct { 115 OPDS h; 116 MYFLT *rslt, *xamp, *irise, *idec, *ifn, *iatss, *iatdec; 117 MYFLT *ixmod, *irind; 118 int32 phs, ki, rlsing, rlscnt, rindep; 119 double val, mlt1, mlt2, asym, atdec; 120 FUNC *ftp; 121 } ENVLPR; 122 123 typedef struct { 124 OPDS h; 125 MYFLT *rslt, *argums[VARGMAX]; 126 XSEG *cursegp; 127 int32 nsegs; 128 AUXCH auxch; 129 } EXPSEG2; /*gab-A1*/ 130