我不太了解Java的MIDI功能。事实上,它完全让我感到困惑。然而,我想要做的是只是构建一个简单的应用程序,它将播放一个音符。
如何使用Java Sound播放单个MIDI音符?
对网络的支持几乎不存在,我完全不知所措。
答案 0 :(得分:13)
我知道这是一个非常古老的问题,但是,作为一名新手程序员,我很难搞清楚如何做到这一点,所以我想我会分享以下hello-world风格的程序,它将Java带到播放单个midi音符以帮助其他任何人开始。
import javax.sound.midi.*;
public class MidiTest{
public static void main(String[] args) {
try{
/* Create a new Sythesizer and open it. Most of
* the methods you will want to use to expand on this
* example can be found in the Java documentation here:
* https://docs.oracle.com/javase/7/docs/api/javax/sound/midi/Synthesizer.html
*/
Synthesizer midiSynth = MidiSystem.getSynthesizer();
midiSynth.open();
//get and load default instrument and channel lists
Instrument[] instr = midiSynth.getDefaultSoundbank().getInstruments();
MidiChannel[] mChannels = midiSynth.getChannels();
midiSynth.loadInstrument(instr[0]);//load an instrument
mChannels[0].noteOn(60, 100);//On channel 0, play note number 60 with velocity 100
try { Thread.sleep(1000); // wait time in milliseconds to control duration
} catch( InterruptedException e ) { }
mChannels[0].noteOff(60);//turn of the note
} catch (MidiUnavailableException e) {}
}
}
上面的代码主要是通过剪切,粘贴和搞乱几个在线教程中的代码来创建的。以下是我发现的最有用的教程:
http://www.ibm.com/developerworks/library/it/it-0801art38/
这是一个很棒的教程,可能有你想要的一切;然而,起初可能有点压倒性。
http://patater.com/gbaguy/javamidi.htm
具有15岁的非工作代码。这令人惊讶 - 这是我发现的最有用的东西。
答案 1 :(得分:4)
你走了:
MIDI Tag有关stackoverflow的信息