    if(Notify) if(Error)ERR1("\n*** CMUSIC: %d errors detected - no synthesis ***\n\n",Error);
#ifdef CSOUND
    /* close any remaining open sound files */
    sfallclose();
#endif

#ifdef nextsf			/* start of stuff added by sfl */
#import <sound/sound.h>
   if (Outfilename != NULL) {
	SNDSoundStruct  snd, *sndp;
	FILE   *fp;
	long dtotal;
	int  ret;

	close( ofiledes);			/* leftover from sndout */
	if(( fp = fopen( Outfilename, "r+" )) == NULL )
		fprintf(stderr, "%s not opened for updating!\n", Outfilename);
	else {
		sndp = &snd;
		dtotal = (long) (Endtime*Srate*Nchan) <<1;  /* in bytes */
		if(( ret = fread( sndp, sizeof(snd), 1, fp)) <= 0)
		   fprintf(stderr, "Error reading %s header - %d!\n", Outfilename, ret);
		sndp->dataSize = dtotal;
		rewind( fp);
		if(( ret = fwrite(sndp, sizeof(snd), 1, fp)) <= 0)
		   fprintf(stderr, "Error updating %s header - %d!\n", Outfilename, ret);
		fclose( fp);
	}
   }
#endif				/* end of stuff added by sfl */

    flushfloat();
    pclose(Infile);
    exit(0);
}
init(){

    Now = Time = Future = 0.0;

    Lout=Nchan*Lblocks;
    if(Outblock){
	Outblock = Outptr = (float *) realloc(Outblock, Lout*sizeof(float));
	Sampout = (short *) realloc(Sampout, Lout*sizeof(short));
	Grevblock = (float *) calloc(Lblocks,sizeof(float));
    } else {
	Outblock = Outptr = (float *) malloc(Lout*sizeof(float));
	Sampout = (short *) malloc(Lout*sizeof(short));
	Grevblock = (float *) calloc(Lblocks,sizeof(float));
    }

    if(!Vars) Vars = Vp = (float *) calloc((Vmax = Nvars)+1,sizeof(float));
    if(!Params) Params = Pp = (float *) calloc((Pmax = Nparams)+1,sizeof(float));
}
