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 beim Lesen einiger Stackoverflow-Posts bekam, war ein striktes ASCII-Tab-Format wie folgt:
%Vor%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 ziemlich gut komprimieren, wenn sie über den Draht gesendet werden.
Wenn jemand ein existierendes Datenformat zum Beschreiben der Gitarrenseite kennt, werde ich es mir auch ansehen.
bearbeiten:
Ich sollte beachten, dass dieses Format für mich 90% beträgt und von keinem anderen als mir selbst gesehen wurde. 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.
ASCII-Export wäre eine großartige Funktion, aber die Verwendung von ASCII als internes 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 wären Benutzer versucht, ASCII-Dateien zu laden, die außerhalb Ihrer App erstellt wurden und wahrscheinlich fehlschlagen.
Zusammenfassend würde ich empfehlen, entweder zu versuchen, bestehendes Format wiederzuverwenden oder selbst zu erfinden, 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.
Siehe Unterstützte Dateiformate in TuxGuitar .
TuxGuitar ist Open-Source-Multiplattform-Software zum Lesen, Schreiben und Spielen der Gitarrentabs.
Es unterstützt das erwähnte Format Guitar Pro und PowerTab und es hat auch sein eigenes Format TuxGuitar (.tg).
>Wenn Sie möchten, dass die Backend-Datenstruktur in einer für Menschen lesbaren Form bleibt, würde ich sie wahrscheinlich in eine CDATA innerhalb von XML stecken. Das könnte in eine relationale Datenbank mit Song- / Künstler- / Titelinformationen eingefügt und durchsucht werden. Eine weitere Möglichkeit ist es, es als gezippte Textdateien zu speichern und Links zu diesen Dateien in eine Datenbank einzufügen, wobei die wichtigsten Informationen des Künstlers nach sql durchsuchbar sind.
Diese sind nicht menschlich lesbar:
Die gängigsten Formate sind Guitar Pro (proprietär) und PowerTab (Freeware). DGuitar und TuxGuitar sind Open-Source-Viewer für das Guitar Pro-Format. Ich bin 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 einfache Erstellung von Tabs mit diesen Programmen.
Das Guitar Pro 4-Format wird hier beschrieben Ссылка
Ich habe ein Schnell-Dienstprogramm zum Anzeigen der Registerkarte geschrieben. 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 werden gleichzeitig abgespielt. Bar, eine Sammlung von Spalten Motiv, eine Sammlung von Bars
Eine Spalte sieht folgendermaßen aus: : # | : # | *: # 'Dabei ist jede * eine Stringnummer und jede # eine Bundnummer. Wenn Sie einen Akkord spielen, trennen Sie jede Saite: Bünden Sie mit einem '|'
Ein Balken sieht wie folgt aus: [, , -, *] 'wobei jeder * eine Spalte ist. A - zeigt eine leere Spalte an, in der keine Noten gespielt werden.
Ein Motiv sieht nur aus vielen Bars, die Rücken an Rücken laufen. Zum Beispiel
%Vor%Tags und Links dataformat guitar