&& vp->status & (VOICE_ON | VOICE_SUSTAINED)) { 
&& vp->status & (VOICE_ON | VOICE_SUSTAINED)) {  int32 new_rate;  
int recompute_modulation_envelope(int v){	int stage, ch;	double sustain_time;	int32 modenv_width;	Voice *vp = &voice[v];	if(!opt_modulation_envelope) {return 0;}	stage = vp->modenv_stage;	if (stage > EG_GUS_RELEASE3) {return 1;}	else if (stage > EG_GUS_SUSTAIN && vp->modenv_volume <= 0) {		return 1;	}	if (stage == EG_GUS_RELEASE1 && vp->sample->modes & MODES_ENVELOPE			&& vp->status & (VOICE_ON | VOICE_SUSTAINED)) {		ch = vp->channel;		/* Default behavior */		if (min_sustain_time <= 0 && channel[ch].loop_timeout <= 0)			/* Freeze envelope until note turns off */			vp->modenv_increment = 0;		else {			if (min_sustain_time == 1)				/* The sustain stage is ignored. */				return modenv_next_stage(v);			if (channel[ch].loop_timeout * 1000 > min_sustain_time) {				sustain_time = min_sustain_time;			} else {				/* timeout (See also "#extension timeout" line in *.cfg file */				sustain_time = channel[ch].loop_timeout * 1000;			}			if (channel[ch].sostenuto == 0) {				sustain_time *= (double)channel[ch].sustain / 127.0f;			}			/* Calculate the release phase speed. */			modenv_width = sustain_time * play_mode->rate				/ (1000.0f * (double)control_ratio);						vp->modenv_increment = -1;			vp->modenv_target = vp->modenv_volume - modenv_width;			if (vp->modenv_target < 0) {vp->modenv_target = 0;}		}		return 0;	}	return modenv_next_stage(v);}
4357	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4357/86626c98bd64f8be7730445c93d940fd5f83f18e/mix.c/buggy/timidity/mix.c