TTG : Un outil pour générer vos tablatures

close
FILTRES DE LA RECHERCHE

vulcain

1 message
Bonjour à tous et à toutes,

J'ai développé un petit outil (en langage python) qui permet de générer des tablatures au format texte à partir d'un autre fichier texte. Un exemple vaudra mieux qu'un long discours.

A partir du fichier Cocoon_seesaw.tab (fichier texte source), je génère le fichier Cocoon_seesaw.txt, la tablature correspondante.

Voici le contenu du fichier source Cocoon_seesaw.tab :


 Citation :
# Artist : Cocoon
# Song : Seesaw

# Adding some custom chords
# Value format = "EADGBe"
Chords.V3 = "000003"
Chords.V7 = "000007"
Chords.GwithE4andG1 = "400100"
Chords.GwithEStringOnly = "300000"
Chords.AmWithE3 = "302210"
Chords.DmWithoute1 = "000230"
Chords.F7MWithe3 = "003213"
Chords.CWithB3 = "X32030"

# Set the final length of all generated lines (default is 80)
LineLength = 91

# Intro
Text = "Intro"
{ABGe} Am*2 {ABGB} Am [E0] [B1] [E3] [B1] {ABGe} Am*4
break

# Couplet 1
Text = "Couplet 1"
# I used to be a son of a bitch...
{ABGe} Am*4 C*4 Am*4 {EBGe} V V3 V*2 {ABGe} Am*4 C*4
# But they won't love you more...
{DBGe} Dm*4 F*2 {EBGe} GwithEStringOnly*2
{ABGe} Am*2 {ABGB} Am {EBGB} AmWithE3 {ABGe} Am*4
break

# Couplet 2
Text = "Couplet 2"
# She went home and never let me come in...
{ABGe} Am*4 C*4 Am*4 {EBGe} V3 V7 V3 {ABGe} Am*4 C*4
# There I learnt to see...
{DBGe} Dm*4 F*2 {EBGe} GwithEStringOnly*2 {ABGe} Am*2 {ABGB} Am [E0] [B1] [E3] [B1] {ABGe} Am Am*3
break

# Refrain
Text = "Refrain"
# And in the middle of the night...
{ABGe} C*4 {DBGe} Dm*1 DmWithoute1*3 {ABGe} Am*4 {EBGe} GwithEStringOnly*4
# And in the middle of the night...
GwithE4andG1*4 {ABGe} Am*2
# You may see me giving birth...
{DBGe} F*2 {ABGe} C*2 {EBGe} GwithEStringOnly*2 {ABGe} Am*2
# You may see me giving birth...
{DBGe} F*2 {ABGe} C*2 {EBGe} GwithEStringOnly*2 {ABGe} Am*8
break

# Couplet 3
Text = "Couplet 3"
# My babies were all born dead...
{ABGe} Am*4 C*4 Am*4 {EBGe} V V3 V*2 {ABGe} Am*4 C*4
# Behind a seesaw, in front...
{DBGe} Dm*4 F*2 {EBGe} GwithEStringOnly*2 {ABGe} Am*2 {ABGB} Am [E0] [B1] [E3] [B1] {ABGe} Am Am*3
break

# Refrain
Text = "Refrain"
# And in the middle of the night...
{ABGe} C*4 {DBGe} Dm*4 {ABGe} Am*4 {EBGe} GwithEStringOnly*4
# And in the middle of the night...
GwithE4andG1*4 {ABGe} Am*2
# You may see me giving birth...
{DBGe} F*2 {ABGe} C*2 {EBGe} GwithEStringOnly*2 {ABGe} Am*2
# You may see me giving birth...
{DBGe} F*2 {ABGe} C*2 {EBGe} GwithEStringOnly*2 {ABGe} Am*2
# You may see me giving birth...
{DBGe} F*2 {ABGe} C*2 {EBGe} GwithEStringOnly*2

# Fin
break
Texte = "Fin"
{ABGe} Am {DB} Am [G0] {DBGe} F7MWithe3 {DB} F7M [G0] {ABGeABG} CWithB3 [B0] {EBGe} G {EBGB} G {} Am


