【发布时间】:2012-01-06 07:09:48
【问题描述】:
您好,我正在 Windows 上编写 Java,并且对使用 MIDI 接口非常陌生。
我已经设法让java通过Synthesizer对象播放midi声音,本机通过计算机扬声器但是我希望将midi消息即时发送到单独的合成应用程序,即FLStudio。我想我必须让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)
}
}
【问题讨论】:
标签: java midi synthesis sound-synthesis