00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __PSTREAM_H_INCLUDED
00025 #define __PSTREAM_H_INCLUDED
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078 enum PVS_WINTYPE {
00079 PVS_WIN_HAMMING = 0,
00080 PVS_WIN_HANN,
00081 PVS_WIN_KAISER,
00082 PVS_WIN_CUSTOM,
00083 PVS_WIN_BLACKMAN,
00084 PVS_WIN_BLACKMAN_EXACT,
00085 PVS_WIN_NUTTALLC3,
00086 PVS_WIN_BHARRIS_3,
00087 PVS_WIN_BHARRIS_MIN,
00088 PVS_WIN_RECT
00089 };
00090
00091
00092 enum PVS_ANALFORMAT {
00093 PVS_AMP_FREQ = 0,
00094 PVS_AMP_PHASE,
00095 PVS_COMPLEX,
00096 PVS_TRACKS
00097 };
00098
00099 #ifdef SDFT
00100 typedef struct {
00101 MYFLT re;
00102 MYFLT im;
00103 } CMPLX;
00104 #endif
00105
00106 typedef struct pvsdat {
00107 long N;
00108 #ifdef SDFT
00109 int sliding;
00110 long NB;
00111 #endif
00112 long overlap;
00113 long winsize;
00114 int wintype;
00115 long format;
00116 unsigned long framecount;
00117 AUXCH frame;
00118
00119 } PVSDAT;
00120
00121
00122
00123
00124 typedef struct {
00125 OPDS h;
00126 PVSDAT *fsig;
00127 MYFLT *ain;
00128 MYFLT *fftsize;
00129 MYFLT *overlap;
00130 MYFLT *winsize;
00131 MYFLT *wintype;
00132 MYFLT *format;
00133 MYFLT *init;
00134
00135 long buflen;
00136 float fund,arate;
00137 float RoverTwoPi,TwoPioverR,Fexact;
00138 MYFLT *nextIn;
00139 long nI,Ii,IOi;
00140 long inptr;
00141
00142 AUXCH input;
00143 AUXCH overlapbuf;
00144 AUXCH analbuf;
00145 AUXCH analwinbuf;
00146 AUXCH oldInPhase;
00147 #ifdef SDFT
00148 AUXCH trig;
00149 double *cosine, *sine;
00150 #endif
00151 } PVSANAL;
00152
00153 typedef struct {
00154 OPDS h;
00155 MYFLT *aout;
00156 PVSDAT *fsig;
00157 MYFLT *init;
00158
00159
00160 long overlap,winsize,fftsize,wintype,format;
00161
00162 long buflen;
00163 MYFLT fund,arate;
00164 MYFLT RoverTwoPi,TwoPioverR,Fexact;
00165 MYFLT *nextOut;
00166 long nO,Ii,IOi;
00167 long outptr;
00168 long bin_index;
00169
00170
00171 AUXCH output;
00172 AUXCH overlapbuf;
00173 AUXCH synbuf;
00174 AUXCH analwinbuf;
00175 AUXCH synwinbuf;
00176 AUXCH oldOutPhase;
00177
00178 } PVSYNTH;
00179
00180
00181
00182 typedef struct {
00183 OPDS h;
00184 MYFLT *aout;
00185 PVSDAT *fsig;
00186 MYFLT *n_oscs;
00187 MYFLT *kfmod;
00188 MYFLT *ibin;
00189 MYFLT *ibinoffset;
00190 MYFLT *init;
00191
00192 long outptr;
00193 unsigned long lastframe;
00194
00195 long overlap,winsize,fftsize,wintype,format,noscs;
00196 long maxosc;
00197 float one_over_overlap,pi_over_sr, one_over_sr;
00198 float fmod;
00199 AUXCH a;
00200 AUXCH x;
00201 AUXCH y;
00202 AUXCH amps;
00203 AUXCH lastamps;
00204 AUXCH freqs;
00205 AUXCH outbuf;
00206 } PVADS;
00207
00208
00209 typedef struct {
00210 OPDS h;
00211 PVSDAT *fout;
00212 PVSDAT *fsrc;
00213 PVSDAT *fdest;
00214 MYFLT *kamp1;
00215 MYFLT *kamp2;
00216
00217 long overlap,winsize,fftsize,wintype,format;
00218 unsigned long lastframe;
00219 } PVSCROSS;
00220
00221
00222 typedef struct {
00223 OPDS h;
00224 PVSDAT *fout;
00225 PVSDAT *fsrc;
00226 MYFLT *ifn;
00227 MYFLT *kdepth;
00228
00229 long overlap,winsize,fftsize,wintype,format;
00230 unsigned long lastframe;
00231 int nwarned,pwarned;
00232 FUNC *maskfunc;
00233 } PVSMASKA;
00234
00235
00236
00237 typedef struct {
00238 OPDS h;
00239 MYFLT *kflag;
00240 PVSDAT *fsrc;
00241 MYFLT *ifna;
00242 MYFLT *ifnf;
00243
00244 long overlap,winsize,fftsize,wintype,format;
00245 unsigned long lastframe;
00246 FUNC *outfna, *outfnf;
00247 } PVSFTW;
00248
00249 typedef struct {
00250 OPDS h;
00251
00252 PVSDAT *fdest;
00253 MYFLT *ifna;
00254 MYFLT *ifnf;
00255
00256 long overlap,winsize,fftsize,wintype,format;
00257 unsigned long lastframe;
00258 FUNC *infna, *infnf;
00259 MYFLT *ftablea,*ftablef;
00260 } PVSFTR;
00261
00262
00263
00264 typedef struct {
00265 OPDS h;
00266 PVSDAT *fout;
00267 MYFLT *kpos;
00268 MYFLT *ifilno;
00269 MYFLT *ichan;
00270
00271 int ptr;
00272 long overlap,winsize,fftsize,wintype,format;
00273 unsigned long chans, nframes,lastframe,chanoffset,blockalign;
00274 MYFLT arate;
00275 float *membase;
00276 } PVSFREAD;
00277
00278
00279
00280 typedef struct {
00281 OPDS h;
00282 MYFLT *ioverlap;
00283 MYFLT *inumbins;
00284 MYFLT *iwinsize;
00285 MYFLT *iformat;
00286
00287 PVSDAT *fsrc;
00288 } PVSINFO;
00289
00290 typedef struct {
00291 OPDS h;
00292 PVSDAT *fout;
00293 PVSDAT *fsrc;
00294 } FASSIGN;
00295
00296 #endif
00297