2017-02-10 5 views
0

피아노에서 미디 입력을 받아 콘솔에 키를 누를 때마다 노트 정보를 출력하는 작은 코드를 작성하려고합니다. 지금까지 사용 가능한 MIDI 장치를 나열하고 장치의 송신기에 연결 한 다음 수신자에게 정보를 보내는 코드를 받았습니다.미디 수신기를 연결하여 데이터를 출력하는 방법은 무엇입니까?

(MIDI 노트의)이 데이터를 콘솔에 표시하고 지속적으로 새로 고치는 방법은 무엇입니까? while 루프를 사용할 생각이었습니다. 송신기가 메시지를 갖는 경우

import java.util.Scanner; 

import javax.sound.midi.InvalidMidiDataException; 
import javax.sound.midi.MidiDevice; 
import javax.sound.midi.MidiSystem; 
import javax.sound.midi.MidiUnavailableException; 
import javax.sound.midi.Receiver; 
import javax.sound.midi.Sequence; 
import javax.sound.midi.Sequencer; 
import javax.sound.midi.Track; 
import javax.sound.midi.Transmitter; 
import javax.sound.sampled.DataLine.Info; 

public class Get { 

    public static void main(String[] args) throws MidiUnavailableException, InvalidMidiDataException, InterruptedException{ 
     javax.sound.midi.MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo(); 
     System.out.println("Select Midi Device Number:"); 
     for(int i=0;i<infos.length;i++){ 
      System.out.println("Device Number " + i + ": " + infos[i].getName() + " - " + infos[i].getDescription()); 
     } 
     System.out.println("Enter device number then press enter..."); 
     Scanner in = new Scanner(System.in); 
     int deviceNumber = in.nextInt(); 
     MidiDevice input1Device = MidiSystem.getMidiDevice(infos[deviceNumber]); 
     MidiDevice inputDevice = MidiSystem.getMidiDevice(infos[deviceNumber]); 
     Sequencer sequencer = MidiSystem.getSequencer(); 
     Transmitter trans = inputDevice.getTransmitter(); 
     trans.setReceiver(MidiSystem.getReceiver()); 
     Receiver rec = trans.getReceiver(); 

    } 

} 

답변