Ci-dessous la tablature qui est générée automatiquement.
NOTE IMPORTANTE : La tablature semble désordonnée et non alignée car le forum utilise des polices de caractères qui ne sont pas 'monospace', mais TTG génère des tablatures parfaitement carrés et droites, c'est tout l'intérêt de cet outil !


Accords du morceau (format EADGBe) :
Am = "X02210"
C = "X32010"
V = "000000"
V3 = "000003"
Dm = "XX0231"
F = "133211"
GwithEStringOnly = "300000"
AmWithE3 = "302210"
V7 = "000007"
DmWithoute1 = "000230"
GwithE4andG1 = "400100"
F7MWithe3 = "003213"
F7M = "003210"
CWithB3 = "X32030"
G = "320003"

e |[Intro] -------0--------0-------------------------0--------0--------0--------0---
B |[Intro] ---1--------1--------1---1----1---1---1--------1--------1--------1-------
G |[Intro] -----2--------2--------2----------------2--------2--------2--------2-----
D |[Intro] -------------------------------------------------------------------------
A |[Intro] -0--------0--------0----------------0--------0--------0--------0---------
E |[Intro] ----------------------------0---3----------------------------------------

e |[Couplet 1] -------0--------0--------0--------0--------0--------0--------0--------0--------
B |[Couplet 1] ---1--------1--------1--------1--------1--------1--------1--------1--------1---
G |[Couplet 1] -----2--------2--------2--------2--------0--------0--------0--------0--------2-
D |[Couplet 1] -------------------------------------------------------------------------------
A |[Couplet 1] -0--------0--------0--------0--------3--------3--------3--------3--------0-----
E |[Couplet 1] -------------------------------------------------------------------------------

e |0--------0--------0--------0--------0--------3--------0--------0--------0--------0--------0
B |-----1--------1--------1--------0--------0--------0--------0--------1--------1--------1----
G |-------2--------2--------2--------0--------0--------0--------0--------2--------2--------2--
D |-------------------------------------------------------------------------------------------
A |---0--------0--------0--------------------------------------------0--------0--------0------
E |------------------------------0--------0--------0--------0---------------------------------

e |--------0--------0--------0--------0--------0--------1--------1--------1--------1--------1-
B |----1--------1--------1--------1--------1--------3--------3--------3--------3--------1-----
G |------2--------0--------0--------0--------0--------2--------2--------2--------2--------2---
D |-----------------------------------------------0--------0--------0--------0--------3-------
A |--0--------3--------3--------3--------3----------------------------------------------------
E |-------------------------------------------------------------------------------------------

e |-------1--------0--------0--------0--------0--------------------------0--------0--------0--
B |---1--------0--------0--------1--------1--------1---1----1---1----1--------1--------1------
G |-----2--------0--------0--------2--------2--------2--------2--------2--------2--------2----
D |-3-----------------------------------------------------------------------------------------
A |----------------------------0--------0--------0-----------------0--------0--------0--------
E |----------3--------3-----------------------------------3-----------------------------------

e |------0---
B |--1-------
G |----2-----
D |----------
A |0---------
E |----------

e |[Couplet 2] -------0--------0--------0--------0--------0--------0--------0--------0--------
B |[Couplet 2] ---1--------1--------1--------1--------1--------1--------1--------1--------1---
G |[Couplet 2] -----2--------2--------2--------2--------0--------0--------0--------0--------2-
D |[Couplet 2] -------------------------------------------------------------------------------
A |[Couplet 2] -0--------0--------0--------0--------3--------3--------3--------3--------0-----
E |[Couplet 2] -------------------------------------------------------------------------------

e |0--------0--------0--------0--------3--------7--------3--------0--------0--------0--------0
B |-----1--------1--------1--------0--------0--------0--------1--------1--------1--------1----
G |-------2--------2--------2--------0--------0--------0--------2--------2--------2--------2--
D |-------------------------------------------------------------------------------------------
A |---0--------0--------0-----------------------------------0--------0--------0--------0------
E |------------------------------0--------0--------0------------------------------------------

