package org.jfugue; import javax.sound.midi.MidiDevice; import javax.sound.midi.MidiSystem; import javax.sound.midi.MidiUnavailableException; /** * Represents an attached MIDI device, such as a keyboard. This class uses * javax.sound.MidiDevice, but is not derived from javax.sound.MidiDevice. * * @author David Koelle * @version 3.0 */ public class ReceiverDevice { // private Receiver receiver; public ReceiverDevice(MidiDevice.Info info) throws MidiUnavailableException { MidiDevice device = null; device = MidiSystem.getMidiDevice(info); if (!(device.isOpen())) { device.open(); } // this.receiver = device.getReceiver(); } /** * Send the given sequence to the MIDI device - use this to send MIDI files * to your keyboard! * * @param sequence * The sequence to send to the MIDI device */ // public void sendSequence(Sequence sequence) // { // TimeEventManager tem = new TimeEventManager(); // // // ============================================== // // made null because getEvents does not exist // // TODO must fix this if we ever need it // MidiEvent[] events = tem.getEvents(sequence); // // ============================================== // // long elapsedTime = 0; // for (int i = 0; i < events.length; i++) { // MidiEvent event = events[i]; // MidiMessage message = event.getMessage(); // // long timestamp = event.getTick(); // long deltaTime = timestamp - elapsedTime; // elapsedTime = timestamp; // // if (deltaTime < 500) { // System.out.print("sleeping for "+deltaTime+"..."); // try { // Thread.sleep((int)(deltaTime * 1.25)); // } catch (Exception ex) // { // ex.printStackTrace(); // } // System.out.println("awake"); // } // // receiver.send(message, -1); // } // } }