Le codage ABC expliqué à partir d'exemples progressifs

Intro

Le codage ABC a été inventé pour garder la trace informatique de mélodies de la musique traditionnelle à partir d'un équipement peu puissant (les ordinateurs de l'époque n'offraient pas tous la possibilité d'utiliser la souris ni un environnement graphique).
La musique est saisie dans un fichier au format texte (le plus simple à créer quand on ne possède aucun logiciel payant).

L'exploitation du codage ABC peut être fait à partir de petits outils libres et gratuits (même s'il en existe de payants) dans la plupart des environnements : Mac, Dos, Windows, Unices divers (Linux, BSD...), Amiga, Atari, Risc OS pour ne citer que les plus populaires.

Ces outils permettent de générer plusieurs types de sorties à partir du codage ABC :
1) Une partition imprimable au format Postscript ou PDF ;
2) un fichier MIDI ;
3) un autre fichier ABC avec transposition (par exemple réécriture automatique d'un fichier codé en Do majeur vers un fichier codé en Fa dièse majeur) ce qui permettra de reprendre les étapes 1) et 2) à avec le fichier résultant.

Codage des notes

Codage sur un octave

Les noms des notes sont remplacés par des lettres, ainsi qu'on le fait dans la plupart des pays du monde.
On remplace :
LA par A, SI par B, DO par C... et on s'arrête à SOL (qui est remplacé par G).

Ex: Les notes CDEFGAB
notes de C à B

Mais comment coder les octaves inférieurs ?

Les notes de l'octave inférieur sont accompagnées d'une virgule :
A, B, C, ... G,

Pour descendre encore d'un octave, on ajoute encore une virgule :
A,,  B,, C,, ... G,,

Ex: C,D,E,F,G,A,B,  puis C,,D,,E,,F,,G,,A,,B,, en clef de Sol
octaves inférieurs
Ex: C,D,E,F,G,A,B,  puis C,,D,,E,,F,,G,,A,,B,, en clef de Fa
codage3.jpg

Mais comment coder les octaves supérieurs ?

Les notes de l'octave supérieur sont codées : a b c d e f g.
Pour accéder à l'octave supérieur on ajoute ' à la droite de la note :
a' b' c'... g'
et pour passer à l'octave supérieur on notera a''   b''   c'' ... g'' .

Ex: cdefgab  puis c'd'e'f'g'a'b'  en clef de Sol

codage4.jpg

Codage des silences

Les silences sont codés avec les lettres Z (silence sur plusieurs mesures) et z (silences plus courts).

Ex: Z3|z2 z4 zz|
codage5.jpg

Accidents

Le dièse est remplacé par ^ placé avant la note. (Ex: ^G pour SOL Dièse)
Le bémol est remplacé par _ placé avant la note . (Ex: _B pour SI Bémol)
Le bécarre est remplacé par = placé avant la note. (Ex: =B pour SI bécarre)

Durée de la note

La durée d'un son est associée à une figure de note. On connaît par exemple la ronde, la noire, la triple croche... Il en est de même pour les silences : pauses, demi-pause (voir ci-dessus)...
Afin d'expliquer à l'ordinateur comment coder chaque figure de note, on place au début du fichier (dans une zone que nous appellerons en-tête) un paramètre qui définit la valeur de référence.

Ce paramètre est une fraction exprimée par rapport à la ronde.
L: 1 veut dire que la valeur de référence est la ronde.
L: 1/2 veut veut dire que la valeur de référence est la blanche.
L: 1/4 veut dire que la valeur de référence est la noire.
L: 1/8 veut dire que la valeur de référence est la croche...

Ex: L:1/8 et les valeurs de notes sont codées ainsi :
G8 | G4G4 | G2G2GGGG | G2gg | 2g/2 G2g g/4g/4g/4g/4 |
codage6.jpg
Explications :
G8 : la valeur de référence étant la croche (L:1/8), il faut 8 croches pour faire une ronde ;
G4G4 : deux blanches pour faire une ronde ;
G2G2GGGG : deux noires et quatre croches pour faire une ronde ;
g/2 : double croche (croche divisée par deux) ;
g/4 : triple croche (croche divisée par quatre).
| : barre de mesure

Structure d'un fichier ABC

En simplifiant, on peut écrire qu'un fichier ABC comprend deux parties :
- L'en-tête
- Le corps de la musique, sous la forme de lettres, chiffres et caractères particuliers.

L'en-tête

Dans l'ordre, on entre :

X:
numéro (numéro du morceau dans le fichier ; si on ne place qu'un seul morceau dans le fichier, on aura toujours X: 1)
T: titre du morceau (Ex: Il pleut bergère)
M : valeur (valeur de la mesure sous la forme conventionnelle : 2/4, 3/4, 6/8 ...)
L: valeur (valeur de la figure de note prise en référence : 1/2 pour la blanche, 1/4 pour la noire, 1/8 pour la croche...)
K: tonalité (codage de la tonalité : voir plus bas)

D'autres paramètres peuvent être ajoutés, mais on n'en parlera pas tout de suite.

Définir la tonalité

Elle se définit à l'aide de l'une des lettres ABCDEFG suivie éventuellement du signe # ou b mais aussi le la lettre m (pour mineur) et de l'abréviation d'un mode (Phr = Phrygien, Lyd = Lydien, Aeo = Aeolien, Loc = Locrien, Dor = Dorien, Myx = Myxolidien).
Remarque : pas de commentaires sur ces différents modes dont j'ignore tout, et dont on se passera pour le moment.
Codage selon le nombre de dièses ou de bémols à la clef :
7 dièses : C# ou A#m
6 dièses : F# ou D#m
5 dièses : B ou G#m
4 dièses : E ou C#m
3 dièses : A ou F#m
2 dièses : D ou Bm
1 dièse :   G ou Em

0 dièse : C ou Am

1 bémol : F ou Dm
2 bémols : Bb ou Gm
3 bémols : Eb ou Cm
4 bémols : Ab ou Fm
5 bémols : Db ou Bbm
6 bémols : Gb ou Ebm
7 bémols : Cb ou Abm

Ex: K: A#m , K: Ebm, K: Cb

Important : les paramètres K: L: M:  peuvent réapparaître dans le corps du codage quand la musique l'exige. Dans ce cas, ils sont introduits entre crochets (voir exemple suivant).

Le codage de la musique

Le format ABC a été créé pour noter des mélodies et, initialement, il ne permettait que cela. Des extensions au standard ont été apportées de façon à autoriser beaucoup d'autres choses.
Un codage simplifié peut se faire à partir de ce qui a été dit ici. Les exmples traités permettront de compléter au fur et à mesure.

Ex: Un exemple complet
X:1
T: Changements divers
M: 4/4
L:1/8
K:F#m
G2gg/2g/2 G2g g/4g/4g/4g/4  |  [K:Gb] [M:3/4] BA2cBA|
codage7.jpg
Explications complémentaires :
[K:Gb] on change de tonalité, ce qui nécessite les crochets dans le corps de la musique ;
[M:3/4] on change de mesure, ce qui nécessite les crochets dans le corps de la musique.

Un exemple d'application : le temps des cerises

La partition a été recopiée dans le livre 1 de la collection 1000 chants, choisis par Jean Edel Berthier, édité par les Presses d'Ile de France.
La mélodie est accompagnée des paroles et un accompagnement simple est proposé, sous la forme d'une liste d'accords tels qu'on peut utiliser avec une guitare.

4.1. La partition du début

Paroles :
Quand nous chanterons le temps des cerises
Et gai rossignol, et merles moqueurs
Seront tous en fête

Musique :
letemps1.jpg

Le codage ABC

X:1
T: Le temps des cerises
M: 6/8
L:1/8
K:F
z2 C FFF | F2F GGG | GGG AAA | A2A BBB |
BzA AAA | A3G3 | B z z4| |
Explication détaillée :
X:1 Numéro du morceau dans le fichier (un seul morceau)
T: Le temps des cerises (titre du morceau)
M:6/8 (mesure à deux temps contenant 6 croches)
L:1/8 (valeur de note de référence : comme les croches sont les figures de notes les plus fréquentes dans ce morceau, il est astucieux de les prendre comme référence)
K:F (Tonalité Fa majeur - ou RE mineur - le début de la mélodie DO FA FA FA donne à penser que l'on est en FA majeur)

Mesure 1 :
Si l'on se contente de noter C F F F on obtient un total de 4 croches pour la mesure qui doit en totaliser 6. On est donc amené à placer z2 au-début pour compléter la mesure.
Mesure 2 :
F2 F G G G : une noire (F2) vaut deux croches
Mesure 3 :
G G G A A A : rien à dire
Mesure 4 :
A2 A B B B : une noire (A2) vaut deux croches
Mesure 5 :
B z A A A A  :  La croche B est suivie d'un silence de durée égale (z)
Mesure 6 :
A3 G3 : une noire pointée(A3 ou G3) vaut une noire plus une croche, soit trois croches.
Mesure 7 :
B z z4| | : La mesure est ici "tripatouillée" : z z4 ne sont là que pour se substituer aux vraies notes... mais celles-ci relancent le chant au-delà des paroles citées dans l'exemple.

Ecouter le fichier MIDI généré.

Il vous suffit de cliquer ici.

Conclusion provisoire

Nous avons présenté le principe de codage des fichiers ABC, mais avons masqué tout ce qui était relatif à l'utilisation des logiciels.
Un second article présentera toute la partie utilisation de ceux-ci.
Compléments :
TOUS les logiciels utilisés pour réaliser cet article sont libres et gratuits :
Composition de page web avec Mozilla Composeur ;
Edition des fichiers ABC avec Vim ou Kate (selon ma fantaisie) ;
Conversion en MIDI avec abc2midi ;
Conversion en Postscript puis PDF avec abcm2ps et ps2pdf ;
Affichage du PDF avec XPDF ;
Capture des images et recadrage avec Gimp.
Logiciel système Linux, sur un PC récent mais de très bas de gamme (réalisé par un assembleur, c'est à dire sans obligation d'acheter une license Windows).

L'auteur ne travaille plus qu'avec des logiciels libres depuis plus de trois ans, ce qui lui a permis de réaliser de substantielles économies et lui permet de respecter la LOI (refus de tout "piratage").