e |--------0--------0--------0--------0--------1--------1--------1--------1--------1--------1-
B |----1--------1--------1--------1--------3--------3--------3--------3--------1--------1-----
G |------0--------0--------0--------0--------2--------2--------2--------2--------2--------2---
D |--------------------------------------0--------0--------0--------0--------3--------3-------
A |--3--------3--------3--------3-------------------------------------------------------------
E |-------------------------------------------------------------------------------------------

e |-------0--------0--------0--------0-------------------------0--------0--------0--------0---
B |---0--------0--------1--------1--------1---1----1---1---1--------1--------1--------1-------
G |-----0--------0--------2--------2--------2----------------2--------2--------2--------2-----
D |-------------------------------------------------------------------------------------------
A |-------------------0--------0--------0----------------0--------0--------0--------0---------
E |-3--------3-----------------------------------0---3----------------------------------------

e |[Refrain] -------0--------0--------0--------0--------1--------0--------0--------0--------0-
B |[Refrain] ---1--------1--------1--------1--------3--------3--------3--------3--------1-----
G |[Refrain] -----0--------0--------0--------0--------2--------2--------2--------2--------2---
D |[Refrain] -------------------------------------0--------0--------0--------0----------------
A |[Refrain] -3--------3--------3--------3--------------------------------------------0-------
E |[Refrain] ---------------------------------------------------------------------------------

e |-------0--------0--------0--------0--------0--------0--------0--------0--------0--------0--
B |---1--------1--------1--------0--------0--------0--------0--------0--------0--------0------
G |-----2--------2--------2--------0--------0--------0--------0--------1--------1--------1----
D |-------------------------------------------------------------------------------------------
A |-0--------0--------0-----------------------------------------------------------------------
E |----------------------------3--------3--------3--------3--------4--------4--------4--------

e |------0--------0--------0--------1--------1--------0--------0--------0--------0--------0---
B |--0--------1--------1--------1--------1--------1--------1--------0--------0--------1-------
G |----1--------2--------2--------2--------2--------0--------0--------0--------0--------2-----
D |---------------------------3--------3------------------------------------------------------
A |---------0--------0--------------------------3--------3--------------------------0--------0
E |4--------------------------------------------------------------3--------3------------------

e |-----0--------1--------1--------0--------0--------0--------0--------0--------0--------0----
B |-1--------1--------1--------1--------1--------0--------0--------1--------1--------1--------
G |---2--------2--------2--------0--------0--------0--------0--------2--------2--------2------
D |--------3--------3-------------------------------------------------------------------------
A |--------------------------3--------3--------------------------0--------0--------0--------0-
E |--------------------------------------------3--------3-------------------------------------

e |----0--------0--------0--------0--------0---
B |1--------1--------1--------1--------1-------
G |--2--------2--------2--------2--------2-----
D |--------------------------------------------
A |-------0--------0--------0--------0---------
E |--------------------------------------------

e |[Couplet 3] -------0--------0--------0--------0--------0--------0--------0--------0--------
B |[Couplet 3] ---1--------1--------1--------1--------1--------1--------1--------1--------1---
G |[Couplet 3] -----2--------2--------2--------2--------0--------0--------0--------0--------2-
D |[Couplet 3] -------------------------------------------------------------------------------
A |[Couplet 3] -0--------0--------0--------0--------3--------3--------3--------3--------0-----
E |[Couplet 3] -------------------------------------------------------------------------------

e |0--------0--------0--------0--------0--------3--------0--------0--------0--------0--------0
B |-----1--------1--------1--------0--------0--------0--------0--------1--------1--------1----
G |-------2--------2--------2--------0--------0--------0--------0--------2--------2--------2--
D |-------------------------------------------------------------------------------------------
A |---0--------0--------0--------------------------------------------0--------0--------0------
E |------------------------------0--------0--------0--------0---------------------------------

e |--------0--------0--------0--------0--------0--------1--------1--------1--------1--------1-
B |----1--------1--------1--------1--------1--------3--------3--------3--------3--------1-----
G |------2--------0--------0--------0--------0--------2--------2--------2--------2--------2---
D |-----------------------------------------------0--------0--------0--------0--------3-------
A |--0--------3--------3--------3--------3----------------------------------------------------
E |-------------------------------------------------------------------------------------------

