如何将Java midi连接到其他应用程序



大家好,我正在Windows上编写Java程序,对使用MIDI接口非常陌生。

我已经设法让java通过合成器对象播放midi声音,本机通过计算机扬声器,但我希望在飞行中发送midi消息到一个单独的合成应用程序,即FLStudio。我想我必须使java界面看起来像硬件midi设备,但我不知道如何做到这一点。我也认为它可能与发射器或mididdevice有关,但我不确定。

有谁知道我将如何开始做这件事吗?我在谷歌上找遍了,但总是找到同样的两个文档,

http://www.jsresources.org/faq_midi.html和http://www.ibm.com/developerworks/library/it/it - 0801 art38/

对不起,如果这个问题之前已经问过了,但我找不到它。

这是我目前所知道的。如有任何帮助,我将不胜感激。

import javax.sound.midi.*;
public class Midi
{
    public static final void main(String args[]) throws Exception
    {
        //create and open synthesizer
        Synthesizer syn = MidiSystem.getSynthesizer();
        syn.open();
        //open midi channels (we'll use channel 5)
        final MidiChannel[] mc = syn.getChannels();
        //set instruments
        Instrument[] instr = syn.getDefaultSoundbank().getInstruments();
        //Possible ways to send midi to FLStudio, rather than inbuilt
        //javax.sound.midi.Transmitter?
        //javax.sound.midi.MidiDevice?
        // change instrument, using midi codes
        mc[5].programChange(instr[0].getPatch().getProgram());
        // Play note
        mc[5].noteOn(50,1000); //(noteNumber, velocity)
    }
}

您可以使用midox之类的程序来创建一个虚拟的MIDI端点,您可以将MIDI消息发送到该端点。然后,在您的音序器中,您只需告诉它接受来自该设备输出的MIDI消息,并且您可以将其用作passthru管道。

相关内容

  • 没有找到相关文章

最新更新