private static int TrackVoiceStats(MidiEvent midiEvent, FastList <byte> instList, FastList <byte> drumList, FastList <byte> channelList, int noteOnCount)
{
if (midiEvent.Command == MidiEventTypeEnum.NoteOn)
{
var chan = midiEvent.Channel;
if (channelList.IndexOf((byte)chan) == -1)
{
channelList.Add((byte)chan);
}
noteOnCount++;
}
else if (midiEvent.Command == MidiEventTypeEnum.ProgramChange)
{
var chan = midiEvent.Channel;
var prog = midiEvent.Data1;
if (chan == MidiHelper.DrumChannel)
{
if (drumList.IndexOf((byte)prog) == -1)
{
drumList.Add((byte)prog);
}
}
else
{
if (instList.IndexOf((byte)prog) == -1)
{
instList.Add((byte)prog);
}
}
}
return(noteOnCount);
}