2010-07-10 11 views
8

Sto scrivendo un front-end veloce per visualizzare la tablatura della chitarra. Il front-end è in Flash, ma voglio memorizzare la scheda in un formato leggibile. Qualcuno sa di qualcosa che esiste già? Qualche suggerimento su come procedere? Un'idea che ho avuto da leggere alcuni post StackOverflow è stato quello di utilizzare un rigoroso formato di scheda ASCII in questo modo:Formato dati tablatura chitarra

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

ha vantaggi. Posso ottenere molte informazioni dalla struttura (quante stringhe, le loro accordature, il posizionamento relativo delle note) ma è un po 'prolisso. Immagino che il '-'s si comprimerà piuttosto bene quando verrà inviato via cavo.

Se qualcuno sa di un formato dati esistente per descrivere la scheda della chitarra, darò un'occhiata anche a voi.

edit:

Vorrei sottolineare che questo formato è 90% per me e non può mai stato visto da nessuno diverso da me. Voglio un modo semplice per scrivere file di tabulazione che verranno visualizzati alla fine come elementi grafici in un front-end Flash e non voglio dover scrivere un front-end dell'editor.

+0

Vorrei andare con il formato di testo semplice come esempio nella tua domanda. Era molto comune nel corso della giornata, funziona su qualsiasi computer senza alcun software aggiuntivo richiesto, e stampa facilmente. –

risposta

4

Verificare il formato ASCII tab.Inoltre grande descrizione del formato è qui:

http://www.howtoreadguitartabs.net/

guitar tab format description (by howtoreadguitartabs.net)

+0

Questo è vicino a quello che sto pensando. Grazie. Non sono sicuro di supportare tutte le schede dato che scriverò manualmente le schede in questione, ma posso provare a ottenere le legature e gli effetti più comuni. –

1

Queste non sono leggibile:

formati

più comuni sono Guitar Pro (proprietario) e PowerTab (freeware). DGuitar e TuxGuitar sono visualizzatori open source per il formato Guitar Pro. Sono sicuro che hanno una documentazione per il formato da qualche parte (almeno nel codice).

Il vantaggio di utilizzare un formato comune sarebbe la facilità di creare schede con tali programmi.

Il formato Guitar Pro 4 è descritto qui http://dguitar.sourceforge.net/GP4format.html

+0

Grazie, ho già incontrato entrambi, ma non mi piace l'idea di rimanere bloccato in un formato binario proprietario. Guitar Pro esporta in ASCII, quindi forse posso controllare come appare e importare qualcosa di simile. Non sto cercando di rendere nulla neanche un po 'complesso come un programma. –

2

esportazione ASCII sarebbe una grande caratteristica, ma utilizzando ASCII come formato di dati interna non è una buona idea. Ad esempio, la durata delle note sarebbe estremamente difficile da esprimere (si memorizzerebbero 32 o anche i sedicesimi ?, per non parlare delle terzine ...), quindi l'analisi di questi file sarebbe estremamente difficile. Inoltre, gli utenti sarebbero tentati di caricare file ASCII creati all'esterno della tua app, che probabilmente falliranno.

Per riassumere, consiglierei di provare a riutilizzare il formato esistente o inventare il proprio se non è fattibile. Puoi provare a usare XML per questo.

MODIFICA: accanto a DGuitar, conosco TuxGuitar e KGuitar, che supportano i file Guitar Pro. Puoi guardare nelle loro fonti o chiedere ai loro autori sui formati di file. Penso che ci sia anche un convertitore open source PowerTab-to-ASCII.

1

Vedere Supported file formats in TuxGuitar.

TuxGuitar è un software multipiattaforma open source per la lettura, la scrittura e la riproduzione delle schede della chitarra.

sostiene il citato Guitar Pro e PowerTab formato, e ha anche un proprio formato TuxGuitar (.TG).

1

Se avete bisogno della struttura di dati back-end di rimanere in forma leggibile avrei probabilmente bastone in un CDATA all'interno di XML. Questo potrebbe essere inserito in un database relazionale con informazioni su canzoni/artisti/titoli e diventare ricercabile. Un'altra opzione è salvarla come file di testo zippato e inserire collegamenti a quei file in un database con le informazioni dell'artista principale ancora ricercabili da sql.

0

Ho scritto un'utilità rapida per la visualizzazione della scheda. Per uso personale. Puoi tranquillamente prendere il formato interno che ho usato.

Uso un formato basato su stringhe molto semplice. Ci sono tre strutture importanti.

Colonna, una colonna verticale nella scheda di output - tutte le note riprodotte contemporaneamente. Bar, una raccolta di colonne Motif, una raccolta di barre

Una colonna si presenta come ": # |: # | *: # 'dove ogni * è un numero di stringa e ogni # è un numero di tasto. Se stai suonando un accordo, separi ogni stringa: agita con un '|'

Una barra assomiglia a "[,, -, *] 'dove ogni * è una colonna. A - indica una colonna vuota in cui non vengono riprodotte le note.

Un aspetto Motif è solo un numero di barre che si eseguono da un lato all'altro. Per esempio

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