我正在写一个快速前端来显示吉他指法。前端是在Flash中,但我想以一些人类可读的格式存储选项卡。有人知道已存在的东西吗?有关如何去做的任何建议?我从阅读一些stackoverflow帖子中得到的一个想法是使用严格的ASCII标签格式,如下所示:
e||-1------3--------------0--|----2-------0---
B||--1-----3------------1----|----3-------0---
G||---2----0----------0------|----2-------1---
D||----3---0--------2--------|----0-------2---
A||----3---2------3----------|------------2---
E||----1---3----3------------|------------0---
它有优势。我可以从结构中获得大量信息(多少个字符串,它们的调音,音符的相对位置),但它有点冗长。我猜测'当通过电线发送时,它会很好地压缩。
如果有人知道用于描述吉他标签的现有数据格式,我也会看一下。
修改
我应该注意到这种格式对我来说是90%,除了我自己以外的任何人都可能看不到。我想要一种简单的方法来编写最终显示为Flash前端图形的标签文件,我不想编写编辑器前端。
答案 0 :(得分:4)
答案 1 :(得分:2)
ASCII导出将是一个很好的功能,但使用ASCII作为内部数据格式并不是一个好主意。例如,音符持续时间非常难以表达(你会存储32行甚至16行吗?更不用说三元组......),因此解析这些文件将非常困难。此外,用户很想加载在应用程序外部创建的ASCII文件,这可能会失败。
总而言之,如果不可行,我建议尝试重用现有格式或创建自己的格式。您可以尝试使用XML。
编辑:除了DGuitar,我知道支持Guitar Pro文件的TuxGuitar和KGuitar。您可以查看他们的来源或向他们的作者询问文件格式。我认为还有开源的PowerTab-to-ASCII转换器。答案 2 :(得分:1)
这些不是人类可读的:
最常见的格式是Guitar Pro(专有)和PowerTab(免费软件)。 DGuitar和TuxGuitar是Guitar Pro格式的开源查看器。我确信他们有某种格式的文档(至少在代码中)。
使用通用格式的优点是可以轻松地使用这些程序。
此处描述了Guitar Pro 4格式 http://dguitar.sourceforge.net/GP4format.html
答案 3 :(得分:1)
请参阅Supported file formats in TuxGuitar。
TuxGuitar是一款开源多平台软件,用于阅读,编写和播放吉他标签。
它支持上面提到的 Guitar Pro 和 PowerTab 格式,它也有自己的 TuxGuitar (。tg)格式。
答案 4 :(得分:1)
如果您需要后端数据结构保持人类可读形式,我可能会将其粘贴在XML内部的CDATA中。这可以插入到具有歌曲/艺术家/标题信息的关系数据库中并变得可搜索。另一种选择是将其保存为压缩文本文件,并在数据库中插入指向这些文件的链接,主要艺术家信息仍可通过sql进行搜索。
答案 5 :(得分:0)
我写了一个用于显示标签的快速工具。供个人使用。您可以愉快地采用我使用的内部格式。
我使用非常简单的基于字符串的格式。有三个重要的结构。
列,输出选项卡中的垂直列 - 同时播放所有音符。 栏,列的集合 主题,酒吧的集合
列看起来像' :#| :#| *:#'其中每个*是一个字符串编号,每个#都是一个音品编号。如果您正在演奏和弦,则将每个字符串分开:使用' |'
栏看起来像' [,, - ,*]'其中每个*是一个列。 A - 表示没有播放音符的空列。
一个Motif看起来就是很多酒吧背靠背跑。例如
"[1:5,-,3:7,-,3:5,-,3:7,-,-,3:5,3:7,-,1:8,-,1:5]"
e||---------------|---------------||
B||---------------|---------------||
G||---------------|---------------||
D||--7-5-7--57----|--7-5-7--57----||
A||---------------|---------------||
E||5-----------8-5|5-----------8-5||
"[-,-,1:3|2:2|3:0|4:0|5:3|6:3,-,-][-,-,3:0|4:2|5:3|6:2,-,-]"
e||--3--|--2--||
B||--3--|--3--||
G||--0--|--2--||
D||--0--|--0--||
A||--2--|-----||
E||--3--|-----||