MABINOGI WEB COMPOSER(洛奇中文在线编曲系统)开发手记 By Shortway 地址:http://www.wjmhxx.com/shortway/Tools/composer/composer.htm 1、最早(2008-03-21)是在“YY大杂烩”(http://www.yydzh.com/thread.php?fid=10)看到,引起兴趣。开始着手研究。 先用Telport下载它的页面(http://www.yydzh.com/images/yy/composer.htm)。 http://www.yydzh.com/images/yy/comimage/bg.jpg http://www.yydzh.com/images/yy/comimage/bullet02.gif http://www.yydzh.com/images/yy/comimage/clear.gif http://www.yydzh.com/images/yy/comimage/img_4_compose_sample.gif http://www.yydzh.com/images/yy/comimage/img_4_key1.gif http://www.yydzh.com/images/yy/comimage/img_4_key2.gif http://www.yydzh.com/images/yy/comimage/kyuhu_1.gif http://www.yydzh.com/images/yy/comimage/kyuhu_16.gif http://www.yydzh.com/images/yy/comimage/kyuhu_2.gif http://www.yydzh.com/images/yy/comimage/kyuhu_32.gif http://www.yydzh.com/images/yy/comimage/kyuhu_4.gif http://www.yydzh.com/images/yy/comimage/kyuhu_8.gif http://www.yydzh.com/images/yy/comimage/mouse.cur http://www.yydzh.com/images/yy/comimage/onnpu_1.gif http://www.yydzh.com/images/yy/comimage/onnpu_12.gif http://www.yydzh.com/images/yy/comimage/onnpu_16.gif http://www.yydzh.com/images/yy/comimage/onnpu_2.gif http://www.yydzh.com/images/yy/comimage/onnpu_32.gif http://www.yydzh.com/images/yy/comimage/onnpu_4.gif http://www.yydzh.com/images/yy/comimage/onnpu_8.gif http://www.yydzh.com/images/yy/comimage/play.gif http://www.yydzh.com/images/yy/comimage/stop.gif http://www.yydzh.com/images/yy/comimage/tie.gif http://www.yydzh.com/images/yy/comimage/top.jpg http://www.yydzh.com/images/yy/comimage/x.gif http://www.yydzh.com/images/yy/composer.htm 2、搜索“mabinogi web composer”,知道原来是网络游戏“mabinogi”里的一个技能。 [音乐技能]介绍:http://www.pcgames.com.cn/netgames/zhuanti/mabinogi/skill/skill_5/skill_1.htm 洛奇:超详细的MABI乐谱相关知识:http://www.pcgames.com.cn/netgames/zhuanti/mabinogi/gl/0601/751419.html 超详细的MABI乐谱相关知识:http://www.pcgames.com.cn/netgames/zhuanti/mabinogi/gl/0506/651857.html 3、再搜索就得到更多了。以下网站也有相同工具: 洛奇远古争霸官方网站:http://event.luoqi.com.cn/emonline/website/mfengyun_list.php 洛奇在线编曲_新浪游戏:http://games.sina.com.cn/o/lq/composer.shtml 太平洋游戏网洛奇在线编曲:http://www.pcgames.com.cn/netgames/zhuanti/mabinogi/tools/composer.htm http://mabinogi.nexon.net/Community/Composer.aspx http://www.mabinogi.jp/5th/4_composer.asp http://mabinogi.mmosite.com/tool/composer.shtml 4、搜集差不多了,开始用DIV+CSS+DOM重组。页面与代码分离,完成基本功能。 5、尝试各种音色与乐器。根据以下资料翻译整理音色表。 GM(Generel MIDI)音色排序表:http://mid.ququ3.cn/gmmidi.htm GM音色表:http://dior.bokee.com/3172152.html GM音色表和General MIDI打击乐器音色排列表:http://www.kc58.cn/post/29.html 翻译时还参考了: 《音乐术语英语手册》(刘沛教授编撰):http://blog.zjol.com.cn/html/56/188656-66397.html 音乐术语对照:http://post.baidu.com/f?kz=49703162 音乐常用术语英语翻译:http://www.jysls.com/thread-148654-1-1.html 常用音乐术语词汇:http://www.haofane.com/html/article_1172.htm 后来又发现新浪网上的也不错,居然已经翻译得差不多了(要看源代码)。 http://hd.games.sina.com.cn/g_item/2005/6-23/1554/list.php 6、发现音色10有错误。0A返回0D 0A。用138代替。 我以为音色0~127是循环的,比如128相对于0,129对应1。后来再试发现并不是。存疑,没再深入。 顺便搜索了一下MIDI文件的格式: MIDI系统码介绍.pdf:http://www.audiobar.net/attachment.php?aid=70791 标准MIDI文件格式:http://dev.csdn.net/develop/article/11/11737.shtm MIDI文件结构分析及生成方法:http://bbs.qinguo.com/thread-405-1-1.html NUENDO_CUBASE系列图文教程下载:http://bbs.yltime.com/search.php?searchid=2&orderby=lastpost&ascdesc=desc&searchsubmit=yes 7、边改写边收集乐谱。添加例子播放功能。 千羽熏的乐谱屋 http://www.yydzh.com/thread.php?fid=10&page=2 洛奇远古争霸官方网站 http://event.luoqi.com.cn/emonline/website/mfengyun_list.php 洛奇乐谱小屋_新浪游戏 http://hd.games.sina.com.cn/g_item/2005/6-23/1554/list.php 風千歲 http://janellesue.com/janelle/ttblog/index.php?ct1=3&ct2=0 mabinogi.nexon.net× http://mabinogi.nexon.net/Community/Composer.aspx 麻痹怒气私家花园 http://iluoqi.com/dv_rss.asp?s=xhtml&boardid=19&page=1 Coodoc博客 http://hi.baidu.com/coodoc/blog/category/%C2%E5%C6%E6%C0%D6%C6%D7 洛奇吧 http://tieba.baidu.com/f?z=23358307&ct=335544320&lm=0&sc=0&rn=50&tn=baiduPostBrowser&word=%C2%E5%C6%E6&pn=0 百度搜索 http://www.baidu.com/s?wd=%C2%E5%C6%E6+%C0%D6%C6%D7 百度知道 http://www.baidu.com/s?lm=0&si=&rn=10&ie=gb2312&ct=0&wd=%C2%E5%C6%E6+%C0%D6%C6%D7%20site%3Azhidao%2Ebaidu%2Ecom+&cl=2 8、自己也做了一个《世上只有妈妈好》,自娱自乐。与儿子一块做了个《茉莉花》。 从搜索乐谱、找伴奏,到输入,准备做一个讲座了。 9、添加曲谱整理功能。做了个采集书签,方便多个文本框的复制。采集后放到整理框中一整理就可以试听。 ------------------------代码开始----------------------------- javascript:function%20$(O){return%20document.getElementById(O)}function%20V(O){return%20$(O).value+","}try{if($("ch1")!=null){S=V("ch1")+V("ch2")+V("ch3")}else{S=V("code1")+V("code2")+V("code3")}S=S.replace(/,+/g,",").replace(/^,|,$/g,"");if(S.length>0){void%20window.clipboardData.setData("Text",S);alert("Copyed!")}else{alert("No!")}}catch(e){alert("None!")}void(0); ------------------------代码结束----------------------------- 用try{}catch(e){}是因为新浪与“千羽熏的乐谱屋”上文本框的命名不同。我修改过的这个就更不同了:) 10、下载了一些软件,初步试用,了解不深。 软件编写《洛奇》乐谱攻略:http://www.pcgames.com.cn/netgames/zhuanti/mabinogi/gl/0506/651978.html 洛奇MML修正工具 v0.15:http://www.luoqi.cn/Soft/UploadSoft/200506/20050613195617654.rar 洛奇 音乐制作软件 PSMPLAY中文版:http://61.152.221.82/game_tools/PSMPLAY@4.zip mabicomp.rar 要下载MIDI音乐来尝试转换成MML,到:http://mid.ququ3.cn/ 11、添加静音功能,方便单个谱子的调试。 12、搜集更多服务器。luoqi.com.cn、新浪、太平洋上的均不能用。 http://210.208.86.67/PSGConverter.exe http://mabinogi.nexon.net/PSG/PSGConverter.exe http://comp.mabinogi.jp/PSGConverter.exe http://www.annie.ne.jp/~tamanegi/mabimml/PSGConverter.phtml http://logue.sakura.ne.jp/elements/PSGConverter.php http://211.218.233.238:77/PSGConverter.exe× 13、一直想下载服务器上的exe文件,好自己搭建。均告失败。 2008-04-12,Google搜索“PSGConverter”,终于找到啦!喜悦难于言表! 最先的是这个:http://www.annie.ne.jp/www.annie.ne.jp/~tamanegi/ 不错!版本较早。继续! http://www.google.cn/search?sourceid=navclient&hl=zh-CN&ie=UTF-8&rlz=1T4GGLJ_zh-CN___CN247&q=mml+site%3alogue%2ebe 虽是小日本的,我还是要感谢他们!Nanashi、Tamanegi、Logue。伟大的互联网!伟大的共享主义者! 页面:http://logue.be/Web%E7%B4%A0%E6%9D%90/PSGConverter.php.html 下载:http://logue.be/?plugin=attach&refer=Web%E7%B4%A0%E6%9D%90%2FPSGConverter.php&openfile=PSGConverter.php.tgzPSGConverter.php 存疑,怀疑是用SWF文件播放:http://logue.be/?cmd=related&page=Web%E7%B4%A0%E6%9D%90%2FPukiWiki%2Fmml.inc.php 14、还好我的本本上装了EasyPhp,赶快尝试!……没有声音??!!! 打开http://127.0.0.1/mml/PSGConverter.php?i=10&s=T111V11O4……(本机架设环境) 有好多“undefined offset”错误!可惜PHP不是很懂。(其实是一点不懂^_^) Baidu一下,据说在“php.ini”文件中用“error_reporting = E_ALL”屏蔽。未果,还原php.ini的配置。 再搜索……“array_key_exists”!!!!!!!!! 用: if (array_key_exists('0', $test)){ 替换: if($test[0]!=''){ 还有一个错误:$reset可能没有初值。修改: if(isset($_GET['r'])) { $reset = true; } 为: if(isset($_GET['r'])) { $reset = true; }else{ $reset = false;} 再试!正确!本机架设服务器成功!优美的音乐再次响起!而且没有音色为10时的错误!o(∩_∩)o...哈哈 15、下一步,想再继续改进:按琴键时发声、选音色时发声、保存自己的谱子…… Shortway作品 2008.8.8