我们多媒体的期末作业我选了一个midi的项目,要求给出midi文件的信息,然后还要生成一个midi文件我找了N多资料。。好像都没有编程实现生成midi文件的。。我晕死。。我个人又只有对java有基础。其他编程语言都不会希望高人指点下。如何才能用java编程生成midi文件??java的sound midi的api我看过了。。但是还是不会用,不知道里面有没有可以生成midi的方法。。

解决方案 »

  1.   

    没有。。唉。。生成这个好像不容易。。对了。我下到了一个据说是sun公司写的钢琴程序,可以生成,保存跟播放midi文件,我正在研究源代码。。
      

  2.   

    使用 jfugue包,网上可以下载
      

  3.   

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

  4.   

    thanks for your help,but I hava finished it. :),my teacher give me some code.