oscils.h

Go to the documentation of this file.
00001 /*
00002     oscils.h:
00003 
00004     Copyright (C) 2002 Istvan Varga
00005 
00006     This file is part of Csound.
00007 
00008     The Csound Library is free software; you can redistribute it
00009     and/or modify it under the terms of the GNU Lesser General Public
00010     License as published by the Free Software Foundation; either
00011     version 2.1 of the License, or (at your option) any later version.
00012 
00013     Csound is distributed in the hope that it will be useful,
00014     but WITHOUT ANY WARRANTY; without even the implied warranty of
00015     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016     GNU Lesser General Public License for more details.
00017 
00018     You should have received a copy of the GNU Lesser General Public
00019     License along with Csound; if not, write to the Free Software
00020     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00021     02111-1307 USA
00022 */
00023 
00024 /* ------ oscils, lphasor, and tablexkt by Istvan Varga (Jan 5 2002) ------ */
00025 
00026 #ifndef CSOUND_OSCILS_H
00027 #define CSOUND_OSCILS_H
00028 
00029 /* oscils opcode struct */
00030 
00031 typedef struct {
00032     OPDS    h;
00033     MYFLT   *ar, *iamp, *icps, *iphs, *iflg;                /* opcode args  */
00034     /* internal variables */
00035     int     use_double;
00036     double  xd, cd, vd;
00037     MYFLT   x, c, v;
00038 } OSCILS;
00039 
00040 /* lphasor opcode struct */
00041 
00042 typedef struct {
00043     OPDS    h;
00044     MYFLT   *ar, *xtrns, *ilps, *ilpe;                      /* opcode       */
00045     MYFLT   *imode, *istrt, *istor;                         /* args         */
00046     /* internal variables */
00047     int     loop_mode;
00048     double  phs, lps, lpe;
00049     int     dir;            /* playback direction (0: backward, 1: forward) */
00050 } LPHASOR;
00051 
00052 /* tablexkt opcode struct */
00053 
00054 typedef struct {
00055     OPDS    h;
00056     MYFLT   *ar, *xndx, *kfn, *kwarp, *iwsize;              /* opcode       */
00057     MYFLT   *ixmode, *ixoff, *iwrap;                        /* args         */
00058     /* internal variables */
00059     int     raw_ndx, ndx_scl, wrap_ndx, wsize;
00060     MYFLT   win_fact;
00061 /*  double  wsized2_d, pidwsize_d; */           /* for oscils_hann.c */
00062 } TABLEXKT;
00063 
00064 /* these functions are exported to entry*.c */
00065 
00066 #ifndef CSOUND_OSCILS_C
00067 extern int oscils_set (void*);
00068 extern int oscils (void*);
00069 extern int lphasor_set (void*);
00070 extern int lphasor (void*);
00071 extern int tablexkt_set (void*);
00072 extern int tablexkt (void*);
00073 #endif
00074 
00075 #endif              /* CSOUND_OSCILS_H */
00076 

Generated on Tue Apr 14 11:00:49 2009 for Csound and CsoundAC by  doxygen 1.5.8