The 2nd midi in Processing example will use the Receiver interface to capture all the midi messages during the playback of a midi file. The program uses the custom GetMidi class to implement the Receiver interface. During the playback, it will display the NOTE_ON message with information of channel, octave and note.
This is my first use of midi in Processing. I do not use the MidiBus library for Processing. Instead, I try to use the standard midi package in Java. The SE8 standard Java package also contains the javadoc documentation.
The code basically needs a Synthesizer class to render midi instruments into audio and a Sequencer class to playback the midi sequence.
Synthesizer synth = MidiSystem.getSynthesizer(); Sequencer player = MidiSystem.getSequencer(); synth.open(); player.open();
All the midi music files are in the data folder of the Processing sketch. To playback each piece of midi music, we need to convert each into a Java File object and use the following code to playback it. The variable f is a File object instance containing the midi file in the data folder.
Sequence music = MidiSystem.getSequence(f); player.setSequence(music); player.start();