明飞 发表于 2015-3-8 13:46:11

easyabc导出xml的结果

我在昨天长河兄的回复里面说abc导出xml文件我也已经回复了他是不可以的,但是我不死心,还是测试了一下,但是测试的结果报错,报错的内容我就翻译了一下,可能他的意思说我写的曲谱不够标准把或者还是其他问题不知道了,那么好,我的曲谱有问题,那我就拿着咱们abc的推荐者峰哥老大的曲谱我来是,我想这样应该的行吧,试了一下一样报错,好吧报错内容我就发上来大家们来分析下,首先发原文,然后在发翻译好的正文,内容如下:Error during conversion of X:1 ("聖母頌(白話文)"): Traceback (most recent call last):
File "easy_abc.py", line 2699, in OnExportAllMusicXML
File "G:\PythonProj\EasyABC\xml2abc_interface.py", line 32, in abc_to_xml
File "G:\PythonProj\EasyABC\abc2xml.py", line 988, in parse
nicodeEncodeError: 'latin-1' codec can't encode character u'\u4e3b' in position 2: ordinal not in range(256)
这个是我翻译好的
内容:转换X的过程中出错:1(“圣母颂(白话文)”):回溯(最近通话最后一个):
文件“easy_abc.py”,2699线,在OnExportAllMusicXML
文件“G:\ PythonProj \ EasyABC \ xml2abc_interface.py”,第32行,在abc_to_xml
文件“G:\ PythonProj \ EasyABC \ abc2xml.py”,线路988,在解析
UnicodeEncodeError:“拉丁-1'编解码器不能进行编码字符U在位置2'\ u4e3b':序不在范围内(256)

明飞 发表于 2015-3-8 13:47:49

懂英文不懂英文高手在民间

hhpmusic 发表于 2015-3-8 13:58:57

第一,它四呼无法复制导出高级的Unicode,包括希腊语、西里尔文、中文、日文、韩文等等。第二,别指望Easyabc能有效地导入导出xml,这些功能都非常拙劣,稍微复杂一点的曲子就出问题。

明飞 发表于 2015-3-8 14:05:10

回板凳hhpmusic

明白了,谢谢胡老师啊。中午好

明飞 发表于 2015-3-8 14:06:19

回板凳hhpmusic

看来我只能截图了,但是截图的效果现在还不知道,对了胡老师,你那个lily pond软件,写完了代码可以直接播放试听吗。

hhpmusic 发表于 2015-3-8 16:32:22

得先编译,不是在某个界面里播放。

长河 发表于 2015-3-8 18:34:53

带中文的要转换编码,xml本身就是西方的音乐符号系统,还能指望它对中文兼容的好吗,不过我这儿出现的问题的确很少,阿峰也推荐过别的工具可以abc和xml互转,既然EasyABC有问题,那为什么不尝试别的工具呢,阿峰的帖子在论坛摆着,玩音乐就是要多尝试,这个不行就用那个。

长河 发表于 2015-3-8 18:47:46

回6楼hhpmusic

现在是没英文水平学荷花池,好在现在的工作中abc够用了。

hhpmusic 发表于 2015-3-8 20:26:58

Lilypond不能导出musicxml,而且写中文得一定技巧,谁要学我可以写出来,就是选择字体的问题。Musicxml是可以表达中文的,从Sibelius导出的时候效果很好。问题出在Easyabc的程序上,作这个的没有考虑这点。

明飞 发表于 2015-3-8 20:27:08

回8楼长河

谢谢。中文的是不是你说的那个。要一个中文的i字段的代码

明飞 发表于 2015-3-8 20:27:28

回6楼hhpmusic

哦哦。谢谢胡老师

长河 发表于 2015-3-8 22:05:47

回9楼hhpmusic

我用EasyABC导入从西贝柳斯中导出的xml可以看到中文,连曲谱中的注释文字也能看到,但如你所说EasyABC自身对xml的支持的确有问题,有的符号还会显示错,大体上还是能看懂,在结合听midi。

长河 发表于 2015-3-8 22:48:01

回10楼明飞

就是要写那个代码,那样导出来的xml就能显示中文

hhpmusic 发表于 2015-3-9 06:25:07

ABC我不知道,Lilypond是在标记文字的命令里指定一个字体。比如,下面的代码是《心之舞》的中英文标题:
title = \markup { \bold \fontsize #14.142 \override #'(baseline-skip . 2.828) \center-column { \override #'(font-name . "仿宋_GB2312") "心之舞" "Dance Of Heart" } }
subtitle = \markup { \fontsize #8.484 \override #'(baseline-skip . 2.828) \center-column { \override #'(font-name . "仿宋_GB2312") "献给一切为理想而战的人们" "Dedicated To All Who Are Fighting For Their Ideals" } }
subsubtitle = \markup { \bold \fontsize #5.656 \override #'(baseline-skip . 2.828) \center-column { \override #'(font-name . "仿宋_GB2312") "管弦乐组曲" "Suite For Orchestra" } }
composer = \markup { \bold \fontsize #8.484 \override #'(baseline-skip . 2.828) \center-column { \override #'(font-name . "仿宋_GB2312") "胡海鹏" "Hu Haipeng" } }

这些是在\header {}里的,一行中文一行英文。我用的A3的尺寸,因为谱线太粗,出来之后在缩小成A4。

明飞 发表于 2015-3-9 09:37:56

回9楼hhpmusic

胡老师你能写当然就是好了。呵呵。当然都愿意学的。
Lilypond不能导出musicxml,而且写中文得一定技巧,谁要学我可以写出来,就是选择字体的问题。Musicxml是可以表达中文的,从Sibelius导出的时候效果很好。问题出在Easyabc的程序上,作这个的没有考虑这点。

明飞 发表于 2015-3-9 09:40:23

回9楼hhpmusic

胡老师好厉害,但是我在 用bc写的代码显示出来的曲谱是一个声部的一小截是一行一行的而不是整条声部都在一行上的
页: [1]
查看完整版本: easyabc导出xml的结果