e |-------1--------0--------0--------0--------0-------------------------0--------0--------0---
B |---1--------0--------0--------1--------1--------1---1----1---1---1--------1--------1-------
G |-----2--------0--------0--------2--------2--------2----------------2--------2--------2-----
D |-3-----------------------------------------------------------------------------------------
A |----------------------------0--------0--------0----------------0--------0--------0--------0
E |----------3--------3-----------------------------------0---3-------------------------------

e |-----0---
B |-1-------
G |---2-----
D |---------
A |---------
E |---------

e |[Refrain] -------0--------0--------0--------0--------1--------1--------1--------1--------0-
B |[Refrain] ---1--------1--------1--------1--------3--------3--------3--------3--------1-----
G |[Refrain] -----0--------0--------0--------0--------2--------2--------2--------2--------2---
D |[Refrain] -------------------------------------0--------0--------0--------0----------------
A |[Refrain] -3--------3--------3--------3--------------------------------------------0-------
E |[Refrain] ---------------------------------------------------------------------------------

e |-------0--------0--------0--------0--------0--------0--------0--------0--------0--------0--
B |---1--------1--------1--------0--------0--------0--------0--------0--------0--------0------
G |-----2--------2--------2--------0--------0--------0--------0--------1--------1--------1----
D |-------------------------------------------------------------------------------------------
A |-0--------0--------0-----------------------------------------------------------------------
E |----------------------------3--------3--------3--------3--------4--------4--------4--------

e |------0--------0--------0--------1--------1--------0--------0--------0--------0--------0---
B |--0--------1--------1--------1--------1--------1--------1--------0--------0--------1-------
G |----1--------2--------2--------2--------2--------0--------0--------0--------0--------2-----
D |---------------------------3--------3------------------------------------------------------
A |---------0--------0--------------------------3--------3--------------------------0--------0
E |4--------------------------------------------------------------3--------3------------------

e |-----0--------1--------1--------0--------0--------0--------0--------0--------0--------1----
B |-1--------1--------1--------1--------1--------0--------0--------1--------1--------1--------
G |---2--------2--------2--------0--------0--------0--------0--------2--------2--------2------
D |--------3--------3--------------------------------------------------------------3--------3-
A |--------------------------3--------3--------------------------0--------0-------------------
E |--------------------------------------------3--------3-------------------------------------

e |----1--------0--------0--------0--------0---
B |1--------1--------1--------0--------0-------
G |--2--------0--------0--------0--------0-----
D |--------------------------------------------
A |-------3--------3---------------------------
E |-------------------------3--------3---------

e |[Fin] -------0---------------3---------------0----------------3----------------0-
B |[Fin] ---1--------1------1--------1------3-------3----0---0--------0---0-------1-
G |[Fin] -----2---------0-----2---------0-----0-------0--------0--------0---------2-
D |[Fin] ----------2------3--------3----------------------------------------------2-
A |[Fin] -0-------------------------------3-------3-------------------------------0-
E |[Fin] --------------------------------------------------3--------3---------------


DOCUMENTATION

Voici la documentation de TTG, en français, vous pouvez retrouver cette documentation en anglais en ouvrant le fichier ttg.py dans un éditeur de texte.

Les motivations qui m'ont poussés à écrire cet outil :
Tout d'abord, j'ai souhaité ajouter la tablature de la musique Seesaw, de Cocoon, sur partoch.com puisque je ne la trouvais pas et que j'avais vu une super vidéo sur youtube d'un mec qui la jouait bien à la gratte, c'est une très belle chanson !

Alors j'ai décidé de regarder cette vidéo et de la transcrire en tablature pour la partager mais... j'ai déjà écris des tabs au format texte et c'est un travail super chiant et répétitif :-/.

