Я пытаюсь написать небольшой код, который будет принимать MIDI-вход с моего пианино и выводить информацию о заметке каждый раз, когда я нажимаю клавишу на консоли. До сих пор я получил код для перечисления доступных MIDI-устройств и подключался к передатчику устройства, который затем отправляет информацию получателю.Как подключить приемник 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();
}
}