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.