Формат данных табулатуры гитары - PullRequest
8 голосов
/ 10 июля 2010

Я пишу быстрый интерфейс для отображения табулатуры гитары. Внешний интерфейс находится во 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 ]

4 голосов
/ 10 июля 2010

Проверьте формат ASCII на вкладке . Также отличное описание формата здесь:

http://www.howtoreadguitartabs.net/

guitar tab format description (by howtoreadguitartabs.net)

2 голосов
/ 10 июля 2010

Экспорт ASCII был бы отличной функцией, но использование ASCII в качестве внутреннего формата данных не является хорошей идеей.Например, длительность заметки будет чрезвычайно трудно выразить (как бы вы сохранили 32-е или даже 16-е ?, не говоря уже о триплетах ...), поэтому анализ этих файлов будет чрезвычайно трудным.Более того, пользователи будут склонны загружать файлы ASCII, созданные за пределами вашего приложения, что может привести к сбою.

Подводя итог, я бы рекомендовал либо попытаться повторно использовать существующий формат, либо придумать свой собственный, если это не таквозможно.Вы можете попытаться использовать XML для этого.

РЕДАКТИРОВАТЬ: Помимо DGuitar, я знаю о TuxGuitar и KGuitar, которые поддерживают файлы Guitar Pro.Вы можете посмотреть их источники или спросить их авторов о форматах файлов.Я думаю, что есть также конвертер PowerTab-ASCII с открытым исходным кодом.

1 голос
/ 10 июля 2010

Если вам нужно, чтобы структура данных бэкэнда оставалась в удобочитаемой для человека форме, я, вероятно, вставил бы ее в CDATA внутри XML.Это может быть вставлено в реляционную базу данных с информацией о песне / исполнителе / ​​названии и стать доступным для поиска.Другим вариантом является сохранение его в виде сжатых текстовых файлов и вставка ссылок на эти файлы в базу данных с основной информацией об исполнителе, доступной для поиска по sql.

1 голос
/ 10 июля 2010

См. Поддерживаемые форматы файлов в TuxGuitar .

TuxGuitar - это мультиплатформенное программное обеспечение с открытым исходным кодом для чтения, записи и воспроизведения вкладок гитары.

Он поддерживает упомянутые форматы Guitar Pro и PowerTab , а также имеет собственный формат TuxGuitar (.tg).

1 голос
/ 10 июля 2010

Они не читаются человеком:

Наиболее распространенными форматами являются Guitar Pro (проприетарный) и PowerTab (бесплатное). DGuitar и TuxGuitar - средства просмотра с открытым исходным кодом для формата Guitar Pro. Я уверен, что у них есть документация для формата где-то (по крайней мере, в коде).

Преимуществом использования общего формата будет простота создания вкладок с этими программами.

Здесь описан формат Guitar Pro 4 http://dguitar.sourceforge.net/GP4format.html

0 голосов
/ 20 января 2016

Я написал быструю утилиту для отображения вкладки.Для личного использования.Вы можете с радостью взять внутренний формат, который я использовал.

Я использую очень простой формат на основе строк.Существует три важных структуры:

Столбец, вертикальный столбец на вкладке вывода - все ноты воспроизводятся одновременно.Bar, коллекция Columns Motif, коллекция Bars

Столбец выглядит как ': # | : # | *: #', где каждый * - номер строки, а каждый # -Лада номер.Если вы играете аккорд, вы разделяете каждую струну: раздражение с помощью '|'

Бар выглядит как '[, , -, *]', где каждая * является колонкой.A - указывает на пустой столбец, в котором ноты не воспроизводятся.

Мотив выглядит просто как множество баров, бегущих вплотную.Например

"[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--|-----||
...