if(voice[i].status==VOICE_ON && voice[i].channel==ch && voice[i].note==note && voice[i].vid==vid) 
if(voice[i].status == VOICE_ON && voice[i].channel == ch && voice[i].note == note && voice[i].vid == vid) 
static void note_off(MidiEvent *e){  int uv = upper_voices, i;  int ch, note, vid, sustain;  ch = e->channel;  note = MIDI_EVENT_NOTE(e);  if(ISDRUMCHANNEL(ch) && channel[ch].drums[note] != NULL &&     get_rx_drum(channel[ch].drums[note], RX_NOTE_OFF))  {      ToneBank *bank;      bank = drumset[channel[ch].bank];      if(bank == NULL) bank = drumset[0];            /* uh oh, this drum doesn't have an instrument loaded yet */      if (bank->tone[note].instrument == NULL)          return;      /* this drum is not loaded for some reason (error occured?) */      if (IS_MAGIC_INSTRUMENT(bank->tone[note].instrument))          return;      /* only disallow Note Off if the drum sample is not looped */      if (!(bank->tone[note].instrument->sample->modes & MODES_LOOPING))	  return;	/* Note Off is not allowed. */  }  if((vid = last_vidq(ch, note)) == -1)      return;  sustain = channel[ch].sustain;  for(i = 0; i < uv; i++)  {      if(voice[i].status==VOICE_ON &&	 voice[i].channel==ch &&	 voice[i].note==note &&	 voice[i].vid==vid)      {	  if(sustain)	  {	      voice[i].status=VOICE_SUSTAINED;	      ctl_note_event(i);	  }	  else	      finish_note(i);      }  }  channel[ch].legato_flag = 0;}
4357	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4357/3c39a94bcce7eb6b4f98728acfa10100fe9784ac/playmidi.c/buggy/timidity/playmidi.c