No sound from Java MIDI

382 views Asked by At

I am currently learning Java from the book Head First Java. I am trying this code as given in the book:

import javax.sound.midi.*;

public class MiniMiniMusicApp {
    public static void main(String[] args) {
        MiniMiniMusicApp mini = new MiniMiniMusicApp();
        mini.play();    
    }

    public void play() {
        try {
            Sequencer player = MidiSystem.getSequencer();
            player.open();

            Sequence seq = new Sequence(Sequence.PPQ, 4);

            Track track = seq.createTrack();

            ShortMessage a = new ShortMessage();
            a.setMessage(144, 1, 44, 100);
            MidiEvent noteOn = new MidiEvent(a, 1);
            track.add(noteOn);

            ShortMessage b = new ShortMessage();
            b.setMessage(128, 1, 44, 100);
            MidiEvent noteOff = new MidiEvent(b, 16);
            track.add(noteOff);

            try {
                player.setSequence(seq);
                player.start();
                Thread.sleep(2000);
                player.close();
            } catch (InvalidMidiDataException ex) {
                System.out.println("Invalid MIDI data");
            }
        } catch (Exception ex) {
            System.out.println("Can't play sound");
            ex.printStackTrace();
        }
    }
}

However I get neither any sound nor any error when I run this code. I am using openjdk 11.0.6 on Pop! OS 19.10. I am not able to figure out what might be wrong.

0

There are 0 answers