2010-07-10 8 views
8

Ich schreibe ein schnelles Frontend, um Gitarrentabulatur anzuzeigen. Das Frontend ist in Flash, aber ich möchte die Registerkarte in einem für Menschen lesbaren Format speichern. Weiß jemand etwas, das bereits existiert? Irgendwelche Vorschläge, wie man das macht? Eine Idee, die ich bekam von ein paar Beiträge zu lesen war Stackoverflow ein strenges ASCII Tab-Format wie so zu verwenden:Gitarrentabulatur Datenformat

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--- 

Es hat Vorteile. Ich kann eine Menge Informationen von der Struktur gewinnen (wie viele Saiten, ihre Stimmungen, die relative Platzierung von Noten), aber es ist ein bisschen ausführlich. Ich schätze, die '-s werden sich ziemlich gut komprimieren, wenn sie über das Kabel gesendet werden.

Wenn jemand ein existierendes Datenformat zum Beschreiben von Gitarrentabs kennt, werde ich es mir auch ansehen.

edit:

Ich sollte anmerken, dass dieses Format 90% für mich und nicht immer kann von jemand anderem als mir selbst gesehen. Ich möchte eine einfache Möglichkeit, Tab-Dateien zu schreiben, die schließlich als Grafiken in einem Flash-Front-End angezeigt werden und ich möchte nicht ein Editor-Front-End schreiben müssen.

+0

Ich würde mit dem Klartext Format gehen Sie Beispiel in Ihrer Frage. Es war sehr häufig am Tag, funktioniert auf jedem Computer ohne zusätzliche Software und druckt einfach. –

Antwort

4

Überprüfen Sie das Format ASCII tab.Auch groß Beschreibung des Formats ist hier:

http://www.howtoreadguitartabs.net/

guitar tab format description (by howtoreadguitartabs.net)

+0

Das ist nah dran, was ich denke. Vielen Dank. Ich bin mir nicht sicher, ob ich irgendwelche Tabs unterstützen werde, da ich die fraglichen Tabs selbst manuell schreiben werde, aber ich kann versuchen, die gebräuchlichsten Bindebögen und Effekte zu bekommen. –

1

Diese sind nicht für Menschen lesbaren:

Die meisten gängigen Formate Guitar Pro (proprietär) und PowerTab (Freeware). DGuitar und TuxGuitar sind Open-Source-Viewer für das Guitar Pro-Format. Ich bin mir sicher, dass sie irgendwo eine Dokumentation für das Format haben (zumindest im Code).

Vorteil für die Verwendung eines gemeinsamen Formats wäre die Leichtigkeit der Erstellung von Tabs mit diesen Programmen.

Das Guitar Pro 4-Format ist hier beschrieben http://dguitar.sourceforge.net/GP4format.html

+0

Danke, ich bin schon auf diese beiden gestoßen, aber ich mag die Idee nicht, in einem proprietären Binärformat stecken zu bleiben. Guitar Pro exportiert nach ASCII, vielleicht kann ich prüfen, wie das aussieht und etwas Ähnliches importieren. Ich versuche nicht, irgendetwas so komplex wie irgendein Programm zu machen. –

2

ASCII-Export wäre ein großartiges Feature, aber unter Verwendung von ASCII als internem Datenformat ist keine gute Idee. Zum Beispiel wäre die Notenlänge extrem schwer auszudrücken (also würden Sie 32nd oder sogar 16tel speichern, ganz zu schweigen von Triplets ...), so dass das Parsen dieser Dateien extrem schwierig wäre. Darüber hinaus sind Benutzer versucht, ASCII-Dateien zu laden, die außerhalb Ihrer App erstellt wurden und wahrscheinlich fehlschlagen.

Zusammenfassend würde ich empfehlen, entweder versuchen, bestehende Format wiederzuverwenden oder erfinden Sie Ihre eigenen, wenn das nicht machbar ist. Sie können versuchen, XML dafür zu verwenden.

EDIT: Neben DGuitar kenne ich TuxGuitar und KGuitar, die Guitar Pro Dateien unterstützen. Sie können in ihre Quellen schauen oder ihre Autoren nach Dateiformaten fragen. Ich denke, es gibt auch Open-Source-PowerTab-zu-ASCII-Konverter.

1

Siehe Supported file formats in TuxGuitar.

TuxGuitar ist Open-Source-Multiplattform-Software zum Lesen, Schreiben und Spielen der Gitarrentabs.

Es unterstützt die erwähnte Guitar Pro und PowerTab Format, und es hat auch seine eigene TuxGuitar (.tg) Format.

1

Wenn Sie die Back-End-Datenstruktur müssen in lesbarer Form bleiben, ich es wahrscheinlich in einem CDATA innerhalb von XML-Stick würde. Das könnte in eine relationale Datenbank mit Song-/Künstler-/Titelinformationen eingefügt und durchsucht werden. Eine andere Möglichkeit ist, sie als gezippte Textdateien zu speichern und Links zu diesen Dateien in eine Datenbank einzufügen, wobei die wichtigsten Informationen für den Künstler immer noch von sql durchsucht werden können.

0

Ich schrieb ein Schnelldienstprogramm zur Anzeige der Registerkarte. Für den persönlichen Gebrauch. Sie können gerne das interne Format verwenden, das ich verwendet habe.

Ich verwende ein sehr einfaches string-basiertes Format. Es gibt drei wichtige Strukturen.

Spalte, eine vertikale Spalte in der Registerkarte Ausgabe - alle Noten gleichzeitig gespielt. Bar, eine Sammlung von Spalten Motiv, eine Sammlung von Bars

Eine Spalte sieht aus wie ': # |: # | *: # 'wobei jede * eine Zeichenkettennummer ist und jede # eine Bundnummer ist. Wenn Sie einen Akkord spielen, trennen Sie jede Saite: Bünde mit einem '|'

Ein Balken sieht aus wie '[,, -, *]' wo jeder * eine Spalte ist. A - zeigt eine leere Spalte an, in der keine Noten gespielt werden.

Ein Motiv sieht ist nur viele Bars, die Rücken an Rücken laufen. Zum Beispiel

"[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--|-----|| 
Verwandte Themen