Guitar Pro 4.06 Spins Format Description
FILE GUITAR PRO v4.06
Version: 1.0RC1 French
Author: Laurent Vromman
Property: Arobas-Music
SYNOPSIS
I. GENERAL INFORMATION
II. POURED
III. STRUCTURE OF THE FILE
IV. HEADERS
1. Version
2. Information in connection with the partition
3. Lyrics
4. Other information in connection with the partition
V. BODY OF THE FILE
1. Measurements
2. Tracks
3. Couples measurement-tracks
4. Time
5. Diagram of agreement
6. Effect over time
7. Event related to the table of mixing
8. Note
9. Effects on the note
a. Effects on the note
B. Apogiatures
10. Bends
VI. DIAGRAMS Of AGREEMENTS
I. GENERAL INFORMATION
The values of the whole type are stored on 4 bytes.
The values of the type small entirety are stored on 2 bytes.
The values of the type whole court are stored on 1 byte.
The values of the whole type and entirety short presented in this document are written from left to right weakest byte of the weight to the byte of weight most extremely.
The colors are stored on 4 bytes in the following way, the data being written from left to right weakest byte of the weight to the byte of weight most extremely:
__
3 |__| < - white Byte, it is worth 0x00 systematically;
2 |__| < - Blue;
1 |__| < - Green;
0 |__| < - Red.
When this document uses the expression character strings, it is acted in fact of a doublet including/understanding a first byte coding the number of characters of the chains (limited consequently to 255 characters), followed characters themselves.
The notes of music are stored in the form of entireties. C (0) is worth 0, and each incrementing of the variable represents a half tone:
- Do# (0) = 1;
- C (1) = 12;
- Semi (2) = 28
II. POURED
The format Guitar Pro evolved/moved progressively with the evolutions of the software to integrate the new functionalities that this one proposes. This document only describe the structure of the files Guitar Pro version 4.06.
III. STRUCTURE OF THE FILE
_______________________________________________________
| | |
| | Version |
| |_______________________________________________|
| | |
| | Information on the fingering chart |
| |_______________________________________________|
|Headers| |
| | Lyrics |
| |_______________________________________________|
| | |
| | Other information on the fingering chart |
|_______|_______________________________________________|
File | | |
| | Measurements |
| |_______________________________________________|
| | |
| | Tracks |
| |_______________________________________________|
| | | | |
| | | | Note 1 |
|Corps | | Time 1 |_______________|
| | | | |
| | | | Note I |
| | Couple |_______________|_______________|
| | Measurement-track | | |
| | | | Note 1 |
| | | Time I |_______________|
| | | | |
| | | | Note I |
|_______|_______________|_______________|_______________|
| |
| Diagrams of agreements |
|_______________________________________________________|
IV. HEADERS
The difficulty of reading of the files Guitar Pro lies in the variable face of the heading of the file. The reading of the file must thus be sequential.
Structure
_
|
| Version
|_
|
| Information on the fingering chart
|_
|
| Lyrics
|_
|
| Other information on the fingering chart
|_
1. Version
0x00000000: chains of 30 characters (without counting the short entirety annoncant the real length of the chains as explained out of I. GENERAL INFORMATION) representing the number of version. Only N first characters (N being given by the value described précédement) only are to be considered.
The various possible values to date are:
FILE GUITAR PRO v1
FILE GUITAR PRO v1.01
FILE GUITAR PRO v1.02
FILE GUITAR PRO v1.03
FILE GUITAR PRO v1.04
FILE GUITAR PRO v2.20
FILE GUITAR PRO v2.21
FILE GUITAR PRO v3.00
FILE GUITAR PRO v4.00
FILE GUITAR PRO v4.06
FILE GUITAR PRO L4.06
Only the specifications relating to the version FILE GUITAR PRO v4.06 are described here.
From this point (0x0000001F), the data are written sequentially without precise address.
2. Information in connection with the partition
Following information present is formed it of a storage block containing:
- an entirety containing the size of stored information + 1;
it chains of caratères containing the data.
This structure imposes that strings null will be written 01 00 00 00 00 in the file.
Information concerned is, in the reading order in the file:
- The title of the partition;
- Under title of the partition;
- The interpreter of the piece;
- The album from which the piece is extracted;
- The author of the piece;
- The copyright;
- The name of the author of the fingering chart;
- A line instructions in connection with the fingering chart.
The following zone contains information relating to the field note in the properties of the partition.
It begin with an entirety containing the number of lines of Nb_Notice notes, then Nb_Notice time the structure of data described précédement with in each one of them the contents of the lines of note.
The file contains then an entirety runs (Int Shorts) determining the attribute TripletFeel of the partition. If TripletFeel is activated, the value is 1, if not the entirety is worth 0.
3. Lyrics
The zone following memory contains the lyrics associated with the partition.
CAUTION: the character strings present in this section and this section only do not answer the model presented in I. GENERAL INFORMATION, but are written directly.
The zone lyrics starts with an entirety giving the number of track with which the lyrics are associated.
Then, for each of the 5 lines of lyrics managed by Guitar Pro 4, the file contains an entirety containing the number of caratères in the chains followed by the chains itself.
4. Other information in connection with the partition
Following information is:
Tempo: Entirety
The armour: Entirety runs
This value codes the armour at the beginning of partition. It is coded as follows:
- 0: C
- 1: G (#)
- 2: D (##)
- -1: F (b)
The octave: Entirety runs
0 at the base, 8 for 8va. This functionality is not yet
used, but is present in preparation for a revision of format GP4.
Channels midday:
Table of channels midday. There are 4 ports and 16 channels, the channels are
stored in this order:
port1/canal1 - port1/canal2 port1/canal16 - port2/canal1
Each element of the table has the following form:
Instrument: Entirety
Volume: Entirety runs
Balance: Entirety runs
Chorus: Entirety runs
Reverb: Entirety runs
Phaser: Entirety runs
Tremor: Entirety runs
blank1: Entirety runs => Upward compatibility
with version 3.0
blank2: Entirety runs => Upward compatibility
with version 3.0
The number of measurements: Entirety
The number of tracks: Entirety
V. BODY OF THE FILE
_________________________________
|
| Measurements
|_________________________________
|
| Tracks
|_________________________________
| | |
| | | Note 1
| | Time 1 |_
| | |
| | | Note I
| |_______________|_ couples
| Measurement-track | |
| | | Note 1
| | Time I |_
| | |
| | | Note I
|_______________|_______________|_
1. Measurements
Measurements are written the ones following the others, their number having been specified aparavant.
The first byte is the heading of measurement. It lists information present in measurement in progress.
__
7 |__| < - Presence of a double bar;
6 |__| < - Tonality of measurement;
5 |__| < - Presence of a marker;
4 |__| < - Number of fine alternative;
3 |__| < - Fine of reference;
2 |__| < - Beginning of reference;
1 |__| < - Denominator of the signature;
0 |__| < - Numerator of the signature.
Each one of its element is present only if the bit which corresponds to him is to 1.
The various elements are written (if they are present) weakest bit of the weight to the bit of weight most extremely. Make exception the double bar and the beginning of reference whose only presence is enough, auncune additional information is not nécéssaire.
Numerator of the signature: Entirety runs
Numerator of the signature of the track
Denominator of the signature: Entirety runs
Denominator of the signature of the track
End of reference: Entirety runs
Reference until the beginning of preceding reference numbers.
Number of fine alternative: Entirety runs
The definition even speaks about it.
Marker: Object
The storage of the markers is done in two times. First of all one finds
an entirety to give the longor of the name of the marker + 1, then the chain of
caratères containing the name of the marker itself. One finds then
the color of the marker.
Tonality of measurement: Entirety runs
This value codes a change of armour on the partition in progress. It
is coded as follows:
- 0: C
- 1: G (#)
- 2: D (##)
- -1: F (b)
2. Tracks
Measurements are written the ones following the others, their number having been specified aparavant.
The first byte is the heading of measurement. It specifies certain information concerning the track.
__
7 |__| < - null Bit;
6 |__| < - null Bit;
5 |__| < - null Bit;
4 |__| < - null Bit;
3 |__| < - null Bit;
2 |__| < - Track Banjo;
1 |__| < - Track for a guitar 12 cords;
0 |__| < - Track Battery.
Name: Chains
Chains of 40 characters containing the name of the Track
A number of cords: Entirety
An entirety containing the number of cords of the track.
Tuning of the cords: Table of entireties
The tuning of the cords E st stockée sur un tableau de 7 entiers, les
"Nombre de cordes" premiers entiers seulement étant réellement
utilisés. Les cordes sont stockées de la plus aigue à la plus grave.
Port: Entier
Le numéro du port MIDI utilisé
Canal: Entier
Le numéro du canal MIDI utilisé. Le canal 10 est le canal batterie.
CanalE: Entier
Le numéro du canal MIDI utilisé pour les effets.
Nombre de frets: Entier
Le nombre de frets de l'instrument.
Hauteur du capodastre: Entier
Le numéro de fret sur laquelle un éventuel capodastre est présent. Si
aucun capodastre n'est utilisé, la valeur est 0x00000000.
Couleur de la piste: Couleur
La couleur d'affichage de la piste dans la zone de gestion des pistes.
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.