Home | History | Annotate | Download | only in lib

Lines Matching full:sig_subobj

61  // Name    :   sig_subobj
65 typedef struct sig_subobj
119 sig_subobj_t *sig_subObj;
123 sig_subObj = (sig_subobj_t *) this->subObj;
124 sig_subObj->inBufSize = PICOSIG_IN_BUFF_SIZE;
125 sig_subObj->outBufSize = PICOSIG_OUT_BUFF_SIZE;
126 sig_subObj->inReadPos = 0;
127 sig_subObj->inWritePos = 0;
128 sig_subObj->outReadPos = 0;
129 sig_subObj->outWritePos = 0;
130 sig_subObj->needMoreInput = 0;
131 sig_subObj->procState = PICOSIG_COLLECT;
132 sig_subObj->retState = PICOSIG_COLLECT;
133 sig_subObj->innerProcState = 0;
134 sig_subObj->nNumFrame = 0;
139 sig_subObj->sInSDFile = NULL;
140 sig_subObj->sInSDFilePos = 0;
141 sig_subObj->sInSDFileName[0] = '\0';
142 sig_subObj->outSwitch = 0; /*PU sends output to buffer (nextPU)*/
143 sig_subObj->sOutSDFile = NULL;
144 sig_subObj->sOutSDFileName[0] = '\0';
145 sig_subObj->nNumFrame = 0;
152 sig_subObj->pdfmgc = picokpdf_getPdfMUL(
154 sig_subObj->pdflfz = picokpdf_getPdfMUL(
156 sig_subObj->pdfphs = picokpdf_getPdfPHS(
159 sig_subObj->scmeanpowLFZ = sig_subObj->pdflfz->bigpow
160 - sig_subObj->pdflfz->meanpow;
161 sig_subObj->scmeanpowMGC = sig_subObj->pdfmgc->bigpow
162 - sig_subObj->pdfmgc->meanpow;
163 sig_subObj->scmeanLFZ = (1 << (picoos_uint32) sig_subObj->scmeanpowLFZ);
164 sig_subObj->scmeanMGC = (1 << (picoos_uint32) sig_subObj->scmeanpowMGC);
165 sig_subObj->fSampNorm = PICOSIG_NORM1 * sig_subObj->pdfmgc->amplif;
169 sigDspInitialize(&(sig_subObj->sig_inner), resetMode);
174 sig_subObj->pMod = 1.0f;
175 sig_subObj->vMod = 1.0f;
176 sig_subObj->sMod = 1.0f;
181 sigDspInitialize(&(sig_subObj->sig_inner), resetMode);
199 sig_subobj_t *sig_subObj;
203 sig_subObj = (sig_subobj_t *) this->subObj;
220 sig_subobj_t *sig_subObj;
224 sig_subObj = (sig_subobj_t *) (this)->subObj;
226 if (sig_subObj->sInSDFile != NULL) {
227 picoos_sdfCloseIn(this->common, &(sig_subObj->sInSDFile));
228 sig_subObj->sInSDFile = NULL;
229 sig_subObj->sInSDFileName[0] = '\0';
232 if (sig_subObj->sOutSDFile != NULL) {
233 picoos_sdfCloseOut(this->common, &(sig_subObj->sOutSDFile));
234 sig_subObj->sOutSDFile = NULL;
235 sig_subObj->sOutSDFileName[0] = '\0';
238 sigDeallocate(mm, &(sig_subObj->sig_inner));
261 sig_subobj_t *sig_subObj;
283 sig_subObj = (sig_subobj_t *) this->subObj;
288 if (sigAllocate(mm, &(sig_subObj->sig_inner)) != 0) {
299 sigDeallocate(mm, &(sig_subObj->sig_inner));
321 sig_subobj_t *sig_subObj;
332 sig_subObj = (sig_subobj_t *) this->subObj;
333 pdf = sig_subObj->pdfphs;
379 register sig_subobj_t * sig_subObj;
389 sig_subObj = (sig_subobj_t *) this->subObj;
397 switch (sig_subObj->innerProcState) {
404 sig_subObj->sig_inner.F0Buff[n_count]=sig_subObj->sig_inner.F0Buff[n_count+1];
405 sig_subObj->sig_inner.PhIdBuff[n_count]=sig_subObj->sig_inner.PhIdBuff[n_count+1];
406 sig_subObj->sig_inner.VoicingBuff[n_count]=sig_subObj->sig_inner.VoicingBuff[n_count+1];
407 sig_subObj->sig_inner.FuVBuff[n_count]=sig_subObj->sig_inner.FuVBuff[n_count+1];
410 sig_subObj->sig_inner.VoxBndBuff[n_count]=sig_subObj->sig_inner.VoxBndBuff[n_count+1];
413 tmp1 = sig_subObj->sig_inner.CepBuff[0];
415 sig_subObj->sig_inner.CepBuff[n_count]=sig_subObj->sig_inner.CepBuff[n_count+1];
417 sig_subObj->sig_inner.CepBuff[CEPST_BUFF_SIZE-1]=tmp1;
419 tmp1 = sig_subObj->sig_inner.PhsBuff[0];
421 sig_subObj->sig_inner.PhsBuff[n_count]=sig_subObj->sig_inner.PhsBuff[n_count+1];
423 sig_subObj->sig_inner.PhsBuff[PHASE_BUFF_SIZE-1]=tmp1;
428 sig_subObj->sig_inner.prevVoiced_p = sig_subObj->sig_inner.voiced_p;
433 picoos_mem_copy((void *) &sig_subObj->inBuf[inReadPos
436 sig_subObj->sig_inner.PhIdBuff[CEPST_BUFF_SIZE-1] = (picoos_int16) tmp_uint16; /*store into newest*/
437 tmp_uint16 = (picoos_int16) sig_subObj->sig_inner.PhIdBuff[0]; /*assign oldest*/
438 sig_subObj->sig_inner.phId_p = (picoos_int16) tmp_uint16; /*assign oldest*/
441 for (i = 0; i < sig_subObj->pdflfz->ceporder; i++) {
442 picoos_mem_copy((void *) &(sig_subObj->inBuf[inReadPos
447 sig_subObj->sig_inner.F0Buff[CEPST_BUFF_SIZE-1] = (picoos_int16) tmp_uint16;/*store into newest*/
448 tmp_uint16 = (picoos_int16) sig_subObj->sig_inner.F0Buff[0]; /*assign oldest*/
451 sig_subObj->sig_inner.F0_p
453 / sig_subObj->scmeanLFZ) : (picoos_single) 0.0);
455 if (sig_subObj->sig_inner.F0_p != (picoos_single) 0.0f) {
456 sig_subObj->sig_inner.F0_p = (picoos_single) exp(
457 (picoos_single) sig_subObj->sig_inner.F0_p);
461 picoos_mem_copy((void *) &(sig_subObj->inBuf[inReadPos
466 sig_subObj->sig_inner.VoicingBuff[CEPST_BUFF_SIZE-1] = (picoos_int16) tmp_uint16;/*store into newest*/
467 tmp_uint16 = (picoos_int16) sig_subObj->sig_inner.VoicingBuff[0]; /*assign oldest*/
469 sig_subObj->sig_inner.voicing = (picoos_single) ((tmp_uint16
474 picoos_mem_copy((void *) &(sig_subObj->inBuf[inReadPos
479 sig_subObj->sig_inner.FuVBuff[CEPST_BUFF_SIZE-1] = (picoos_int16) tmp_uint16;/*store into newest*/
480 tmp_uint16 = (picoos_int16) sig_subObj->sig_inner.FuVBuff[0]; /*assign oldest*/
482 sig_subObj->sig_inner.Fuv_p = (picoos_single) tmp_uint16
483 / sig_subObj->scmeanLFZ;
484 sig_subObj->sig_inner.Fuv_p = (picoos_single) EXP((double)sig_subObj->sig_inner.Fuv_p);
489 3 * sig_subObj->pdflfz->ceporder * sizeof(tmp_int16);
491 tmp1 = sig_subObj->sig_inner.CepBuff[CEPST_BUFF_SIZE-1]; /*store into CURR */
492 tmp2 = sig_subObj->sig_inner.CepBuff[0]; /*assign oldest*/
494 for (i = 0; i < sig_subObj->pdfmgc->ceporder; i++) {
495 picoos_mem_copy((void *) &(sig_subObj->inBuf[offset + i
500 sig_subObj->sig_inner.wcep_pI[i] = (picoos_int32) tmp2[i];
503 if (sig_subObj->inBuf[inReadPos+ 3] > sig_subObj->inBuf[inReadPos+ 2]*2 + 8) {
506 picoos_mem_copy((void *) &(sig_subObj->inBuf[offset + sig_subObj->pdfmgc->ceporder
511 tmp1 = sig_subObj->sig_inner.PhsBuff[PHASE_BUFF_SIZE-1];
513 getPhsFromPdf(this, tmp_int16, tmp1, &(sig_subObj->sig_inner.VoxBndBuff[PHASE_BUFF_SIZE-1]));
516 sig_subObj->sig_inner.VoxBndBuff[PHASE_BUFF_SIZE-1] = 0;
520 sig_subObj->sig_inner.F0_p *= sig_subObj->pMod;
521 sig_subObj->sig_inner.Fuv_p *= sig_subObj->pMod;
522 if (sig_subObj->sig_inner.F0_p > 0.0f) {
523 sig_subObj->sig_inner.voiced_p = 1;
525 sig_subObj->sig_inner.voiced_p = 0;
527 sig_subObj->sig_inner.n_available++;
528 if (sig_subObj->sig_inner.n_available>3) sig_subObj->sig_inner.n_available = 3;
530 if (sig_subObj->sig_inner.n_available < 3) {
534 sig_subObj->innerProcState = 3;
539 save_transition_frame(&(sig_subObj->sig_inner));
540 mel_2_lin_lookup(&(sig_subObj->sig_inner), sig_subObj->scmeanpowMGC);
541 sig_subObj->innerProcState += 1;
546 phase_spec2(&(sig_subObj->sig_inner));
547 sig_subObj->innerProcState += 1;
552 env_spec(&(sig_subObj->sig_inner));
553 sig_subObj->innerProcState += 1;
558 impulse_response(&(sig_subObj->sig_inner));
559 sig_subObj->innerProcState += 1;
564 td_psola2(&(sig_subObj->sig_inner));
565 sig_subObj->innerProcState += 1;
570 overlap_add(&(sig_subObj->sig_inner));
571 sig_subObj->innerProcState += 1;
581 hop_p_half = (sig_subObj->sig_inner.hop_p) / 2;
583 sig_subObj->outBuf[outWritePos]
585 sig_subObj->outBuf[outWritePos + 1]
587 sig_subObj->outBuf[outWritePos + 2]
588 = (picoos_uint8) (sig_subObj->nNumFrame % ((hop_p_half)));
589 sig_subObj->outBuf[outWritePos + 3]
590 = (picoos_uint8) sig_subObj->sig_inner.hop_p;
591 s_data = (picoos_int16 *) &(sig_subObj->outBuf[outWritePos + 4]);
594 mlt = (picoos_int32) ((sig_subObj->fSampNorm * sig_subObj->vMod)
596 t1 = &(sig_subObj->sig_inner.WavBuff_p[n_count * (hop_p_half)]);
610 sig_subObj->nNumFrame = sig_subObj->nNumFrame + 1;
615 cnt = sig_subObj->sig_inner.m2_p - sig_subObj->sig_inner.hop_p;
616 tmp1 = sig_subObj->sig_inner.WavBuff_p;
618 = &(sig_subObj->sig_inner.WavBuff_p[sig_subObj->sig_inner.hop_p]);
621 cnt = sig_subObj->sig_inner.m2_p - (sig_subObj->sig_inner.m2_p
622 - sig_subObj->sig_inner.hop_p);
625 sig_subObj->innerProcState = 0; /*reset to step 0*/
626 sig_subObj->nNumFrame += 2;
727 register sig_subobj_t * sig_subObj;
757 sig_subObj = (sig_subobj_t *) this->subObj;
766 PICODBG_DEBUG(("picosig.sigStep -- doing state %i",sig_subObj->procState));
768 switch (sig_subObj->procState) {
774 &(sig_subObj->inBuf[sig_subObj->inWritePos]),
775 sig_subObj->inBufSize - sig_subObj->inWritePos, &blen);
786 &(sig_subObj->inBuf[sig_subObj->inWritePos]), blen);
793 sig_subObj->inWritePos += blen;
794 sig_subObj->needMoreInput = FALSE;
795 sig_subObj->procState = PICOSIG_SCHEDULE;
806 + sig_subObj->inBuf[sig_subObj->inReadPos + 3];
810 &(sig_subObj->inBuf[sig_subObj->inReadPos]));
817 &(sig_subObj->inBuf[sig_subObj->inReadPos])))
820 sig_subObj->procState = PICOSIG_PROCESS;
821 sig_subObj->retState = PICOSIG_COLLECT;
828 switch (sig_subObj->inBuf[sig_subObj->inReadPos + 1]) {
832 sig_subObj->inReadPos += numinb;
833 if (sig_subObj->inReadPos
834 >= sig_subObj->inWritePos) {
835 sig_subObj->inReadPos = 0;
836 sig_subObj->inWritePos = 0;
839 sig_subObj->procState =
840 sig_subObj->retState = PICOSIG_COLLECT;
843 if (sig_subObj->sInSDFile != NULL) {
850 (picoos_char*) &(sig_subObj->inBuf[sig_subObj->inReadPos
852 sig_subObj->inBuf[sig_subObj->inReadPos
855 if (sig_subObj->sOutSDFile != NULL) {
858 (picoos_char*) sig_subObj->sOutSDFileName,
868 &(sig_subObj->sInSDFile),
873 sig_subObj->sInSDFile = NULL;
874 sig_subObj->sInSDFileName[0] = '\0';
879 (picoos_char*) sig_subObj->sInSDFileName,
881 sig_subObj->inBuf[sig_subObj->inReadPos
883 sig_subObj->sInSDFilePos = 0;
885 sig_subObj->procState =
886 sig_subObj->retState = PICOSIG_PLAY;
892 sig_subObj->inReadPos += numinb;
893 if (sig_subObj->inReadPos
894 >= sig_subObj->inWritePos) {
895 sig_subObj->inReadPos = 0;
896 sig_subObj->inWritePos = 0;
899 sig_subObj->procState = PICOSIG_COLLECT;
900 sig_subObj->retState = PICOSIG_COLLECT;
902 if ((sig_subObj->sOutSDFile != NULL)
903 || (sig_subObj->outSwitch == 1)) {
910 (picoos_char*) &(sig_subObj->inBuf[sig_subObj->inReadPos
912 sig_subObj->inBuf[sig_subObj->inReadPos
922 if (sig_subObj->sInSDFile != NULL) {
924 (picoos_char*) sig_subObj->sInSDFileName,
927 (picoos_char*) sig_subObj->sInSDFileName))
936 &(sig_subObj->sOutSDFile),
939 if (sig_subObj->sOutSDFile == NULL) {
940 PICODBG_DEBUG(("Error on opening file %s\n", sig_subObj->sOutSDFileName));
941 sig_subObj->outSwitch = 0;
942 sig_subObj->sOutSDFileName[0] = '\0';
945 sig_subObj->outSwitch = 1;
948 (picoos_char*) sig_subObj->sOutSDFileName,
950 sig_subObj->inBuf[sig_subObj->inReadPos + 3] + 1);
957 sig_subObj->inReadPos += numinb;
958 if (sig_subObj->inReadPos
959 >= sig_subObj->inWritePos) {
960 sig_subObj->inReadPos = 0;
961 sig_subObj->inWritePos = 0;
964 sig_subObj->procState = PICOSIG_COLLECT;
965 sig_subObj->retState = PICOSIG_COLLECT;
967 if ((sig_subObj->sOutSDFile == NULL)
968 || (sig_subObj->outSwitch == 0)) {
974 &(sig_subObj->sOutSDFile));
975 sig_subObj->outSwitch = 0;
976 sig_subObj->sOutSDFile = NULL;
977 sig_subObj->sOutSDFileName[0] = '\0';
986 &(sig_subObj->inBuf[sig_subObj->inReadPos]),
989 switch (sig_subObj->inBuf[sig_subObj->inReadPos + 2]) {
1007 switch (sig_subObj->inBuf[sig_subObj->inReadPos + 1]) {
1009 sig_subObj->pMod = f_value;
1012 sig_subObj->vMod = f_value;
1015 sig_subObj->sMod = f_value;
1016 sig_subObj->sig_inner.sMod_p
1017 = sig_subObj->sMod;
1020 &(sig_subObj->sig_inner));
1028 sig_subObj->inReadPos += numinb;
1029 if (sig_subObj->inReadPos
1030 >= sig_subObj->inWritePos) {
1031 sig_subObj->inReadPos = 0;
1032 sig_subObj->inWritePos = 0;
1035 sig_subObj->procState = PICOSIG_COLLECT;
1036 sig_subObj->retState = PICOSIG_COLLECT;
1052 &(sig_subObj->inBuf[sig_subObj->inReadPos]),
1054 &(sig_subObj->outBuf[sig_subObj->outWritePos]),
1055 sig_subObj->outBufSize - sig_subObj->outWritePos,
1060 sig_subObj->procState = PICOSIG_SCHEDULE;
1061 sig_subObj->retState = PICOSIG_COLLECT;
1066 if ((sig_subObjsig_subObj->inReadPos]
1068 && ((sig_subObj->inBuf[sig_subObj->inReadPos + 1]
1070 || (sig_subObj->inBuf[sig_subObj->inReadPos
1074 sig_subObj->nNumFrame));
1075 sig_subObj->nNumFrame = 0;
1079 sig_subObj->inReadPos += numinb;
1080 sig_subObj->outWritePos += numoutb;
1081 if (sig_subObj->inReadPos >= sig_subObj->inWritePos) {
1083 sig_subObj->inReadPos = 0;
1084 sig_subObj->inWritePos = 0;
1085 sig_subObj->needMoreInput = FALSE;
1087 sig_subObj->procState = PICOSIG_FEED;
1088 sig_subObj->retState = PICOSIG_COLLECT;
1101 + sig_subObj->inBuf[sig_subObj->inReadPos + 3];
1104 s_result = sigProcess(this, sig_subObj->inReadPos, numinb,
1105 sig_subObj->outWritePos, &numoutb);
1108 sig_subObj->inReadPos += numinb;
1109 if (sig_subObj->inReadPos >= sig_subObj->inWritePos) {
1110 sig_subObj->inReadPos = 0;
1111 sig_subObj->inWritePos = 0;
1112 sig_subObj->needMoreInput = FALSE;
1114 sig_subObj->outWritePos += numoutb;
1115 sig_subObj->procState = PICOSIG_FEED;
1116 sig_subObj->retState = PICOSIG_COLLECT;
1117 PICODBG_DEBUG(("picosig.sigStep -- leaving PICO_PROC, inReadPos = %i, outWritePos = %i",sig_subObj->inReadPos, sig_subObj->outWritePos));
1126 s_data = (picoos_int16 *) &(sig_subObj->outBuf[sig_subObj->outWritePos + 4]);
1127 hop_p_half = sig_subObj->sig_inner.hop_p / 2;
1130 b_res = picoos_sdfGetSamples(sig_subObj->sInSDFile,
1131 sig_subObj->sInSDFilePos, &n_samp, s_data);
1132 sig_subObj->sInSDFilePos += n_samp;
1136 picoos_sdfCloseIn(this->common, &(sig_subObj->sInSDFile));
1137 sig_subObj->sInSDFile = NULL;
1138 sig_subObj->sInSDFileName[0] = '\0';
1139 sig_subObj->procState = PICOSIG_COLLECT;
1140 sig_subObj->retState = PICOSIG_COLLECT;
1149 sf_mlt = (picoos_int32) ((sig_subObj->vMod) * 16.0f);
1166 sig_subObj->outBuf[sig_subObj->outWritePos]
1168 sig_subObj->outBuf[sig_subObj->outWritePos + 1]
1170 sig_subObj->outBuf[sig_subObj->outWritePos + 2]
1171 = (picoos_uint8) (sig_subObj->nNumFrame % (hop_p_half)); /*number of frame % 64*/
1172 sig_subObj->outBuf[sig_subObj->outWritePos + 3]
1175 sig_subObj->outWritePos += (n_samp * sizeof(picoos_int16)) + 4; /*including header*/
1176 sig_subObj->procState = PICOSIG_FEED;
1177 sig_subObj->retState = PICOSIG_PLAY;
1182 switch (sig_subObj->outSwitch) {
1186 &(sig_subObj->outBuf[sig_subObj->outReadPos]),
1187 sig_subObj->outWritePos - sig_subObj->outReadPos,
1192 if (sig_subObj->outBuf[sig_subObj->outReadPos]
1194 if ((sig_subObj->sOutSDFile) != NULL) {
1195 n_start = (picoos_uint32) (sig_subObj->outReadPos)
1197 n_bytes = (picoos_uint32) sig_subObj->outBuf[(sig_subObj->outReadPos)
1199 n_fram = (picoos_uint32) sig_subObj->outBuf[(sig_subObj->outReadPos)
1202 sig_subObj->sOutSDFile,
1204 (picoos_int16*) &(sig_subObj->outBuf[n_start]))) {
1211 &(sig_subObj->outBuf[sig_subObj->outReadPos]),
1212 sig_subObj->outWritePos
1213 - sig_subObj->outReadPos,
1217 if (sig_subObj->sOutSDFile != NULL) {
1218 picoos_sdfCloseOut(this->common, &(sig_subObj->sOutSDFile));
1219 sig_subObj->sOutSDFile = NULL;
1221 sig_subObj->sOutSDFileName[0] = '\0';
1222 sig_subObj->outSwitch = 0;
1223 PICODBG_DEBUG(("Error in writing :%d bytes to output file %s\n", numoutb, &(sig_subObj->sOutSDFileName[0])));
1231 &(sig_subObj->outBuf[sig_subObj->outReadPos]),
1232 sig_subObj->outWritePos - sig_subObj->outReadPos,
1244 sig_subObj->outReadPos += numoutb;
1249 if (sig_subObj->outReadPos >= sig_subObj->outWritePos) {
1250 sig_subObj->outReadPos = 0;
1251 sig_subObj->outWritePos = 0;
1252 sig_subObj->procState = sig_subObj->retState;
1265 sig_subObj->outReadPos = 0;
1266 sig_subObj->outWritePos = 0;
1267 sig_subObj->procState = sig_subObj->retState;