سؤال

أنا أكتب واجهة أمامية سريعة لعرض لوحة الجيتار.الواجهة الأمامية بتنسيق 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 الأمامية ولا أريد أن أضطر إلى كتابة واجهة أمامية للمحرر.

هل كانت مفيدة؟

المحلول

تحقق من علامة التبويب ASCII تنسيق.أيضا وصف رائع للتنسيق هنا:

P> http://www.howtoreadguitartabs.net/

 Formation Tab format الوصف (بواسطة howtyreadguitartabs.net)

نصائح أخرى

تصدير ASCII سيكون ميزة رائعة، ولكن استخدام ASCII لأن تنسيق البيانات الداخلي ليس فكرة جيدة.على سبيل المثال.علاوة على ذلك، سيتم إغراء المستخدمين لتحميل ملفات ASCII التي تم إنشاؤها خارج التطبيق الخاص بك، والتي من المحتمل أن تفشل.

لتلخيص، أود إما محاولة إعادة استخدام التنسيق الموجود أو اختراع خاصة بك إذا لم يكن ذلك ممكنا.قد تحاول استخدام XML لذلك.

تحرير: بجانب Dguitar، أعرف Tuxguitar و Kguitar، التي تدعم ملفات Guitar Pro.يمكنك النظر في مصادرهم أو اسأل مؤلفيها عن تنسيقات الملفات.أعتقد أن هناك أيضا مفتوحة المصدر PowerTab-To-ASCII محول.

يرى تنسيقات الملفات المدعومة في TuxGuitar.

توكس جيتار هو برنامج متعدد المنصات مفتوح المصدر لقراءة وكتابة وتشغيل علامات تبويب الجيتار.

وهو يؤيد ما ذكر جيتار برو و باورتاب الشكل، ولها أيضا الخاصة بها توكس جيتار تنسيق (.tg).

If you need the backend data structure to remain in human readable form I would probably stick it in a CDATA inside of XML. That could be inserted into a relational database with song/artist/title information and become searchable. Another option is to save it as zipped text files and insert links to those files in a database with the main artist info still searchable by sql.

These are not human readable:

Most common formats are Guitar Pro (proprietary) and PowerTab (freeware). DGuitar and TuxGuitar are open source viewers for Guitar Pro format. I'm sure that they have documentation for the format somewhere (at least in the code).

Advantage for using a common format would be the easiness of making tabs with those programs.

The Guitar Pro 4 format is described here http://dguitar.sourceforge.net/GP4format.html

I wrote a quick utility for displaying tab. For personal use. You can happily take the internal format I used.

I use a very simple string based format. There are three important structures.

Column, a vertical column in the output tab - all notes played simultaneously. Bar, a collection of Columns Motif, a collection of Bars

A Column looks like ':#|:#|*:#' where each * is a string number and each # is a fret number. If you are playing a chord you separate each string:fret with a '|'

A Bar looks like '[,,-,*]' where each * is a Column. A - indicates an empty column where no notes are played.

A Motif looks is just many Bars running back to back. For instance

"[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--|-----||
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top