nv = select_play_sample(ip->sample, ip->samples, note, vlist, e); 
nv = select_play_sample(ip->sample, ip->samples, &note, vlist, e); 
static int find_samples(MidiEvent *e, int *vlist){	int i, j, ch, bank, prog, note, nv;	SpecialPatch *s;	Instrument *ip;		ch = e->channel;	if (channel[ch].special_sample > 0) {		if ((s = special_patch[channel[ch].special_sample]) == NULL) {			ctl->cmsg(CMSG_WARNING, VERB_VERBOSE,					"Strange: Special patch %d is not installed",					channel[ch].special_sample);			return 0;		}		note = e->a + channel[ch].key_shift + note_key_offset + key_adjust;		note = (note < 0) ? 0 : ((note > 127) ? 127 : note);		return select_play_sample(s->sample, s->samples, note, vlist, e);	}	bank = channel[ch].bank;	if (ISDRUMCHANNEL(ch)) {		note = e->a & 0x7f;		instrument_map(channel[ch].mapID, &bank, &note);		if (! (ip = play_midi_load_instrument(1, bank, note)))			return 0;	/* No instrument? Then we can't play. */		/* if (ip->type == INST_GUS && ip->samples != 1)			ctl->cmsg(CMSG_WARNING, VERB_VERBOSE,					"Strange: percussion instrument with %d samples!",					ip->samples); */		/* "keynum" of SF2, and patch option "note=" */		if (ip->sample->note_to_use)			note = ip->sample->note_to_use;	} else {		if ((prog = channel[ch].program) == SPECIAL_PROGRAM)			ip = default_instrument;		else {			instrument_map(channel[ch].mapID, &bank, &prog);			if (! (ip = play_midi_load_instrument(0, bank, prog)))				return 0;	/* No instrument? Then we can't play. */		}		note = ((ip->sample->note_to_use) ? ip->sample->note_to_use : e->a)				+ channel[ch].key_shift + note_key_offset + key_adjust;		note = (note < 0) ? 0 : ((note > 127) ? 127 : note);	}	nv = select_play_sample(ip->sample, ip->samples, note, vlist, e);	/* Replace the sample if the sample is cached. */	if (! prescanning_flag) {		if (ip->sample->note_to_use)			note = MIDI_EVENT_NOTE(e);		for (i = 0; i < nv; i++) {			j = vlist[i];			if (! opt_realtime_playing && allocate_cache_size > 0					&& ! channel[ch].portamento) {				voice[j].cache = resamp_cache_fetch(voice[j].sample, note);				if (voice[j].cache)	/* cache hit */					voice[j].sample = voice[j].cache->resampled;			} else				voice[j].cache = NULL;		}	}	return nv;}
4357	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4357/5ff850711031f3a79eb4d58e752b53f155df1c92/playmidi.c/buggy/timidity/playmidi.c