Et comme je suis un fainéant, j'ai cherché des logiciels pour faire ça à ma place facilement.
J'ai téléchargé la version gratuite de Guitar Pro parce que j'ai entendu dire qu'on pouvait exporter les tabs au format texte mais... dans la version gratuite cette fonctionnalité n'est pas disponible endesaccord3 !
Et je voulais pas payer juste pour ça, j'ai cherché d'autres outils capable de faire ce que je voulais mais y'avait toujours un truc qu'allait pas : des fois ils étaient payant ou des fois bien trop compliqués avec des tonnes de fonctionnalités inutiles et une grosse interface graphique pour faire plein de choses (et peut être même le café) et moi je voulais quelque chose de simple à utiliser.

Et vous savez... quand vous ne trouvez pas ce dont vous avez besoin, il ne vous reste plus qu'à le créer wink.

Et c'est ainsi qu'est né le Text Tab Generator, aussi appelé TTG.

But de l'outil :
Cet outil est utilisé pour générer une tablature au format texte à partir d'un fichier texte .tab.

Qu'est-ce qu'un fichier .tab ?
Un fichier .tab est un fichier texte qui va être lu par TTG pour produire la tablature correspondante. Ce fichier a une syntaxe particulière pour expliquer à TTG ce que vous souhaitez faire. Cette syntaxe est expliquée ci-dessous.

Comment écrire un fichier .tab ?
C'est assez simple et intuitif, laissez moi vous expliquer ces fonctionnalités.

Ajouter des commentaires : Commencez la ligne par '#'
Exemple :
# Titre de la chanson : Seesaw
# Artiste : Cocoon

Créer un arpège permanent : {[EADGBe]}
Un arpège permanent sera utilisé jusqu'à ce qu'un autre arpège permanent soit défini
ou jusqu'à ce que l'arpège vide soit défini (voir ci-dessous).
Exemple :
Définit l'arpège ABGe :
{ABGe}
Définit l'arpège vide, aucun arpège ne sera utilisé tant qu'un autre arpège n'aura pas été défini :
{}

Pour ajouter un accord à la partition, écrivez simplement son nom au format international.
Vous pouvez aussi utiliser l'accord "V" qui signifie "Vide", "000000", ce sont toutes les cordes jouées à vide.
Pour connaître le nom des accords déjà intégrés dans TTG, ouvrez le fichier ttg.py avec un éditeur de texte et regardez la classe Chords, une liste des accords déjà connus par TTG et donc prêts à l'emploi est visible.
Exemple :
Am B C Dm E V F

Pour ajouter des pauses en ajoutant de l'espace entre les numéros sur la tablature, ajoutez simplement des espaces entre les mots qui composent vos lignes.
Exemple :
Am E C Dm F G

Pour écrire plusieurs fois le même accord, utilisez l'opérateur * comme ceci :
Exemple :
Am*3 B*2 C Dm*2

Pour écrire le numéro de la frette que le joueur doit utiliser sur la corde de la guitare, utilisez la notation suivante [[EADGBe] [numéro de frette], ...].
Exemple :
Le joueur doit jouer ces notes à la suite :
[E4] [A3] [e6]
Là il doit les jouer au même moment :
[E4,A3,e6]

Pour ajouter des accords personnalisés, utilisez la syntaxe suivante :
Chords.nomDeLAccord = "valeur"
Avec "valeur" une chaîne de caractère représentant les frettes dans l'ordre "EADGBe".
Vous devez mettre les 6 frettes des 6 cordes, si une corde ne doit pas être jouée, alors
définissez sa valeur à "X", exemple : "X32010", cela signifie que la corde E ne doit pas être jouée.
C'est pourquoi, sur la tablature, aucun numéro n'apparaîtra sur la corde E de cet accord.
Pour utiliser un accord personnalisé, utilisez simplement son nom comme d'habitude.
Exemple :
Pour déclarer le nouvel accord appelé "V3", faites :
Chords.V3 = "300000"
Pour l'utiliser, et le répéter 4 fois par exemple, faites simplement :
V3*4

Pour inclure du texte à l'intérieur de la tablature, utilisez "Text =" comme ceci :
Exemple :
Text = "Refrain"

