3. Couple mesures-pistes
A la suite du fichier sont écrits la liste des temps par piste et par mesure, et
à la suite de chaque temps sont écrites les notes qu'il contient. La
succession des couples mesures-pistes se fait dans l'ordre suivant:
Mes 1/Pis 1 - Mes 1/Pis 2 - ... - Mes 1/Pis NbPiste - Mes 2/Pis 1 - ...
L'écriture d'une mesure-piste se fait en 2 temps. On écrit d'abord le nombre de
temps contenu dans la piste:
Nombre de Temps: Entier
Entier indiquant le nombre de temps que contient la mesure-piste.
On écrit directement ensuite le détail de chacun de ces temps.
4. Temps
Le premier octet est l'entête du temps. Il liste les informations présentes
dans le temps en cours.
__
7 |__| <- Bit nul;
6 |__| <- Etat: Vrai si le temps est vide ou si il s'agit d'un silence;
5 |__| <- Le temps est un n-olet (triolet, quintolet, etc...);
4 |__| <- Présence d'un évenement lié à la table de mixage;
3 |__| <- Présence d'effets;
2 |__| <- Présence d'un texte;
1 |__| <- Présence d'un diagramme d'accord;
0 |__| <- Notes pointées.
Etat: Entier court
Si le 6-ième bit est vrai, on commence par écrire l'état du temps. La
valeur est 0x00 si le temps est vide et 0x02 si le temps est un silence.
Durée du temps: Entier court
La durée de base du temps est la croche, qui est équivalent à une durée
du temps de 1. On obtient ainsi les relations suivantes:
* -2: Ronde;
* -1: Blanche;
* 0: Noire;
* 1: Croche;
* 2: Double croche;
* 3: Triple croche;
* ...
N-olet: Entier
Si le 5ième bit de l'octet d'en-tête est vrai, cet entier correspond au
'n' de 'n-olet':
* 3: triolet;
* 5: quintolet;
* 6: sextolet;
* 7: heptolet;
=> 9, 10, 11, 12 et 13.
Diagramme d'accord:
Si la présence d'un diagramme d'accord est indiqué par le bit n° 1 de
l'en-tête, il est enregistré à cet endroit. Le détail de cette opération
est spécifié au paragraphe V.5. Diagramme d'accord.
Texte:
Si la présence d'un texte est indiqué par le bit n° 2 de l'en-tête, il
est enregistré à cet endroit. Il se comporte de la même façon que la
plupart des chaines précédentes.
On trouve d'abord un entier codantla longueur du texte + 1, suivi de la
chaine contenant le texte au format décrit dans I. GENERALITES.
Effet sur le temps:
Si la présence d'un effet est indiquée par le bit n° 3 de l'en-tête,
il est enregistré à cet endroit. Le détail de cette opération est
spécifié au paragraphe V.6. Effet sur le temps. Les effets sur le
temps regroupent par exemple les tremolos bar, les brushs, ....
Evenement lié à la table de mixage:
Si la présence d'un évenement lié à la table de mixage est indiqué par
le bit n° 4 de l'en-tête, il est enregistré à cet endroit. Le détail
de cette opération est spécifié au paragraphe V.7. Evenement lié à la
table de mixage.
Note:
La note elle-même est enregistrée à cet endroit. Le détail de cette
opération est spécifié au paragraphe V.8. Note.
5. Diagramme d'accord
En-tête: Entier court
Cette valeur vaut 0x01, indiquant un accord au format Guitar Pro 4
Dièse: Entier court
Détermine si l'accord est affiché "en dièse" ou "en bémol".
Blank1,
Blank2,
Blank3: Entiers courts
Octets blancs nécessaires à la compatibilité ascendante avec les
versions 3 du format.
Fondamentale: Entier court
* -1 pour les accords perso
* 0: Do
* 1: Do#...
Majeur/mineur: Entier court
Détermine le type d'accord comme suit:
- 0: M
- 1: 7
- 2: 7M
- 3: 6
- 4: m
- 5: m7
- 6: m7M
- 7: m6
- 8: sus2
- 9: sus4
- 10: 7sus2
- 11: 7sus4
- 12: dim
- 13: aug
- 14: 5
Neuf, Onze ou Treize: Entier court
Permet de déterminer si l'accord va jusqu'à la 9ième, la 11ième ou la
13ième.
Basse: Entier
Note la plus basse de l'accord. Elle détermine les renversements
d'accord.
Dimuntion/Augmentation Entier
Tonalité augmentée ou diminuée en lien avec 9/11/13:
0: juste
1: augmentée
2: diminuée
add: Entier court
Permet de déterminer si un 'add' (note ajoutée) est présent dans
l'accord.
Nom: Chaine
Chaine de 20 caractères contenant le nom de l'accord.
Blank4,
Blank5: Entiers courts
Octets blancs nécessaires à la compatibilité ascendante avec les
versions 3 du logiciel.
Quinte: Entier court
Tonalité de la quinte:
0: juste
1: augmentée
2: diminuée
Neuvième: Entier court
Tonalité de la neuvième:
0: juste
1: augmentée
2: diminuée
Cette tonalité n'est valable que si la valeur "Neuf, Onze ou Treize"
vaut 11 ou 13.
Onzimème: Entier court
Tonalité de la quinte:
0: juste
1: augmentée
2: diminuée
Cette tonalité n'est valable que si la valeur "Neuf, Onze ou Treize"
vaut 13.
Fret de base: Entier
Représente la fret à partir de laquelle s'affiche l'accord.
Frets: Liste de 7 entiers
Correspond au numéro de fret joué sur chacune des cordes, de la plus
aigue à la plus grave.
-1 correspond à une corde non jouée;
0 correspond à corde jouée à vide.
Nombre de barrés: Entier court
Indique le nombre de barrés présent dans l'accord. Un accord peu
contenir jusqu'à 5 barrés.
Fret du barré: Liste de 5 entiers courts
Indique le numéro de frets sur lequel porte chacun des 5 barrés
possibles.
Début du barré: Liste de 5 entiers courts
Indique la corde de début du barré, 1 étant la plus aigue. L'ordre de la
liste correspond à l'ordre de la liste des frets des différents barrés
de l'accord.
Fin du barré: Liste de 5 entiers courts
Indique la corde de début du barré, 1 étant la plus grave. L'ordre de la
liste correspond à l'ordre de la liste des frets des différents barrés
de l'accord.
Omission1,
Omission3,
Omission5,
Omission7,
Omission9,
Omission11,
Omission13: Entiers courts
Précise les notes présentes dans l'accord.
Si la valeur est 0x00, la note est absente de l'accord, et si la valeur
est 0x01, la note est présente dans l'accord. 9, 11 ou 13 ne peuvent
être présents que pour un "Neuf, Onze ou Treize" suffisament grand.
Blank6: Entier court
Octet blanc nécessaire à la compatibilité ascendante avec les
versions 3 du logiciel.
Doigté: Liste de 7 entiers courts
Décrit le doigté à utiliser pour jouer l'accord. Le tableau donne le
doigté de la corde la plus aigue à la corde la plus grave.
-2: inconnu;
-1: X ou 0 (pas de doigt);
0: pouce;
1: index;
2: majeur;
3: annulaire;
4: auriculaire.
ShowDiagFingering: Entier court
Si il vaut 0x01, on affiche le doigté de l'accord.
Si il vaut 0x00, on masque le doigté de l'accord.
6. Effet sur le temps
Le premier octet est l'entête des effets liés au temps. Il liste les
informations à propos des effets existants sur le temps.
__
7 |__| <- Bit nul;
6 |__| <- Effet de brush;
5 |__| <- Effet de taping, de pop ou de slap;
4 |__| <- bit non utilisé -> restes de la version 3;
3 |__| <- bit non utilisé -> restes de la version 3;
2 |__| <- bit non utilisé -> restes de la version 3;
1 |__| <- bit non utilisé -> restes de la version 3;
0 |__| <- bit non utilisé -> restes de la version 3.
Le second octet est lié aux effets apparus dans la version 4 du logiciel.
__
7 |__| <- Bit nul;
6 |__| <- Bit nul;
5 |__| <- Bit nul;
4 |__| <- Bit nul;
3 |__| <- Bit nul;
2 |__| <- Trémolo Bar;
1 |__| <- Coup de médiator;
0 |__| <- Rasguedo.
Les effets sont ensuite écrits, si ils sont présents, dans l'ordre suivant:
Effet de Tap/Pop/Slap: Entier court
La présence de cet effet est conditionnée par le bit 5 du premier
octet d'en-tête. Il est écrit de la façon suivante:
0: aucun
1: Tap
2: Slap
3: Pop (guitare basse)
Tremolo Bar: Bend
La présence de cet effet est conditionnée par le bit 2 du second
octet d'en-tête. Le trémolo bar est enregistré sous forme de bend,
décrit au paragraphe V.10. Bends.
Brush up: Entier court
La présence de cet effet est conditionnée par le bit 6 du premier
octet d'en-tête. Il peut prendre différentes valeurs selon la vitesse du
brush:
0: aucun;
1: quintuple croche;
2: quadruple croche;
3: triple croche;
4: double croche;
5: croche;
6: noire.
Brush down: Entier court
La présence de cet effet est conditionnée par le bit 6 du premier
octet d'en-tête. Il peut prendre différentes valeurs selon la vitesse du
brush:
0: aucun;
1: quintuple croche;
2: quadruple croche;
3: triple croche;
4: double croche;
5: croche;
6: noire.
Rasguedo:
Le rasguedo conditionné par le bit 0 du second octet d'en-tête est un
complément aux brushs. Il n'a donc pas besoin d'écriture particulière
supplémentaire.
Coup de médiator: Entier court
La présence de cet effet est conditionnée par le bit n° 1 du second
octet d'en-tête. Il peut prendre différentes valeurs selon le sens du
coup de médiator:
0: aucun;
1: vers le haut;
2: vers le bas.