/** * Constructor. It breaks a Song into its MidiEvent components, and adds them together in order to * create a MIDI file. * * @param song The song to export */ public MidiExporter() { // Create the Sequence that will contain everything try { sequence = new Sequence(Sequence.PPQ, 2); } catch (InvalidMidiDataException ex) { ex.printStackTrace(); System.exit(1); } }
/** * Create the MidiEvent for a note, given the data. * * @param command The command value for the ShortMessage * @param note The MIDI value for the note to be played * @param eventTime When this event should occur * @param velocity The velocity of this note * @return The MidiEvent for the note */ private MidiEvent createNoteEvent(int command, int note, int eventTime, int velocity) { // Create the message and set its parameters to the ones given. ShortMessage message = new ShortMessage(); try { message.setMessage(command, 0, note, velocity); } catch (InvalidMidiDataException ex) { // Something went wrong. ex.printStackTrace(); System.exit(1); } // Create the MidiEvent and return it. return new MidiEvent(message, eventTime); }