日期:2014-05-20  浏览次数:20784 次

java 怎么生成midi文件?急求高手解答!!!
我们多媒体的期末作业我选了一个midi的项目,要求给出midi文件的信息,然后还要生成一个midi文件。。。

我找了N多资料。。好像都没有编程实现生成midi文件的。。我晕死。。我个人又只有对java有基础。其他编程语言都不会。。。希望高人指点下。如何才能用java编程生成midi文件??java的sound   midi的api我看过了。。但是还是不会用,不知道里面有没有可以生成midi的方法。。

------解决方案--------------------
继续关注
------解决方案--------------------
找了好久,没找到,LZ找到了米?~
------解决方案--------------------
使用 jfugue包,网上可以下载
------解决方案--------------------
try this one:

import javax.sound.midi.*;

class Test
{
public static void main(String[] args)
{
try
{
Sequencer sequencer = MidiSystem.getSequencer();
sequencer.open();

Sequence seq = new Sequence(Sequence.PPQ, 4);
Track track = seq.createTrack();

for (int i = 5; i < 61; i++)
{
track.add(makeEvent(144, 1, i, 100, i));
track.add(makeEvent(128, 1, i, 100, i + 2));
} // end loop

sequencer.setSequence(seq);
sequencer.setTempoInBPM(220);
sequencer.start();

quitProgram(sequencer);


}
catch (Exception ex)
{
ex.printStackTrace();
}
} // end main

public static void quitProgram(Sequencer sequencer)
{
while(sequencer.isRunning())
{
System.out.println( "isRunning ");
}

System.exit(0);
}

public static MidiEvent makeEvent(int comd, int chan, int one, int two,
int tick)
{
MidiEvent event = null;
try
{
ShortMessage a = new ShortMessage();
a.setMessage(comd, chan, one, two);
event = new MidiEvent(a, tick);
}
catch (Exception e)
{
e.printStackTrace();
}
return event;
}

}