吉他谱表数据格式

时间:2010-07-10 17:04:32

标签: dataformat guitar

我正在写一个快速前端来显示吉他指法。前端是在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前端图形的标签文件,我不想编写编辑器前端。

6 个答案:

答案 0 :(得分:4)

查看ASCII tab格式。这里也有很好的格式描述:

http://www.howtoreadguitartabs.net/

guitar tab format description (by howtoreadguitartabs.net)

答案 1 :(得分:2)

ASCII导出将是一个很好的功能,但使用ASCII作为内部数据格式并不是一个好主意。例如,音符持续时间非常难以表达(你会存储32行甚至16行吗?更不用说三元组......),因此解析这些文件将非常困难。此外,用户很想加载在应用程序外部创建的ASCII文件,这可能会失败。

总而言之,如果不可行,我建议尝试重用现有格式或创建自己的格式。您可以尝试使用XML。

编辑:除了DGuitar,我知道支持Guitar Pro文件的TuxGuitar和KGuitar。您可以查看他们的来源或向他们的作者询问文件格式。我认为还有开源的PowerTab-to-ASCII转换器。

答案 2 :(得分:1)

这些不是人类可读的:

最常见的格式是Guitar Pro(专有)和PowerTab(免费软件)。 DGuitarTuxGuitar是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--|-----||