【问题标题】:How to connect midi receiver to output its data?如何连接 midi 接收器以输出其数据?
【发布时间】:2019-02-02 16:53:48
【问题描述】:

我正在尝试编写一个小代码,该代码将从我的钢琴中获取 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();

    }

}

【问题讨论】:

    标签: java midi


    【解决方案1】:

    当发送者有消息时,它会调用所有连接的接收者的send() 方法。因此,要获取消息,您必须实现自己的类来实现Receiver 接口。

    参见示例程序Listens to a MIDI port and dump the received event to the console

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 2015-12-24
      • 2012-01-06
      相关资源
      最近更新 更多