Commit d242c2e5 authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch13] Book version of MiniMusicCmdLine

parent 7bdfad32
Loading
Loading
Loading
Loading
+47 −0
Changes for src/main/java/ch13/MiniMusicCmdLine.java: 47 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch13;

import javax.sound.midi.*;

public class MiniMusicCmdLine {       
   public static void main(String[] args) {
        MiniMusicCmdLine mini = new MiniMusicCmdLine();
        if (args.length < 2) {
            System.out.println("Don’t forget the instrument and note args");
        } else {
            int instrument = Integer.parseInt(args[0]);
            int note = Integer.parseInt(args[1]);
            mini.play(instrument, note);
        }
   } // close main

   public void play(int instrument, int note) {

      try {
 
         Sequencer player = MidiSystem.getSequencer();         
         player.open();     
         Sequence seq = new Sequence(Sequence.PPQ, 4);         
         Track track = seq.createTrack();  
       
         MidiEvent event = null;

         ShortMessage first = new ShortMessage();
         first.setMessage(192, 1, instrument, 0);
         MidiEvent changeInstrument = new MidiEvent(first, 1); 
         track.add(changeInstrument);

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

         ShortMessage b = new ShortMessage();
         b.setMessage(128, 1, note, 100);
         MidiEvent noteOff = new MidiEvent(b, 16); 
         track.add(noteOff);
         player.setSequence(seq); 
         player.start();

      } catch (Exception ex) {ex.printStackTrace();}
   } // close play
} // close class
 No newline at end of file
+27 −0
Changes for src/main/java/ch13/Snippets.java: 27 added lines, 0 removed lines.
Original line number Diff line number Diff line
package ch13;

public class Snippets {
  void testTryCatch() {
    try {
      Risky x = new Risky();
      Foo f = x.doRiskyThing();
      int b = f.getNum();

    } catch (Exception e) {
      System.out.println("failed");
    }
    System.out.println("We made it!");
  }
}

class Risky {
  public Foo doRiskyThing() {
    return null;
  }
}

class Foo {
  public int getNum() {
    return 0;
  }
}