您的位置:程序门 -> java -> j2se / 基础类



java 怎么生成midi文件?急求高手解答!!!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


java 怎么生成midi文件?急求高手解答!!![已结贴,结贴人:playfish05]
发表于:2007-01-06 14:46:56 楼主
我们多媒体的期末作业我选了一个midi的项目,要求给出midi文件的信息,然后还要生成一个midi文件。。。

我找了n多资料。。好像都没有编程实现生成midi文件的。。我晕死。。我个人又只有对java有基础。其他编程语言都不会。。。希望高人指点下。如何才能用java编程生成midi文件??java的sound   midi的api我看过了。。但是还是不会用,不知道里面有没有可以生成midi的方法。。
发表于:2007-01-06 16:33:421楼 得分:0
救急啊   。。。。。。
发表于:2007-01-06 17:44:232楼 得分:0
没人了解midi吗。。。
发表于:2007-01-06 20:11:203楼 得分:0
还是没人来帮帮忙啊。。
发表于:2007-01-07 11:54:564楼 得分:5
继续关注
发表于:2007-01-07 18:38:175楼 得分:5
找了好久,没找到,lz找到了米?~
发表于:2007-01-07 21:14:066楼 得分:0
没有。。唉。。生成这个好像不容易。。

对了。我下到了一个据说是sun公司写的钢琴程序,可以生成,保存跟播放midi文件,我正在研究源代码。。
发表于:2007-01-09 19:27:477楼 得分:10
使用   jfugue包,网上可以下载
发表于:2007-01-09 20:52:148楼 得分:0
钢琴程序?-.-
发表于:2007-01-09 23:38:579楼 得分:80
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;
        }

}
发表于:2007-01-19 12:43:5910楼 得分:0
thanks   for   your   help,but   i   hava   finished   it.   :),my   teacher   give   me   some   code.


快速检索

最新资讯
热门点击