Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Java midi接口到其他应用程序_Java_Midi_Synthesis_Sound Synthesis - Fatal编程技术网

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

如何将Java midi接口到其他应用程序,java,midi,synthesis,sound-synthesis,Java,Midi,Synthesis,Sound Synthesis,您好,我正在Windows上编程Java,对使用MIDI接口非常陌生 我已经设法让java通过合成器对象播放midi声音,本机通过计算机扬声器播放,但是我希望能够将midi消息实时发送到一个单独的合成应用程序,即FLStudio。我认为我必须使java接口看起来像一个硬件midi设备,但我不知道如何做到这一点。我也认为这可能与发射机或MIDI设备有关,但我不确定 有人知道我将如何着手这件事吗。我在谷歌上搜索过这方面的内容,但最终都是相同的两个文档 和 对不起,如果以前有人问过这个问题,我找不

您好,我正在Windows上编程Java,对使用MIDI接口非常陌生

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

有人知道我将如何着手这件事吗。我在谷歌上搜索过这方面的内容,但最终都是相同的两个文档

对不起,如果以前有人问过这个问题,我找不到

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

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)
    }
}

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

是否可以在本机java中实现“loopbe”或“MIDI-yoke”的行为?秘密是什么?Thanks@user547064可能不会。“秘密”是编写MIDI驱动程序并在其中虚拟地路由消息。然而,直接与操作系统接口并不是Java真正强大的套件。