@SuppressWarnings("rawtypes") private static void sortEvents(Vector evtList, Vector phrVct, SMFTools smf, Part part) { double startTime = 0.0; double[] currentLength = new double[100]; Note[] curNote = new Note[100]; int phrIndex = 0; // Go through evts for (int i = 0; i < evtList.size(); i++) { Event evt = (Event) evtList.elementAt(i); startTime += (double) evt.getTime() / (double) smf.getPPQN(); if (evt.getID() == 007) { PChange pchg = (PChange) evt; part.setInstrument(pchg.getValue()); // if this event is a NoteOn event go on } else if (evt.getID() == 005) { NoteOn noteOn = (NoteOn) evt; part.setChannel(noteOn.getMidiChannel()); short pitch = noteOn.getPitch(); int dynamic = noteOn.getVelocity(); short midiChannel = noteOn.getMidiChannel(); // if you're a true NoteOn if (dynamic > 0) { noteOn( phrIndex, curNote, smf, i, currentLength, startTime, phrVct, midiChannel, pitch, dynamic, evtList); } } } }