Pour définir la longueur maximale des lignes de texte générées (par défaut 80 caractères) utilisez "LineLength =" :
Exemple :
LineLength = 90

Pour séparer les différentes parties de la tablature, utilisez "break" tout seul sur une ligne :
Exemple :
...des choses...
break
...des choses...

S'il y a une erreur de syntaxe dans votre fichier .tab, le message suivant apparaîtra :
"Syntax error in line 18 of file 'Cocoon_seesaw.tab'"
Regardez donc à la ligne 18 pour trouver le problème !

INSTALLATION

Si vous êtes intéressés par cet outil, vous pouvez l'installer en suivant ces instructions :

ETAPE 1 : Installer Python pour pouvoir exécuter l'outil

Sous windows :
1) Installez python : http://python.org/ftp/python/2.7.1/python-2.7.1.msi . L'installation standard fera l'affaire, ne modifiez rien cliquez juste sur suivant/next etc. jusqu'à la fin de l'installation.
2) Installez wxpython : http://downloads.sourceforge.net/wxpython/wxPython2.8-win32-unicode-2.8.11.0-py2... . L'installation standard fera l'affaire aussi, ne modifiez rien cliquez juste sur suivant/next etc. jusqu'à la fin de l'installation.

Sous Linux :
1) Installez python : paquet "python2.6" (debian/ubuntu)
2) Installez wxpython : paquet "python-wxgtk2.6" (debian/ubuntu)

ETAPE 2 : Télécharger l'outil

Sous windows et Linux :
1) Téléchargez l'outil sur http://ptitmouss69.free.fr/ttg/ttg.py .
2) Téléchargez l'exemple sur http://ptitmouss69.free.fr/ttg/ , faites un clic droit sur Cocoon_seesaw.tab puis "enregistrer la cible du lien sous" et stockez le où vous voulez. Si vous cliquez directement sur le lien Cocoon_seesaw.tab, vous risquez de voir son contenu plutôt que de le télécharger !

ETAPE 3 : Lancer l'outil

Sous windows :
Allez dans le répertoire où vous avez téléchargé ttg.py et double cliquez dessus. Une fenêtre noire (une fenêtre DOS) va sûrement apparaître (elle a comme titre C:/Python27/python.exe), c'est normal. Il ne faut pas la fermer. Si vous voulez qu'elle n'apparaisse plus, faites clic droit sur ttg.py, Propriétés, cliquez sur le bouton "Modifier". Cliquez sur "Parcourir" puis aller dans C:/Python27 et sélectionnez "pythonw", validez, bouton OK etc. Et relancez ttg.py, la fenêtre noire n'apparaîtra plus.

Sous Linux :
Double cliquez sur ttg.py depuis le navigateur de fichier Nautilus ou bien lancez en ligne de commande "python ttg.py".

ETAPE 4 : Utiliser l'outil avec l'exemple

Sous Windows et Linux :
Lancer l'outil puis cliquez sur le bouton "Ouvrir fichier .tab", sélectionnez le fichier Cocoon_seesaw.tab, validez. La vérification va être faite et s'il n'y a pas d'erreurs, "OK !" apparaîtra. Le bouton "Go !" va être activé, cliquez dessus puis sélectionnez le nom du fichier qui contiendra la tablature générée automatiquement (par défaut "Cocoon_seesaw.txt" pour cet exemple). Validez, et voilà c'est fini ! Vous pouvez visualiser la tablature en ouvrant le fichier Cocoon_seesaw.txt !

Si vous avez des questions...

Si vous avez un quelconque problème pour l'installation ou l'utilisation de cet outil, n'hésitez pas à poser vos questions sur ce forum que tout le monde en profite !

Si plus de 20 personnes sont intéressées par cet outil, je le développerai un peu plus car pour l'instant c'est un peu quick and dirty comme code wink. Donc si vous êtes intéressées répondez simplement sur ce forum comme quoi... vous êtes intéressés wink.

Bonne gratte !
Jérémy.






>> Plan du Forum Tablatures | suivi de la discussion | Tags : --------, abge, couplet, des, fichier, ttg, refrain, exemple, ---



+