首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将Java midi连接到其他应用程序

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

Stack Overflow用户
提问于 2011-11-25 19:33:33
回答 1查看 1.8K关注 0票数 4

嗨,我在Windows上编写Java程序,对MIDI接口的工作非常陌生。

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

有没有人知道我会怎么做。关于这一点我已经在谷歌上找遍了,但总是看到同样的两个文档,

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

如果之前有人问过这个问题,我很抱歉,但我找不到。

这是我到目前为止所掌握的。任何帮助都将不胜感激。

代码语言:javascript
运行
复制
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)
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-25 22:45:15

您可以使用像MidiOx这样的程序来创建一个虚拟MIDI端点,您可以将MIDI消息发送到该端点。然后,在您的sequencer中,您只需告诉它接受来自该设备输出的MIDI消息,您就可以将其用作passthru管道。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8268506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档