Java 从钢琴读取现场MIDI数据并输出到控制台?

Java 从钢琴读取现场MIDI数据并输出到控制台?,java,live,midi,Java,Live,Midi,我想创建一个程序,记录我在midi钢琴上弹奏的音符,该钢琴通过scarlet 2i4连接到我的计算机,并在我弹奏时在控制台中显示音符。我已经阅读了MIDI部分的Java文档,但是我对数据的去向以及如何显示数据感到非常困惑。这是我到目前为止写的: public class Get { public static void main(String[] args) throws MidiUnavailableException{ javax.sound.midi.Mi

我想创建一个程序,记录我在midi钢琴上弹奏的音符,该钢琴通过scarlet 2i4连接到我的计算机,并在我弹奏时在控制台中显示音符。我已经阅读了MIDI部分的Java文档,但是我对数据的去向以及如何显示数据感到非常困惑。这是我到目前为止写的:

    public class Get {

    public static void main(String[] args) throws MidiUnavailableException{
        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 inputDevice = MidiSystem.getMidiDevice(infos[deviceNumber]);
        inputDevice.open();
        Transmitter trans = inputDevice.getTransmitter();
        System.out.println(trans.toString());

    }

}
公共类获取{
公共静态void main(字符串[]args)引发MidiUnavailableException{
javax.sound.midi.MidiDevice.Info[]infos=MidiSystem.getMidiDeviceInfo();
System.out.println(“选择Midi设备编号:”);

对于(int i=0;我想…输出的是什么?您是否遇到异常?不要期望我们运行您的代码来确定这些内容。我认为,除了打开适当的midi设备之外,目前没有什么作用。我主要是在寻求有关如何用Java语言传输midi数据的建议。我是否会尝试创建一个循环来不断读取这些数据midi设备持续?任何关于方法的建议都会非常有用,这就是我为什么要问的原因。您的最后一行是
系统。out::println
,我想知道它打印了什么。当然!是的,所以输出如下:线程“main”中的异常javax.sound.midi.MidiUnavailableException:midi输出发射机在com.sun.media.sound.AbstractMidiDevice.CreateTransmiter(未知源)的com.sun.media.sound.AbstractMidiDevice.GetTransmiter(未知源)的Get.main(Get.java:23)上不可用如果您使用的是IDE,您能告诉我第23行的代码是什么吗?我假设您上面发布的不是完整的文件,因为它缺少
声明。那么…输出的是什么?您是否遇到异常?不要指望我们运行您的代码来确定这些内容。在这一点上,除了open之外,它没有做什么我相信这是合适的midi设备。我主要是在寻求关于如何用Java语言传输midi数据的建议。我会尝试做一个循环,不断地读取midi设备吗?关于方法的任何建议都会非常有用,这就是我为什么要问的原因。你的最后一行是
System.out::println
,我想知道是什么是的,所以输出如下:线程“main”javax.sound.midi.MidiUnavailableException中的异常:midi输出传送器在com.sun.media.sound.AbstractMidiDevice.CreateTransmiter上不可用,位于com.sun.media.sound.AbstractMidiDevice.getTransmitter(未知源)在Get.main(Get.java:23)如果您使用的是IDE,您能告诉我第23行是什么代码吗?我假设您上面发布的不是完整的文件,因为它缺少
声明。