int32 depth_range; 
static void init_voice_vibrato(int v){	Voice *vp = &(voice[v]);	int ch = vp->channel, j, flag;	double ratio;	int32 depth_range;	flag = opt_nrpn_vibrato		&& (channel[ch].vibrato_ratio != 1.0 || channel[ch].vibrato_depth);		/* vibrato sweep */	vp->vibrato_sweep = vp->sample->vibrato_sweep_increment;	vp->vibrato_sweep_position = 0;	/* vibrato rate */	if (flag) {		if(vp->sample->vibrato_control_ratio == 0) {			ratio = (double)(play_mode->rate) / (5.0 * 2 * VIBRATO_SAMPLE_INCREMENTS) * channel[ch].vibrato_ratio;		} else {			ratio = (double)vp->sample->vibrato_control_ratio * channel[ch].vibrato_ratio;		}		if (ratio < 0) {ratio = 0;}		vp->vibrato_control_ratio = (int)ratio;	} else {		vp->vibrato_control_ratio = vp->sample->vibrato_control_ratio;	}		/* vibrato depth */	if (flag) {		if (vp->sample->vibrato_depth < 0) {			vp->vibrato_depth = vp->sample->vibrato_depth - channel[ch].vibrato_depth;		} else {			vp->vibrato_depth = vp->sample->vibrato_depth + channel[ch].vibrato_depth;		}		if (vp->vibrato_depth == 0) {vp->vibrato_depth = 1;}		depth_range = ((channel[ch].rpnmap[RPN_ADDR_0005] << 8) | channel[ch].rpnmap_lsb[RPN_ADDR_0005]) / 4;		if (vp->vibrato_depth > depth_range) {vp->vibrato_depth = depth_range;}		else if (vp->vibrato_depth < -depth_range) {vp->vibrato_depth = -depth_range;}	} else {		vp->vibrato_depth = vp->sample->vibrato_depth;	}		/* vibrato delay */	vp->vibrato_delay = vp->sample->vibrato_delay + channel[ch].vibrato_delay;		/* internal parameters */	vp->orig_vibrato_control_ratio = vp->vibrato_control_ratio;	vp->vibrato_control_counter = vp->vibrato_phase = 0;	for (j = 0; j < VIBRATO_SAMPLE_INCREMENTS; j++) {		vp->vibrato_sample_increment[j] = 0;	}}
4357	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4357/98f21bed88593fba329277bc7ec0724fbe9c4b20/playmidi.c/buggy/timidity/playmidi.c