2010-07-10 20 views
8

Je suis en train d'écrire un début rapide pour afficher la tablature de guitare. Le frontal est en Flash mais je veux stocker l'onglet dans un format lisible par l'homme. Quelqu'un sait-il quelque chose qui existe déjà? Des suggestions sur la façon de s'y prendre? Une idée que je suis arrivé à la lecture des messages stackoverflow était d'utiliser un format strict de l'onglet ASCII comme ceci:Format de données de tablature pour guitare

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

Il a des avantages. Je peux obtenir beaucoup d'infos de la structure (combien de cordes, leurs accordages, le placement relatif des notes) mais c'est un peu bavard. Je suppose que les '' vont se compresser assez bien quand ils sont envoyés sur le fil.

Si quelqu'un connaît un format de données existant pour décrire l'onglet guitare, je vais également jeter un coup d'œil.

modifier:

Je note que ce format est de 90% pour moi et ne peut jamais été vu par quelqu'un d'autre que moi-même. Je veux un moyen facile d'écrire des fichiers d'onglets qui seront affichés éventuellement en tant que graphiques dans un frontal Flash et je ne veux pas avoir à écrire un frontal d'éditeur.

+0

Je voudrais aller avec le format de texte brut vous exemple dans votre question. Il était très commun de retour dans la journée, fonctionne sur n'importe quel ordinateur sans logiciel supplémentaire et imprime facilement. –

Répondre

4

Vérifiez le format ASCII tab.Aussi une grande description du format est ici:

http://www.howtoreadguitartabs.net/

guitar tab format description (by howtoreadguitartabs.net)

+0

Ceci est proche de ce que je pense. Merci. Je ne suis pas sûr de pouvoir prendre en charge tous les onglets puisque je vais écrire moi-même les onglets en question, mais je peux essayer d'obtenir les phrasés et les effets les plus communs. –

1

Ce ne sont pas lisibles par l'homme:

La plupart des formats courants sont Guitar Pro (propriétaire) et PowerTab (freeware). DGuitar et TuxGuitar sont des visionneuses open source pour le format Guitar Pro. Je suis sûr qu'ils ont de la documentation pour le format quelque part (au moins dans le code).

Avantage pour l'utilisation d'un format commun serait la facilité de faire des onglets avec ces programmes.

Le Guitar Pro Format 4 est décrit ici http://dguitar.sourceforge.net/GP4format.html

+0

Merci, j'ai rencontré les deux avant, mais je n'aime pas l'idée de rester coincé dans un format binaire propriétaire. Guitar Pro exporte vers ASCII alors peut-être que je peux vérifier à quoi cela ressemble et importer quelque chose de similaire. Je n'essaie pas de faire quelque chose, même légèrement, aussi complexe que l'un ou l'autre programme. –

2

export ASCII serait une grande fonctionnalité, mais en utilisant ASCII comme format de données interne ne sont pas une bonne idée. Par exemple, les durées de notes seraient extrêmement difficiles à exprimer (vous voudriez stocker des 32e ou même des 16e ?, pour ne pas mentionner les triplets ...), donc l'analyse de ces fichiers serait extrêmement difficile. De plus, les utilisateurs seraient tentés de charger des fichiers ASCII créés en dehors de votre application, ce qui risque d'échouer. En résumé, je recommanderais d'essayer de réutiliser le format existant ou d'inventer le vôtre si ce n'est pas faisable. Vous pouvez essayer d'utiliser XML pour cela.

EDIT: À côté de DGuitar, je connais TuxGuitar et KGuitar, qui supportent les fichiers Guitar Pro. Vous pouvez regarder dans leurs sources ou demander à leurs auteurs sur les formats de fichiers. Je pense qu'il existe aussi un convertisseur PowerTab-ASCII open source.

1

Voir Supported file formats in TuxGuitar.

TuxGuitar est un logiciel multiplateforme open-source pour la lecture, l'écriture et la lecture des onglets de guitare.

Il prend en charge le mentionné Guitar Pro et PowerTab le format, et il a aussi son propre format TuxGuitar (de .tg).

1

Si vous avez besoin de la structure de données back-end pour rester sous forme lisible par l'homme je ne serais probablement le coller dans un CDATA intérieur de XML. Cela pourrait être inséré dans une base de données relationnelle avec des informations sur les chansons/artistes/titres et devenir consultable. Une autre option est de l'enregistrer sous forme de fichiers texte compressés et d'insérer des liens vers ces fichiers dans une base de données avec les informations de l'artiste principal encore consultables par sql.

0

J'ai écrit un utilitaire rapide pour afficher l'onglet. Pour usage personnel. Vous pouvez heureusement prendre le format interne que j'ai utilisé. J'utilise un format basé sur une chaîne très simple. Il y a trois structures importantes.

Colonne, une colonne verticale dans l'onglet de sortie - toutes les notes jouées simultanément. Bar, une collection de colonnes Motif, une collection de barres

Une colonne ressemble à ': # |: # | *: # 'où chaque * est un numéro de chaîne et chaque # est un numéro de frette. Si vous jouez un accord, vous séparez chaque corde: frette avec un '|'

Une barre ressemble à '[,, -, *]' où chaque * est une colonne. A - indique une colonne vide où aucune note n'est jouée.

Un Motif ressemble à de nombreuses barres fonctionnant dos à dos. Par exemple

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