How to play a midi file from a Java application
By Angsuman Chakraborty, Gaea News NetworkFriday, November 12, 2004
I got a question on how to play a midi file from a Java application.
Presented below is a simple demonstration program.
You can view it better here.
import javax.sound.midi.*; import java.io.*; /** Plays a midi file provided on command line */ public class MidiPlayer { public static void main(String args[]) { // Argument check if(args.length == 0) { helpAndExit(); } String file = args[0]; if(!file.endsWith(".mid")) { helpAndExit(); } File midiFile = new File(file); if(!midiFile.exists() || midiFile.isDirectory() || !midiFile.canRead()) { helpAndExit(); } // Play once try { Sequencer sequencer = MidiSystem.getSequencer(); sequencer.setSequence(MidiSystem.getSequence(midiFile)); sequencer.open(); sequencer.start(); while(true) { if(sequencer.isRunning()) { try { Thread.sleep(1000); // Check every second } catch(InterruptedException ignore) { break; } } else { break; } } // Close the MidiDevice & free resources sequencer.stop(); sequencer.close(); } catch(MidiUnavailableException mue) { System.out.println("Midi device unavailable!"); } catch(InvalidMidiDataException imde) { System.out.println("Invalid Midi data!"); } catch(IOException ioe) { System.out.println("I/O Error!"); } } /** Provides help message and exits the program */ private static void helpAndExit() { System.out.println("Usage: java MidiPlayer midifile.mid"); System.exit(1); } }
Discussion
November 30, 2004: 11:26 pm
Thanks! This is interesting! I used JDK 1.5 and it compiled and ran fine on my system. Which version of jdk are you using? Angsuman |
![]() Gyorgy Molnar |
November 30, 2004: 4:14 pm
It didn’t work for me at the first. I had to replace the order of two lines. After it was perfect. Thanks for the demo. |
![]() Karen (karry1412) |
YOUR VIEW POINT
Peter