(FILECREATED "25-Jul-84 21:17:58" {ERIS}<SPEECH>HALVORSEN>SPEECHFIX.;1 3069         changes to:  (VARS SPEECHFIXCOMS)		   (FNS MEEF FOOBAR SPEECH.SYNTHSLICE SPEECH.SYNTHTRAJ))(* Copyright (c)  by NIL. All rights reserved.)(PRETTYCOMPRINT SPEECHFIXCOMS)(RPAQQ SPEECHFIXCOMS ((FNS FOOBAR MEEF SPEECH.SYNTHSLICE SPEECH.SYNTHTRAJ)))(DEFINEQ(FOOBAR  (LAMBDA (X)                                                (* kbr: "25-Jul-84 16:26")    (FOR I FROM 1 TO (ARRAYSIZE X) DO (COND					((>$ (ELT X I)					     0.0)					  (SETF (ELT X I)						(x$ 26.38071 (LOG (ELT X I)))))					((<$ (ELT X I)					    0.0)					  (SETF (ELT X I)						(x$ 26.38071 (0-$ (LOG (0-$ (ELT X I)))))))					(T (SETF (ELT X I)						 0.0))))))(MEEF  (LAMBDA NIL                                                (* kbr: "25-Jul-84 16:33")    (FOR I FROM 1 TO 10000 DO (SPEECH.BOUT S (FIXR (ELT X (+ 100 (IMOD I 100))))))))(SPEECH.SYNTHSLICE  (LAMBDA (SLICE)                                            (* edited: "25-Jul-84 14:28")                                                             (* SPEECH.WAVE created according to contents of SLICE We							     do 4 periods%, then fake the rest.							     *)    (COND      ((NULL SLICE)	(SETQ SLICE SPEECH.SLICE)))    (PROG (PERIOD0)          (COEWAVE.INIT.COEFF SPEECH.COEFF)          (COEWAVE.INIT.MEMORY SPEECH.MEMORY)                (* PERIOD0 = glottal period. *)          (SETQ PERIOD0 (/ SR (PVECTOR.F0 SLICE)))          (COND	    ((ZEROP PERIOD0)	      (SETQ PERIOD0 100)))          (FOR (N _ 1) BY (+ N PERIOD0) WHILE (< N (ARRAYSIZE SPEECH.WAVE)) AS I FROM 1 TO 4	     DO (PARCOE.PTC SLICE SPEECH.COEFF)		(COEWAVE.CTW SPEECH.COEFF SPEECH.MEMORY SPEECH.WAVE N (IMIN (+ N PERIOD0 -1)									    (ARRAYSIZE SPEECH.WAVE))))          (FOR N FROM (1+ (x 4 PERIOD0)) TO (ARRAYSIZE SPEECH.WAVE)	     DO (SETF (ELT SPEECH.WAVE N)		      (ELT SPEECH.WAVE (+ (x 3 PERIOD0)					  (\ N PERIOD0))))		(COND		  (COEWAVE.TRACE (WDISPLAY.DRAWXY N (ELT SPEECH.WAVE N)						  COEWAVE.WINDOW))))          (RETURN SPEECH.WAVE))))(SPEECH.SYNTHTRAJ  (LAMBDA (TRAJ)                                             (* edited: "25-Jul-84 14:28")                                                             (* SPEECH.WAVE created according to contents of TRAJ *)    (COND      ((NULL TRAJ)	(SETQ TRAJ SPEECH.TRAJ)))    (PROG NIL          (COEWAVE.INIT.COEFF SPEECH.COEFF)          (COEWAVE.INIT.MEMORY SPEECH.MEMORY)                (* Synthesize%, updating SPEECH.COEFF every 50 samples 							     *)          (FOR (N _ 1) BY (+ N 50) WHILE (< N (ARRAYSIZE SPEECH.WAVE))	     DO (PARCOE.INTERPOLATE N TRAJ SPEECH.SLICE)		(PARCOE.PTC SPEECH.SLICE SPEECH.COEFF)		(COEWAVE.CTW SPEECH.COEFF SPEECH.MEMORY SPEECH.WAVE N (IMIN (+ N 49)									    (ARRAYSIZE SPEECH.WAVE))))          (RETURN SPEECH.WAVE)))))(DECLARE: DONTCOPY  (FILEMAP (NIL (347 3047 (FOOBAR 357 . 776) (MEEF 778 . 980) (SPEECH.SYNTHSLICE 982 . 2229) (SPEECH.SYNTHTRAJ 2231 . 3045)))))STOP