1 /* 2 schedule.h: 3 4 Copyright (C) 1999, 2002 rasmus ekman, Istvan Varga, John ffitch, 5 Gabriel Maldonado, matt ingalls 6 7 This file is part of Csound. 8 9 The Csound Library is free software; you can redistribute it 10 and/or modify it under the terms of the GNU Lesser General Public 11 License as published by the Free Software Foundation; either 12 version 2.1 of the License, or (at your option) any later version. 13 14 Csound is distributed in the hope that it will be useful, 15 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 GNU Lesser General Public License for more details. 18 19 You should have received a copy of the GNU Lesser General Public 20 License along with Csound; if not, write to the Free Software 21 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 22 02110-1301 USA 23 */ 24 25 typedef struct { 26 OPDS h; 27 MYFLT *which, *when, *dur; 28 MYFLT *argums[VARGMAX-3]; 29 int midi; 30 INSDS *kicked; 31 } SCHED; 32 33 typedef struct { 34 OPDS h; 35 MYFLT *trigger; 36 MYFLT *which, *when, *dur; 37 MYFLT *argums[VARGMAX-3]; 38 int todo; 39 MYFLT abs_when; 40 int midi; 41 INSDS *kicked; 42 } WSCHED; 43 44 typedef struct { 45 OPDS h; 46 MYFLT *res; 47 MYFLT *kamp, *xcps, *type; 48 AUXCH auxd; 49 MYFLT *sine; 50 int lasttype; 51 int32 phs; 52 } LFO; 53 54 /*****************************************************************/ 55 /* triginstr - Start instrument events at k-rate from orchestra. */ 56 /* August 1999 by rasmus ekman. */ 57 /*****************************************************************/ 58 59 typedef struct { 60 OPDS h; 61 MYFLT *trigger, *mintime, *maxinst; 62 MYFLT *args[PMAX+1]; 63 MYFLT prvmintim; 64 int32 timrem, prvktim, kadjust; 65 } TRIGINSTR; 66 67 /*****************************************************************/ 68 /* trigseq, seqtime - */ 69 /* May 2000 by Gabriel Maldonado */ 70 /*****************************************************************/ 71 72 typedef struct { 73 OPDS h; 74 MYFLT *ktrig, *kstart, *kloop, *initndx, *kfn, *outargs[VARGMAX]; 75 int32 ndx; 76 int nargs, done; 77 int32 pfn; 78 MYFLT *table; 79 } TRIGSEQ; 80 81 typedef struct { 82 OPDS h; 83 MYFLT *ktrig, *unit_time, *kstart, *kloop, *initndx, *kfn; 84 int32 ndx; 85 int done; 86 double start, newtime; 87 int32 pfn; 88 MYFLT *table; 89 } SEQTIM; 90 91