import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiEvent;
import javax.sound.midi.Receiver;
import javax.sound.midi.ShortMessage;
import javax.sound.midi.Track;

import jp.crestmuse.cmx.sound.SequenceGeneratable;


public class NoteGen implements SequenceGeneratable {

  public boolean changeMeasure(Track track, long measureTick) {
    try {
      ShortMessage on = new ShortMessage();
      on.setMessage(ShortMessage.NOTE_ON, 2, 60, 127);
      ShortMessage off = new ShortMessage();
      off.setMessage(ShortMessage.NOTE_OFF, 2, 60, 0);
      track.add(new MidiEvent(on, measureTick));
      track.add(new MidiEvent(off, measureTick + 480));
    } catch (InvalidMidiDataException e) {
      e.printStackTrace();
    }
    return true;
  }

  public void sendInitializingMessages(Receiver r) {
    ShortMessage sm = new ShortMessage();
    try {
      sm.setMessage(ShortMessage.SYSTEM_RESET);
    } catch (Exception e) {
      e.printStackTrace();
    }
    r.send(sm, 0);
  }

}

