int main(int argc, char **argv) { int m = ORDER, m1; FILE *fp = stdin; double a = ALPHA, *x; if ((cmnd = strrchr(argv[0], '/')) == NULL) cmnd = argv[0]; else cmnd++; while (--argc) if (**++argv == '-') { switch (*(*argv + 1)) { case 'a': a = atof(*++argv); --argc; break; case 'm': m = atoi(*++argv); --argc; break; case 'h': usage(0); default: fprintf(stderr, "%s : Invalid option '%c'!\n", cmnd, *(*argv + 1)); usage(1); } } else fp = getfp(*argv, "rb"); m1 = m + 1; x = dgetmem(m1); while (freadf(x, sizeof(*x), m1, fp) == m1) { mc2b(x, x, m, a); fwritef(x, sizeof(*x), m1, stdout); } return (0); }
void main() { cout << "Working with Counter" << endl; Counter ctr; playWithCounter (ctr); cout << "Working with ModCounter" << endl; ModCounter mctr2(2); playWithCounter (mctr2); cout << "Working with ModCounter" << endl; ModCounter mctr3(3); playWithCounter (mctr3); try { Counter ctr2; if (ctr == ctr2) cout << "Same" << endl; else cout << "Different" << endl; ModCounter mc2a(2); ModCounter mc2b(2); if (mc2a == mc2b) cout << "Same" << endl; else cout << "Different" << endl; if (mctr3 == mc2a) cout << "Same" << endl; else cout << "Different" << endl; } catch(Invalid e) { cout << "Exception thrown" << endl; } }
int main(int argc, char **argv) { int m = ORDER, pd = PADEORDER, fprd = FPERIOD, iprd = IPERIOD, i, j; FILE *fp = stdin, *fpc = NULL; double *c, *inc, *cc, *d, x, a = ALPHA; Boolean bflag = BFLAG, ngain = NGAIN, transpose = TRANSPOSE, inverse = INVERSE; if ((cmnd = strrchr(argv[0], '/')) == NULL) cmnd = argv[0]; else cmnd++; while (--argc) if (**++argv == '-') { switch (*(*argv + 1)) { case 'm': m = atoi(*++argv); --argc; break; case 'a': a = atof(*++argv); --argc; break; case 'p': fprd = atoi(*++argv); --argc; break; case 'i': iprd = atoi(*++argv); --argc; break; case 'P': pd = atoi(*++argv); --argc; break; case 't': transpose = 1 - transpose; break; case 'v': inverse = 1 - inverse; break; case 'b': bflag = 1 - bflag; break; case 'k': ngain = 1 - ngain; break; case 'h': usage(0); default: fprintf(stderr, "%s : Invalid option '%c'!\n", cmnd, *(*argv + 1)); usage(1); } } else if (fpc == NULL) fpc = getfp(*argv, "rb"); else fp = getfp(*argv, "rb"); if ((pd < 4) || (pd > 5)) { fprintf(stderr, "%s : Order of Pade approximation should be 4 or 5!\n", cmnd); return (1); } if (fpc == NULL) { fprintf(stderr, "%s : Cannot open mel cepstrum file!\n", cmnd); return (1); } c = dgetmem(3 * (m + 1) + 3 * (pd + 1) + pd * (m + 2)); cc = c + m + 1; inc = cc + m + 1; d = inc + m + 1; if (freadf(c, sizeof(*c), m + 1, fpc) != m + 1) return (1); if (!bflag) mc2b(c, c, m, a); if (inverse) { if (!ngain) { for (i = 0; i <= m; i++) c[i] *= -1; } else { c[0] = 0; for (i = 1; i <= m; i++) c[i] *= -1; } } for (;;) { if (freadf(cc, sizeof(*cc), m + 1, fpc) != m + 1) return (0); if (!bflag) mc2b(cc, cc, m, a); if (inverse) { if (!ngain) { for (i = 0; i <= m; i++) cc[i] *= -1; } else { cc[0] = 0; for (i = 1; i <= m; i++) cc[i] *= -1; } } for (i = 0; i <= m; i++) inc[i] = (cc[i] - c[i]) * (double) iprd / (double) fprd; for (j = fprd, i = (iprd + 1) / 2; j--;) { if (freadf(&x, sizeof(x), 1, fp) != 1) return (0); if (!ngain) x *= exp(c[0]); if (transpose) x = mlsadft(x, c, m, a, pd, d); else x = mlsadf(x, c, m, a, pd, d); fwritef(&x, sizeof(x), 1, stdout); if (!--i) { for (i = 0; i <= m; i++) c[i] += inc[i]; i = iprd; } } movem(cc, c, sizeof(*cc), m + 1); } return (0); }
// This function generates a Frame. void MAGE::Vocoder::push( Frame * frame, bool ignoreVoicing ) { int i; if( !flagFirstPush ) { movem( cc, c, sizeof( * cc ), m + 1 ); mc2b( frame->streams[mgcStreamIndex], cc, m, alpha ); if( stage != 0 ) /* MGLSA*/ { gnorm( cc, cc, m, gamma ); cc[0] = log( cc[0] ); for( i = 1; i <= m; i++ ) cc[i] *= gamma; } } else { flagFirstPush = false; mc2b( frame->streams[mgcStreamIndex], c, m, alpha ); if( stage != 0 ) // MGLSA { gnorm( c, c, m, gamma ); c[0] = log( c[0] ); for( i = 1; i <= m; i++ ) c[i] *= gamma; } for( i = 0; i <= m; i++ ) cc[i] = c[i]; } for( i = 0; i <= m; i++ ) inc[i] = ( cc[i] - c[i] ) * iprd / fprd; switch( action ) { case MAGE::overwrite: this->f0 = this->actionValue; // Hz break; case MAGE::shift: this->f0 = ( frame->streams[lf0StreamIndex][0] ) + ( this->actionValue ); // Hz break; case MAGE::scale: this->f0 = ( frame->streams[lf0StreamIndex][0] ) * ( this->actionValue ); // Hz break; case MAGE::synthetic: case MAGE::noaction: default: this->f0 = frame->streams[lf0StreamIndex][0] ; } this->f0 = fabs(this->f0 + (this->sinresult * this->vibamp));//V if( this->f0 < 0 ) this->f0 = MAGE::defaultPitch; this->t0 = MAGE::defaultSamplingRate / this->f0; // defaultSamplingRate = 48000 if( !ignoreVoicing ) this->voiced = frame->voiced; this->nOfPopSinceLastPush = 0; return; }
int main(int argc, char **argv) { int m = ORDER, fprd = FPERIOD, iprd = IPERIOD, stage = STAGE, pd = PADEORDER, i, j; Boolean transpose = TRANSPOSE, ngain = NGAIN, inverse = INVERSE; FILE *fp = stdin, *fpc = NULL; double alpha = ALPHA, gamma = -1 / (double) STAGE, x, *c, *inc, *cc, *d; if ((cmnd = strrchr(argv[0], '/')) == NULL) cmnd = argv[0]; else cmnd++; while (--argc) if (**++argv == '-') { switch (*(*argv + 1)) { case 'm': m = atoi(*++argv); --argc; break; case 'a': alpha = atof(*++argv); --argc; break; case 'c': stage = atoi(*++argv); --argc; break; case 'p': fprd = atoi(*++argv); --argc; break; case 'i': iprd = atoi(*++argv); --argc; break; case 't': transpose = 1 - transpose; break; case 'v': inverse = 1 - inverse; break; case 'k': ngain = 1 - ngain; break; case 'P': pd = atoi(*++argv); --argc; break; case 'h': usage(0); default: fprintf(stderr, "%s : Invalid option '%c'!\n", cmnd, *(*argv + 1)); usage(1); } } else if (fpc == NULL) fpc = getfp(*argv, "rb"); else fp = getfp(*argv, "rb"); if (fpc == NULL) { fprintf(stderr, "%s : Cannot open cepstrum file!\n", cmnd); return (1); } if (inverse) { if (stage == 0) { fprintf(stderr, "%s : gamma should not equal to 0 in Inverse MGLSA!\n", cmnd); usage(1); } } if (stage != 0) { /* MGLSA */ gamma = -1 / (double) stage; } else { /* MLSA */ if ((pd < 4) || (pd > 5)) { fprintf(stderr, "%s : Order of Pade approximation should be 4 or 5!\n", cmnd); return (1); } } c = (stage != 0) ? dgetmem(m + m + m + 3 + (m + 1) * stage) /* MGLSA */ : dgetmem(3 * (m + 1) + 3 * (pd + 1) + pd * (m + 2)); /* MLSA */ cc = c + m + 1; inc = cc + m + 1; d = inc + m + 1; if (freadf(c, sizeof(*c), m + 1, fpc) != m + 1) return (1); mc2b(c, c, m, alpha); if (stage != 0) { /* MGLSA */ gnorm(c, c, m, gamma); c[0] = log(c[0]); for (i = 1; i <= m; i++) c[i] *= gamma; } for (;;) { if (freadf(cc, sizeof(*cc), m + 1, fpc) != m + 1) return (0); mc2b(cc, cc, m, alpha); if (stage != 0) { gnorm(cc, cc, m, gamma); cc[0] = log(cc[0]); for (i = 1; i <= m; i++) cc[i] *= gamma; } for (i = 0; i <= m; i++) inc[i] = (cc[i] - c[i]) * iprd / fprd; for (j = fprd, i = (iprd + 1) / 2; j--;) { if (freadf(&x, sizeof(x), 1, fp) != 1) return (0); if (inverse) { /* IMGLSA */ if (!ngain) x /= exp(c[0]); if (transpose) x = imglsadft(x, c, m, alpha, stage, d); else x = imglsadf(x, c, m, alpha, stage, d); } else { if (stage != 0) { /* MGLSA */ if (!ngain) x *= exp(c[0]); if (transpose) x = mglsadft(x, c, m, alpha, stage, d); else x = mglsadf(x, c, m, alpha, stage, d); } else { /* MLSA */ if (!ngain) x *= exp(c[0]); x = mlsadf(x, c, m, alpha, pd, d); } } fwritef(&x, sizeof(x), 1, stdout); if (!--i) { for (i = 0; i <= m; i++) c[i] += inc[i]; i = iprd; } } movem(cc, c, sizeof(*cc), m + 1); } return (0); }