4

こんにちは、私は Windows で Java をプログラミングしており、MIDI インターフェイスを扱うのは初めてです。

私はJavaがシンセサイザーオブジェクトを介してネイティブにコンピューターのスピーカーを介してMIDIサウンドを再生できるようにしましたが、FLStudioという別の合成アプリケーションにオンザフライでMIDIメッセージを送信したいと考えています。Java インターフェイスをハードウェア MIDI デバイスのように見せる必要があると思いますが、これを行う方法がわかりません。また、Transmitter または MidiDevice と関係があるのではないかと思いますが、よくわかりません。

私がこれについてどのように始めたのか、誰かが知っていますか。これについてGoogle全体を見てきましたが、常に同じ2つのドキュメントになります。

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

この質問が以前に尋ねられた場合は申し訳ありませんが、見つけられませんでした。

これが私がこれまでに持っているものです。どんな助けでも大歓迎です。

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

1 に答える 1

3

MidiOxのようなプログラムを使用して、MIDI メッセージを送信できる仮想 MIDI エンドポイントを作成できます。次に、シーケンサーで、そのデバイスの出力から MIDI メッセージを受け入れるように指示するだけで、それをパススルー パイプとして使用できます。

于 2011-11-25T14:45:15.213 に答える