• Documentation ABC

Présentation de la notation ABC

ABC est un système de notation musicale destiné à l'écriture de partitions de musique sous forme de texte.

La plupart des programmes de notation musicale ont une approche graphique : une ou plusieurs portées sont affichées à l’ecran, et l’utilisateur y met des notes avec la souris.
Une autre approche consiste à écrire la musique avec une notation textuelle. Ce mode non graphique représente les notes et les autres symboles avec des caractères.
Un programme est ensuite charé de traduire cette notation en partition ‘normale’ dans un format électronique
Ce format tient maintenant une place importante, surtout en contexte de musique traditionnelle, parmi les divers standards de codage informatique de la musique, du fait de sa simplicité et son efficacité.
L'intérêt de noter la musique sous forme de texte est que, sous cette forme, une partition est à la fois lisible et éditable par l'humain et par la machine (l'ordinateur).
Attention, ABC n'est ni logiciel ni un format propre à un logiciel puis suivi par d'autres logiciels, ABC est une SPECIFICATION, une NORME, et, comme toute spécification, son édiction précède sa mise en application.
La norme ABC a été créée par Chris Walshaw, enseignant de mathématiques et informatique de l'université de Greenwich (Grande-Bretagne) et musicien traditionnel.
La versions d'ABC utilisée pour ce site est ABC 2.2.

Rappel : La documentation officielle de la version 2 est accéssible à cette adresse : http://abcnotation.com/wiki/abc:standard:v2.1#abc_files_tunes_and_fragments
Vous pourrez consulter plus en détail les informations que l'on retrouve dans ce document, qui sert de base pour bien démarrer avec ABC.


Structure d'un fichier ABC

Un fichier ABC est un simple fichier texte muni de l'extension "*.abc" et structuré suivant les règles décrites ci-après.
Un fichier ABC est originellement un pur fichier texte, c.à.d. que ce fichier ne contient que des caractères codés sur 7 bits (code ascii) pour ce qui concerne le codage de la musique stricto sensu.

Les caractères étendus (8 bits), c.à.d. les caractères accentués, etc. sont néanmoins utilisables dans les titres, les commentaires et toutes les données non strictement musicales.
Néanmoins l'évolution du standard va dans le sens de l'encodage généralisé des caractères étendus, au bénéfice de la compatibilité internationale mais au détriment de la lisibilité et de l'indexation sur le Web...Un unique fichier ABC peut contenir plusieurs morceaux musicaux (c'est alors une compilation).

Si vous n’avez pas de clavier anglais, certains caracères importants peuvent manquer.
Pour obtenir ces caractères sous Windows, activez le pavé numérique, enfoncez la touche Alt enfoncée et tapez trois chiffres :
– Alt-126 pour obtenir le tilde ˜ ;
– Alt-009 pour obtenir la tabulation ;
– Alt-096 pour obtenir un accent invers´e ‘ ;
– Alt-123 pour obtenir une accolade ouvrante { ;
– Alt-125 pour obtenir une accolade fermante } ;
– Alt-091 pour obtenir un crochet ouvrant [ ;
– Alt-092 pour obtenir un crochet fermant ] .

Caractères étrangers :
Tant que vous écrirez des paroles en anglais, pas de problème.
Les choses se compliquent dès qu’il faut écrire des paroles dans des langues comme l’Italien, le Francçais, l’Allemand, le Hongrois. . . Il faut des caractères accentués qui n’existent pas sur les claviers anglais standards.
Le problème est résolu par l’emploi de séquences spéciales de caractères : on commence par \ , puis un caractère sécial, puis la lettre à modifier.
C’est plus facile à faire qu’à dire : voyez la table 2. Attention `a la distinction entre les accents aigu ’ et grave ‘ .
(Vous trouverez une table complète des symboles plus bas)
Lettre Séquence
`a `e ´a ´e \‘a \‘e \’a \’e
¨U ¨u ¨e ¨o \"U \"u \"e \"o
˜N ˜n \˜N \˜n
ß ø Ø °a °A \ss \/o \/O \aa \AA
ˆO ˆo c¸ C¸ \ˆO \ˆo \cc \cC
Æ OE æ oe \AE \OE \ae \oe

ABC utilise des caractères standards pour repésenter les notes et les symboles :
– les lettres comme A B C a b c z représentent les notes et les silences ;
– les altérations, les liaisons, etc. sont écrits avec des caracères comme = - ( ) ;
– la dynamique s’écrit avec des mots comme !fff!, !fermata!, !tenuto! ;
– les propriétés de la mesure, la clef, le titre et autres s’´ecrivent avec des mots appelés champs, comme M: ;
– les détails de bas niveau (paramètres de mise en page ou commandes MIDI) s’écrivent avec des commandes comme %%titlefont ou %%MIDI program 19.
En bref : toute la musique s’écrit avec des suites de caractères.

Voici un exemple de fichier ABC, contenant deux morceaux :

%abc
X:1 % index du morceau 1 (début en-tête)
T:Mon titre 1 % titre du morceau
A:Centre-Bretagne % origine géographique
R:Dañs Plinn % classification rythmique
C:(traditionnel) % compositeur
M:4/4 % mesure
K:Eb % tonalité
% ------------ Corps du premier morceau ---------------------
|: GF DG GF GF | GF DG GF G2 | GF DG GF G>G :||: GA BB AG A2| GG GF D2 D2 :|
%-------------- Fin du premier morceau ----------------------
X:2 % index du morceau 2 (début en-tête)
T:Mon titre 2
A:Centre-Bretagne
R:Dañs Plinn
C:(traditionnel)
M:4/4
K:Eb
% -------- Corps du deuxième morceau -------------------------
|: CD EG GF EF | GA GF E2 E2 :||: CE DE FE CD | EC CB, C2 C2:|
%-------------- Fin du deuxième morceau ----------------------

Chaque bloc de lignes séparé des autres blocs par une ligne vide représente un morceau individuel.

Créer un fichier ABC

Rien de plus simple que de créer un fichier ABC : n'importe quel éditeur de texte suffit !
1) Ouvrez un éditeur de texte, ce peit être le bloc-notes de Windows ou notre éditeur en ligne sur ce site
2) Tapez-y le texte suivant ou le selectionner (en vert) et faites copier/coller .

X:1
T:Hello World!
K:C
CC CD E2 D2 CE DD C2 C2

3) Enregistrez ce fichier sous un nom quelconque avec l'extension "abc" (par exemple : MonPremierFichier.abc).
Et voilà, vous venez de créer votre premier fichier de musique numérique en format ABC !
Si vous ouvrez ensuite ce fichier dans un logiciel audio gérant le format ABC, vos oreilles émues entendront cet immortel chef-d'oeuvre, "Au clair de la lune".
Evidemment, la plupart des fichiers ABC sont un peu plus compliqués que celui-ci, mais à peine.

Lire un fichier ABC

Le déchiffrage humain direct d'une partition ABC est possible avec un peu d'habitude mais n'apporte bien sûr guère d'avantage par rapport au déchiffrage d'une partition classique...
Pour tirer utilité d'un fichier ABC, il faut donc utiliser des logiciels dédiés à ce format.
- le transformer en partition traditionnelle, visualisable et imprimable,
- éditer le code ABC de manière plus ou moins conviviale,
- le convertir en d'autres formats de fichiers musicaux (MIDI et autres...), PDF ou graphiques,
- le jouer sur les haut-parleurs de l'ordinateur (en le convertissant à la volée en MIDI),
- etc.
Notre éditeur fait cela, mais il ne sais pas tout faire.
La lecture audio directe par la plupart des lecteurs audio généralistes (Windows Media Player, Real Player, ...) n'est hélas pas encore possible du fait de la non prise en charge à ce jour de ce format par ceux-ci.


STRUCTURE DES FICHIERS ABC, REGLES DE CONSTRUCTION

Structure des morceaux:

Chaque morceau individuel
se compose d'un en-tête et d'un corps.
On peut également trouver dans un morceau des commentaires facultatifs préfixés par %.


L'en-tête
du morceau est uniquement composé de champs informatifs (les propriétés du morceau) et de commentaires éventuels.
L'en-tête doit débuter par un champ X: (numéro de référence du morceau dans la compilation) suivi d'un champ T: (titre) et finir par un champ K: (tonalité) (voir : les champs informatifs). Si le fichier ne contient qu'un seul morceau, le champ X: peut être omis.

Le corps du morceau doit suivre immédiatement le champ K: (tonalité).
Le corps correspond à la partition musicale écrite en notation ABC.
Le corps est composé de lignes de musique ainsi qu'éventuellement de champs informatifs et de commentaires.
Un morceau peut éventuellement ne contenir qu'un en-tête, sans corps associé, il constitue alors une simple documentation sur le morceau concerné, sans partition associée.
Les morceaux peuvent être séparés par des lignes vides, par contre les lignes vides sont donc interdites à l'intérieur des morceaux.
Les caractères de tabulation (ascii 9) sont considérés équivalents à des espaces.
Les espaces en fin de ligne sont ignorés.
Le symbole de fin de ligne peut indifféremment être l'un ou l'autre de ceux adoptés par les trois principaux standards actuels : Macintosh (CR = ascii 13 ), Unix/Linux (LF = ascii 10), Windows (CR-LF = ascii 13 + ascii 10).

Un fichier peut aussi comporter un en-tête de fichier, qui est un bloc de lignes séparé du premier morceau par une ligne vide.
Cet en-tête peut contenir des paramétrages s'appliquant à TOUS les morceaux contenus dans le fichier.
Un fichier peut contenir du texte libre entre les morceaux.

Les caractères suivants sont interdits dans les lignes de notation et sont réservés pour de futures évolutions du format : # $ * ; ? @ . Ils seront ignorés par les logiciels applicatifs.
Ces caractères restent autorisés dans les champs informatifs et dans les chaînes ABC (chaînes de texte encodé).
Remarque : la norme ne prévoit pas explicitement de débuter tout fichier ABC par "%abc".
C'est néanmoins une excellente habitude à prendre, conforme à de nombreux autres formats de fichiers informatiques, et qui permet l'identification immédiate d'un fichier ABC comme tel, quelle que soit son extension.

A propos de la compatibilité
La facilité du codage ABC "à la main" fait que de subtils écarts avec la norme sont fréquents dans les fichiers ABC.
Ces écarts ne sont pas gênants pour la compréhension humaine mais le sont pour un traitement automatisé par un logiciel.
De plus, les logiciels gérant le format ABC ne respectent pas tous rigoureusement le standard, y ajoutant certaines fonctionnalités propriétaires (c.à.d. spécifiques à une application et absentes du standard), ignorant certaines fonctionnalités du standard ou les interprétant de manière légèrement différente de celle prévue par le standard.
Bref, la compatibilité des fichiers ABC entre les divers logiciels gérant ce format n'est pas toujours totale et doit être améliorée.
Ce problème n'est d'ailleurs pas propre à ABC mais à beaucoup de formats publics non liés à un logiciel précis et ayant vocation de standard.Voici donc quelques conseils simples et de bon sens pour assurer une compatibilité optimale des fichiers ABC entre les divers systèmes d'applications et les divers logiciels applicatifs, actuels et à venir :
- Se conformer rigoureusement à la norme, cela peut paraître évident, cela l'est moins si l'on précise que cela concerne aussi bien le programmeur d'un logiciel que l'utilisateur de celui-ci.
- Ne pas utiliser de commandes ou de paramètres propriétaires si le fichier est destiné à être distribué..
- Privilégier la programmation de logiciels interopérables entre les diverses plateformes.
- Tout logiciel ABC se doit d'être compatible avec le standard et avec le plus possible d'autres logiciels ABC.
- Dans les fichiers ABC distribué, choisir préférentiellement CR-LF comme caractère de fin de ligne, non pas parce que ce caractère correspond au standard de Windows mais parce que les logiciels tournant sur des systèmes d'exploitation utilisant soit le CR soit le LF interpréteront correctement de manière native le CRLF comme une fin de ligne, alors que l'inverse n'est pas forcément vrai.

Le champ informatif :

Chaque ligne d'un fichier ABC qui commence par une lettre de A à Z suivie immédiatement par : est interprétée comme étant un champ d'information
Attention à ne pas laisser d'espace entre la lettre et le double point car sinon les logiciels peuvent confondre un identifiant de champ avec une note de musique.


1 - Les champs standards :

Nom du champ

En-tête

Corps

Ailleurs

Utilité

Exemples et notes

A: Auteur des paroles

x

   

indexation

A:Bretagne-nord

B: source Biblio

x

 

x

archivage

B:l'Echo des chaumières

C: Compositeur musique

x

   

indexation

C:Pierre Noël

D: Discographie

x

   

archivage

D:Pierre Noël, ses plus grand succès

F: nom du Fichier

   

x

indexation

C:MonFichier.abc

G: Groupe

x

 

x

indexation

G:pipeau et orgue

H: Historique

x

 

x

archivage

H:composé il y a longtemps

I: Instruction

x

 

x

indexation

champ utilisé par certains logiciels

K: tonalité (Key)

(dernier)

x

 

musique Obligatoire

K:G | K:Dm | K:AMix

L: Longueur par défaut

x

x

 

mise en forme

L:1/4 | L:1/8

M: Mesure

x

x

x

musique

M:3/4 | M:4/4

N: Notes (annotations)

x

   

archivage

N:c'est un tube

O: Origine

x

 

x

indexation

O:I | O:France,

P: Parties

x

x

 

musique

P:ABAC | P:A | P:B

Q: tempo

x

x

 

musique

Q:200 | Q:C2=200

R: Rythme

x

 

x

indexation

R:R | R:valse

S: Source

x

   

archivage

S:collecté en Alaska

T: Titre

(2ème)

x

 

archivage Obligatoire

T:Mon beau sapin

U: défini par l'Utilisateur

x

x

x

 

Redéfinition des symboles

V: voix

x

x

 

 

V:1

W: paroles (Words)

 

x

 

musique

W:Oh Tannenbaum ...

w: paroles (Words)

 

x

 

musique

Paroles alignées sous les notes

X: numéro de référence

(1er)

   

indexation Obligatoire

X:1 | X:2

Z: transcripteur

x

   

archivage

Z:d'une photocopie

Dernièrement, ajout de nouveaux champs : m: (macro), r: (remarques), s: (ligne de symboles)

Le typage des données des champs est dorénavant explicitement précisé :

Un champ de type S (String, chaîne en Anglais) admet comme contenu du texte libre mais formaté comme une chaîne ABC.
Un champ de type I (Instruction) admet comme contenu des instructions suivant une syntaxe précise.

Nom du champ

En-tête

corps

fichier

type

A: Auteur paroles

x

 

x

S

B: source Biblio

x

 

x

S

C: Compositeur musique

x

 

x

S

D: Discographie

x

 

x

S

F: nom du Fichier

x

 

x

S

G: Groupe

x

 

x

S

H: Historique

x

 

x

S

I: Instruction

x

x

x

I

K: Tonalité (Key)

dernier

x

 

I

L: Longueur par défaut

x

x

 

I

M: Mesure

x

x

x

I

m: macro

x

x

x

I

N: Notes (annotations)

x

x

x

S

O: Origine

x

 

x

S

P: Parties

x

x

 

I

Q: tempo

x

x

 

I

R: Rythme

x

x

x

S

r: remarques

x

x

x

-

S: Source

x

 

x

S

s: ligne de symboles

 

x

 

I

T: Titre

2ème

x

x

S

U: défini par l'Utilisateur

x

x

x

I

V: Voix

x

x

 

I

W: paroles (Words)

x

x

 

S

w: paroles (words)

 

x

 

S

X: numéro de référence

1er

   

I

Z: transcription

x

 

x

S

La forme du contenu du champ r: (remarques) est libre car ce contenu est totalement ignoré.

Les champs essentiels :
Pour la transcription musicale en ABC, les seuls champs vraiment nécessaires sont : T: (titre) M: (mesure) ... et parfois : K: (tonalité), L: (valeur de note par défaut) Les champs suivants sont aussi utiles mais non indispensables : Q: (tempo) w: (paroles)

Les autres champs :
Les autres champs ont essentiellement un rôle pour la documentation, l'archivage et l'indexation éventuelle des partitions mais ne concernent pas directement le contenu de celles-ci.
Dans la colonne "utilité" du tableau des champs, la distinction entre "indexation" et "archivage" est la suivante :
- une donnée d'indexation est une donnée susceptible de se retrouver à l'identique dans de nombreux morceaux,
- une donnée d'archivage est une donnée variable propre à chaque morceau.
Cette distinction est assez arbitraire et artificielle (et peu importante).
De nombreux champs ne sont pas pris en compte par les logiciels actuels de traitement des fichiers ABC et ne servent que pour le stockage éventuel par l'utilisateur d'informations sur le morceau concerné.
Un champ de type S (String, chaîne en Anglais) admet comme contenu du texte libre mais formaté comme une chaîne ABC.
Un champ de type I (Instruction) admet comme contenu des instructions suivant une syntaxe précise.
La forme du contenu du champ r: (remarques) est libre car ce contenu est totalement ignoré.

Le champ étendu :
En version 2 un nouveau format de champ, dit champ étendu a été introduit.

%%NomDuChamp <valeur>

Ces champs étendus sont placés sur une ligne individuelle, ils débutent par %% suivi du nom de champ (il peut y avoir des espaces entre %% et le nom de champ).
Ce préfixe permet que les champs étendus soient assimilés à de simples commentaires (les commentaires ABC sont préfixés par le symbole %), et donc ignorés, par les logiciels ne reconnaissant pas les champs étendus.
Généralement en en tête de fichier, on trouvera :
Le champ %%abc-copyright contient les informations concernant les droits légaux qui se rattachent à un morceau ou à un ensemble de morceaux.
Le champ %%abc-version indique le numéro de version de la norme ABC qui a été suivie pour la rédaction/édition du morceau concerné.
Le champ %%abc-creator contient le nom du logiciel qui a servi à créer ou à mettre à jour le fichier ABC. Ce nom est suivi d'un numéro de version éventuel.
Le champ %%abc-charset indique le jeu de caractère à utiliser pour les chaînes ABC. Exemple %%abc-charset us-ascii Jeu ASCII standard ....
Le champ %%abc-include permet l'importation des données d'en-tête d'un fichier externe à l'emplacement de ce champ.
Le champ %%abc-edited-by contient les coordonnées de la personne ayant modifié ou compilé une partie du fichier ou d'un morceau. Cette personne peut être différente du transcripteur, dont les coordonnées sont indiquées dans le champ Z:
Puis ce champ sert à intégrer de nouvelles possiblités comme %%MIDI canal 2 par exemple pour choisir le canal 2 midi, ou bien %%MIDIprogram 40 pour choisir l'instrument 40 de liste d'instrument qui jouera la section concernée. (voir la doc midi sur le site)


Description des champs essentiels et des plus importants (non informatif)

Le champ K:

Le champ K: indique la tonalité du morceau ou de la section de morceau sous-jacente.
Le champ K: peut également contenir une indication du type de clé.
Ce champ doit être le dernier de l'en-tête d'un morceau, tout ce qui lui fait suite est considéré comme le corps du morceau.
Unique dans un en-tête ; ce champ peut être multiple dans le corps de morceau
La présence d'un champ K: est théoriquement obligatoire avant le début du corps de morceau
La valeur d'un champ K: remplace la valeur du champ K: précédent.

Syntaxe :
Dans ce champ, la tonalité doit être indiquée par une lettre majuscule, suivant la norme anglo-saxonne (de A à G, avec la = A) et peut être suivie de # pour dièse ou b pour bémol.
De plus, différents modes peuvent être spécifiés textuellement, par exemple :
K:C
K:C major
K:A minor
K:Am
K:F lydian
K:C ionian
K:G mixolydian
K:D dorian
K:A aeolian
K:E phrygian
K:B locrian
A l'affichage, ces indications de mode devraient toutes donner une portée sans dièse ni bémol.

Dans ces indications de tonalités modales, les espaces et les majuscules ne sont pas pris en compte. En fait, seules les trois premières lettres sont nécessaires.
Donc, les exemples suivants sont tous équivalents :

Nb : Attention en indiquant les modes de manière non abrégée, car le verbiage ABC est anglo-saxon.
Dans ce cas, il semble préférable d'indiquer les modes en anglais, même si cela écorche les yeux de certains. Par exemple, lydian au lieu de lydien.
La norme ABC prévoyant de ne prendre en compte que les 3 premières lettres, il ne devrait pas y avoir de problème (lydian = lydien = Lyd).
En fait, tout dépend du logiciel qui va traiter le fichier en ABC et donc des compétences et des choix linguistiques de son concepteur...
La notation textuelle longue des modes peut donc parfois être source de problèmes de compatibilité, les abréviations sont préférables.
( Une description pratique de l'usage de K: avec notre éditeur est expliquée ici pour aborder le sujet de la transposition ).

Tableau des armures de clé et des codes pour les différents modes

Armure de clé

Major

Ion

Minor

Aeo

Mix

Dor

Phr

Lyd

Loc

7 #

C#

A#m

G#Mix

D#Dor

E#Phr

F#Lyd

B#Loc

6 #

F#

D#m

C#Mix

G#Dor

A#Phr

BLyd

E#Loc

5 #

B

G#m

F#Mix

C#Dor

D#Phr

ELyd

A#Loc

4 #

E

C#m

Bmix

F#Dor

G#Phr

ALyd

D#Loc

3 #

A

F#m

Emix

Bdor

C#Phr

DLyd

G#Loc

2 #

D

Bm

Amix

Edor

F#Phr

GLyd

C#Loc

1 #

G

Em

Dmix

Ador

BPhr

CLyd

F#Loc

0

C

Am

Gmix

Ddor

Ephr

FLyd

BLoc

1 b

F

Dm

Cmix

Gdor

Aphr

BbLyd

ELoc

2 b

Bb

Gm

Fmix

Cdor

DPhr

EbLyd

ALoc

3 b

Eb

Cm

BbMix

Fdor

GPhr

AbLyd

DLoc

4 b

Ab

Fm

EbMix

BbDor

CPhr

DbLyd

GLoc

5 b

Db

Bbm

AbMix

EbDor

FPhr

GbLyd

CLoc

6 b

Gb

Ebm

DbMix

AbDor

BbPhr

CbLyd

FLoc

7 b

Cb

Abm

GbMix

DbDor

EbPhr

FbLyd

BbLoc


Modifications supplémentaires de l'armure de clé :

L'armure de clé peut être modifiée avec des altérations globales (qui concernent toute la partition qui suit).
Ceci est particulièrement utile pour transcrire les musiques orientales. On utilise la syntaxe suivante (les espaces doivent être respectés) :

K:<tonique> <altération>
K:<tonique> <mode> <altération1> <altération2>

Chaque élément de la commande doit être séparé par un espace et la note concernée par l'altération doit être écrite en minuscule.
La syntaxe des altérations est la même que celles des altérations dans une portée.
Exemples :

K:D =c marquera tous les do comme naturels dans cette tonalité de ré majeur.
K:D Phr ^f donne 2 bémols et un dièse.
K:D maj =c ou K:D =c donnent fa dièse et do naturel.

Attention, la façon dont le logiciel mettra en forme ces commandes d'altérations globales peut varier.

Description explicite de la tonalité et de l'armure de clé :

Plutôt que d'indiquer un mode tonal, on peut détailler explicitement la tonique et l'armure de clé en utilisant le mot-clé exp (pour explicite) avec la syntaxe suivante (les espaces doivent être respectés) : K:<tonique> exp <altérations>

Exemples :
K:D exp _b _e ^f est équivalent à K:D Phr ^f

Cas spécifique de la cornemuse écossaise : Il existe deux codes supplémentaires spécifiques à la notation des airs pour cornemuse :
K:HP supprime la clé sur la portée ainsi qu'il est de coutume pour beaucoup de partitions de ce genre de musique.
K:Hp qui porte un fa#, un do# et un sol naturel à la clé.

Ces deux modalités imposent à l'affichage des hampes vers le bas pour les notes de mélodie et des hampes vers le haut pour les notes d'ornementation.

Type de clé : par défaut c'est la clé de sol.
La clé de fa peut être indiquée de la manière suivante (les deux syntaxes sont admises mais certains logiciels ne reconnaissent que la seconde qui est donc préférable).
Par exemple, pour la tonalité K:Am.
K:Am bass
K:Am clef=bass

K:none supprime toute référence à une tonalité.

La spécification du type de clef suit la syntaxe suivante :

[clef=]<nom clef>[<n° ligne>] [+8 | -8]
[middle=<pitch>] [transpose=<nb_demi-tons>]
[stafflines=<nb_lignes>]
Exemples :
[K: clef=alto]
[K: perc stafflines=1]
[K:Am transpose=-2]
[V:B middle=d bass]

"clef=" peut être omis.
<nom clef> treble (clef de sol), alto, tenor, bass, perc (clef de percussion) ou none (pas de clef).
<n° ligne> Numéro de la ligne de portée sur laquelle doit être inscrite la clef.
Valeurs par défaut : treble : 2 ; alto : 3; tenor : 4; bass : 4.
+ 8 -8 Inscrit un "8" au-dessus ou au-dessous de la portée. L'interpréteur sonore transposera les notes d'une octave en plus ou en moins.

middle=<pitch> Indique quelle note correspond à la troisième ligne de la portée.
Valeurs par défaut : treble: B ; alto : C ; tenor : A, ; bass: D, ; none : B.
Forme abrégée : m=... Utile conjointement avec la clé de basse pour éviter d'ajouter la virgule aux notes.
transpose=<nb_demi-tons> Indique le nombre de demi-tons dont doit être transposée la voix courante. Sans effet sur la sortie imprimée. Par défaut : 0.
Forme abrégée : t=...

stafflines=<nb_lignes> Indique le nombre de lignes de la portée. Par défaut : 5.

Les sept clés standards :

Nom

Syntaxe

Clé de sol

K:treble

Basse

K:bass

Bariton

K:bass3

Tenor

K:tenor

Alto

K:alto

Mezzosoprano

K:alto2

Soprano

K:alto1


Champ L: Longueur de note par défaut

Le champ L: impose une valeur de durée (croche, noire, etc.) par défaut pour les notes qui suivent ce champ, c.à.d. que chaque note aura implicitement cette valeur, sauf indication complémentaire appliquée à la note (sous forme de facteurs multiplicateurs ou diviseurs de la durée par défaut).
La valeur de longueur de note doit être indiquée sous la forme classique de fraction de ronde (par convention la ronde vaut 1).

Exemples :
L:1/2 = la blanche
L:1/4 = la noire
L:1/8 = la croche
L:1/16 = la double croche

En l'absence de champ L:, la longueur de note par défaut est implicite. Cette valeur est alors déduite automatiquement de la mesure (champ M:) de sorte que le champ L: n'est indispensable que dans le cas où on veut imposer une longueur différente de note par défaut.
Cependant, même quand il est redondant, l'utilisation du champ L: n'en reste pas moins recommandée.

Dans une ligne de partition ABC, toute note sera donc considérée comme ayant pour durée cette valeur par défaut, sauf indication contraire.

Champ M: Mesure Indication de la valeur de la mesure.

Si le morceau ne comporte aucun champ M: la prise en compte de la mesure est supprimée (mesure libre) et les barres de mesure peuvent être placées n'importe où.

Ce champ peut prendre les valeurs fractionnaires usuelles comme 3/4, 6/8, etc., mais aussi les symboles C (pour 4/4) et C| (pour 2/2)
Rappel de solfège : 1/2 = une blanche, 1/4 = une noire, 1/8 = une croche, 1/16 = une double croche.
Donc, 4/4 = mesure binaire à quatre temps, 3/4 = mesure binaire à trois temps, 6/8 = mesure ternaire à deux temps, 12/8 = mesure ternaire à quatre temps, etc.

Exemples :
M:12/8

On peut aussi définir une mesure complexe, par exemple M:(2+3+2)/8 ce qui permet de définir quels temps doivent être accentués ; les parenthèses sont facultatives.

Champ m: macro

Le champ m: contient une macro ABC. L'usage premier des macros ABC est des définir la façon dont les symboles d'ornementations (~ par exemple) doivent être interprétés.
A terme, les macros pourront néanmoins être utilisées pour bien d'autres choses, restant à définir.

Placé En-tête de morceau (niveau local) et en-tête de fichier (niveau global).

Une macro stockée dans un en-tête de morceau n'est utilisable que dans le morceau concerné, mais les macros stockées dans l'en-tête du fichier ABC forment une librairie disponible pour tous les morceaux du fichier.

La macro d'un champ m: remplace la macro du champ m: précédent uniquement si la macro concerne la même cible.

Les logiciels capables d'interpréter ces macros devront tout d'abord exécuter les macros puis seulement ensuite traiter les champ U: (redéfinitions de symboles).
Il existe deux sortes de macros ABC : les macros statiques et les macros transposables.

Macros statiques : Une macro statique est défini ainsi dans l'en-tête du morceau (exemple) :
m: ~G3 = G{A}G{F}G
<identifiant de champ : m:> <chaîne cible > = <chaîne de remplacement >

Quand le morceau est joué, le logiciel applicatif remplace chaque occurrence de ~G3 (chaîne cible) par G{A}G{F}G (chaîne de remplacement) et c'est cette séquence qui sera réellement joué ou affichée/imprimée.

Chaîne cible : 31 caractères maxi, ne peut inclure la lettre "n". Les espaces intercalaires sont autorisés mais les espaces de têtes et de queue ne sont pas pris en compte.
Chaîne de remplacement : 200 caractères maxi, espaces autorisés. La séquence doit valoir le même intervalle de temps que la chaîne cible.
Les altérations sont autorisées. Les espaces intercalaires sont autorisés mais les espaces de têtes et de queue sont supprimés.

Le nombre de macros statiques dans l'en-tête d'un morceau est illimité. Une macro statique ne concernant qu'un type précis de note (hauteur, octave, longueur), il faut donc autant de macros que de types de notes à modifier.

Macros transposables : Si le morceau contient un grand nombre de types de notes ornementées de façon similaire, il est plus simple de définir une macro transposable.
La syntaxe d'une macro transposable est identique à une macro statique excepté que la valeur de note est remplacée par "n" dans la chaîne cible et que les valeurs de notes dans la chaîne de remplacement sont remplacées par les lettres "h" à "z", qui seront interprétées en fonction de leur position alphabétique relative à "n".

Exemple :
m: ~n3 = n{o}n{m}n.

Cette macro transposable est identique à la macro statique précédente sauf qu'elle ne concerne plus seulement la note G3 mais toutes les notes de longueur 3 et ornementées d'un tilde.
Dans la chaîne cible, la longueur de note doit être explicite : ~n1 et non ~n.
Dans la chaîne de remplacement, les altérations sont interdites (car impossibles à transposer de manière fiable).

Attention aux macros de niveau global dans l'en-tête de fichier dans les fichiers distribués, car l'utilisateur peut extraire un morceau d'un fichier sans prendre conscience de la présence de macros globales.


Champ P:
Parties

Dans l'en-tête de morceau : le champ P: indique l'ordre dans lequel les diverses parties du morceau doivent être jouées.
Dans le corps de morceau : un champ P: identifie chaque partie du morceau.
L
a nature du champ P: est donc bien différente suivant son emplacement. Dans le corps de morceau c'est un identifiant alors que dans l'en-tête c'est une directive.

Dans l'en-tête de morceau : la valeur d'un champ P: remplace la valeur du champ P: précédent.
Dans le corps de morceau : la valeur d'un champ P: remplace la valeur du champ P: précédent ET cette valeur DOIT être unique, comme pour tout identifiant, c.à.d. que le nombre de champs P: est illimité dans un corps de morceau mais que chacune des valeurs de ce champ doit différer des autres.

Dans l'en-tête de morceau : la valeur du champ P: correspond à l'ordre dans lequel les diverses parties du morceau doivent être jouées.
Par exemple : P:ABABCDCD

Dans le corps de morceau : la valeur du champ P: identifie chaque partie du morceau.
Par exemple : P:A ; P:B ; etc.

Bien que la norme ne le précise pas explicitement, l'identifiant ne peut consister qu'en un unique caractère alphabétique, et il semble prudent de considérer que la casse est non signifiante (minuscules et majuscules sont équivalentes). La conséquence est que bien que théoriquement illimité, le nombre de parties possibles dans un morceau est en pratique limité à 26...

Dans un champ d'en-tête, une séquence (c.à.d. une suite de parties) peut être répétée un nombre déterminé de fois en usant de parenthèses et d'un multiplicateur. Les parenthèses peuvent être omises si la partie est unique.
Par exemple :
P:(A)3 ou P:A3 sont équivalent à P:AAA
P:(AB)3 est équivalent à P:ABABAB

Les parenthèses imbriquées sont autorisées. Des points peuvent être ajoutés à volonté n'importe où dans la formule, ils sont ignorés et ne servent qu'à accroître la lisibilité.
Par exemple :
P:((AB)3.(CD)3)2

Champ Q: tempo

Le champ Q: indique le tempo du morceau sous la forme du nombre de notes par minute.
La valeur d'un champ Q: remplace la valeur du champ Q: précédent.

Le tempo désigne le nombre de "notes" par minute mais la valeur (noire, croche, etc.) de cette "note" peut être implicite ou explicite.
La valeur implicite est la longueur de note par défaut. Celle-ci est déterminée par le champ L: (cf.) ou déduite du champ M: (cf.).
Par exemple, si la longueur de note par défaut est 1/8 (la croche) Q:120 ou Q:C=120 indique 120 croches par minute.

On peut aussi, et c'est préférable, imposer une valeur absolue du tempo, par exemple Q:1/8=120 indique 120 croches par minute, indépendamment de la longueur de note par défaut.

Le tempo peut être aussi défini en unité de battement. Par exemple, Q:1/2 signifie qu'une blanche vaut un battement.

La lettre L remplace la lettre C, par exemple Q:C=120 est à remplacer par Q:L=120 mais l'ancienne syntaxe reste correcte.

Une indication textuelle peut accompagner la valeur de tempo (indifféremment avant ou après celle-ci. Ce texte est une chaîne ABC (cf.).
Un champ Q: ne comportant qu'une chaîne textuelle, sans autre valeur associée, est valide.

Exemples :
Q:"Allegro" 1/4=120
Q:3/8=50 "Lentement"
Q:"Andante"

Les syntaxes auparavant admises du style Q:120 et Q:C=120 sont dépréciées et à éviter.

Champ R: Rythme


Donnée de documentation du morceau..
Le champ R: indique la classification rythmique du morceau.
Ce champ ne modifie donc en rien le rythme du morceau.

Dans l'en-tête, les champs R: sont cumulatifs.
Dans le corps de morceau, chaque champ R: remplace le précédent.
:

Exemples :
R: reel
R: valse
R: Dañs plinn, tamm kreiz

Il est souhaitable d'utiliser des appellations (ou abréviations) le plus possible standardisées dans un cadre d'utilisation donné afin que ce champ serve à quelque chose pour l'indexation.

Champ V: Voix

Le champ V: permet l'écriture de partitions à voix multiples (polyphoniques).

Un peu de théorie. Il peut y avoir une ou plusieurs lignes de musiques sur une portée, c’est-à-dire une ou plusieurs voix.
Les voix appartiennent à un ou plusieurs instruments, qui ont soit une seule voix (instruments àvent) ou plusieurs voix (piano, orgue).
Un groupe de portées qui dirigent des instruments qui jouent ensemble dans le morceau s’appelle un système.

Un morceau polyphonique est divisé en plusieurs sections d'exécution parallèle, chacune débutant par un champ V:
Une voix individuelle est constituée par les notes comprises entre deux champs V: ou entre un champ V: et la fin du morceau.

Emplacement :
Dans l'en-tête de morceau, V: sert à définir les propriétés de la voix concernée. Ces propriétés peuvent aussi être définies ou modifiées dans le corps de morceau.
Dans le corps de morceau, V: identifie la voix concernée.

Multiple :
Dans l'en-tête : un champ de propriétés pour chaque voix (facultatif).
Dans le corps de morceau : un champ d'identification débute chaque voix.

"ID" étant l'identifiant de la voix, qui peut être un numéro ou une chaîne de caractères. Comme tout identifiant il doit identifier de manière unique chaque voix du morceau.
Si c'est une chaîne, seuls ses 20 premiers caractères sont signifiants.

Exemple (possibilité 1) :

X:1
T:Zocharti Loch
C:Louis Lewandowski (1821-1894)
M:C
Q:1/4=76
%%score (T1 T2) (B1 B2)
V:T1 clef=treble-8 name="Tenore I" snm="T.I"
V:T2 clef=treble-8 name="Tenore II" snm="T.II"
V:B1 middle=d clef=bass name="Basso I" snm="B.I"
V:B2 middle=d clef=bass name="Basso II" snm="B.II"
K:Gm
% fin de l'en-tête, début du corps de morceau:
% 1
[V:T1] (B2c2 d2g2) | f6e2 | (d2c2 d2)e2 | d4 c2z2 |
[V:T2] (G2A2 B2e2) | d6c2 | (B2A2 B2)c2 | B4 A2z2 |
[V:B1] z8 | z2f2 g2a2 | b2z2 z2 e2 | f4 f2z2 |
[V:B2] x8 | x8 | x8 | x8 |
% 5
[V:T1] (B2c2 d2g2) | f8 | d3c (d2fe) | H d6 ||
[V:T2] z8 | z8 | B3A (B2c2) | H A6 ||
[V:B1] (d2f2 b2e'2) | d'8 | g3g g4 | H^f6 ||
[V:B2] x8 | z2B2 c2d2 | e3e (d2c2) | H d6 ||

Une telle présentation se rapproche de la musique imprimée et permet l'alignement vertical des notes des différentes voix, de telle manière que les accords puissent être lus directement dans le code ABC.

Exemple (possibilité 2) :

X:2
T:Zocharti Loch
% (...) suite de l'en-tête, idem à exemple 1 (...)
K:Gm
% Début du corps de morceau :
V:T1
(B2c2 d2g2) | f6e2 | (d2c2 d2)e2 | d4 c2z2 | (B2c2 d2g2) | f8 | d3c (d2fe) | H d6 ||
V:T2
(G2A2 B2e2) | d6c2 | (B2A2 B2)c2 | B4 A2z2 | z8 | z8 | B3A (B2c2) | H A6 ||
V:B1
z8 | z2f2 g2a2 | b2z2 z2 e2 | f4 f2z2 | (d2f2 b2e'2) | d'8 | g3g g4 | H^f6 ||
V:B2
x8 | x8 | x8 | x8 | x8 | z2B2 c2d2 | e3e (d2c2) | H d6 ||

Dans cet exemple, chaque champ V: n'apparaît qu'une fois et est suivi de l'ensemble de la partition de la voix concernée. Le résultat en sortie sera exactement le même mais la variante (1) est beaucoup plus lisible et est donc recommandée.

Affichage L'identifiant de voix ne devra pas être inscrit sur la partition, c'est simplement un code interne permettant de relier une ligne de musique à telle ou telle voix.
A noter que le regroupement des portées des voix à l'affichage/impression n'est pas déterminé par le champ V: mais par la directive de feuille de style %%score

L'opérateur "&" permet de regrouper temporairement plusieurs voix dans une même mesure. Exemple :

A2 | c d e f g a &\
A A A A A A &\
F E D C B, A, |]

De même, l'opérateur "&" permet de d'indiquer des paroles (champ w:) ou des lignes de symboles (champ s:) distinctes pour chacune des voix superposées. Exemple :

g4 f4 | e6 e2 &\
(d8 | c6) c2
w: la-la-| la-lère &\
pom- | -pom

Propriétés : name= ou (syntaxe abrégée) nm=
Nom principal de la voix. Ce nom est à imprimer à gauche de la première portée uniquement. "\n" ajoute un saut de ligne dans le nom de voix.

subname= ou (syntaxe abrégée) snm=

Nom secondaire de la voix.
Ce nom secondaire est imprimé à gauche de toutes les portées sauf la première.

stem=up|down
Force la direction des hampes des notes (up : vers le haut | down : vers le bas)

clef= (spécifications de clé)
Voir les notes à propos du champ K: pour les modalités de spécification d'une clé.

Pour éviter toute ambiguïté, il est préférable de répéter les champs inclus spécifiant des propriétés de la ligne de musique dans chaque voix. Exemple :

...
P:C
[V:1] C4|[M:3/4]CEG|Gce|
[V:2] E4|[M:3/4]G3 |E3 |
P:D
...

Pour assigner un instrument MIDI à une voix précise, il faut utiliser la directive de feuille de style %%MIDI

Position des voix : %%staves

Un morceau polyphonique est joué par plusieurs instruments, qui ont chacun une ou deux portées associées.
Chaque porée peut accueillir une ou plusieurs voix.
Pour indiquer la façon dont les voix et les instruments s’organisent sur la partition, on utilise la commande %%staves.

La commande %%staves est suivie par le nom des voix, qui peuvent être encadrées par des délimiteurs : [], {}, et ().
Tout comme les autres commandes de l’en-tête, %%staves doit apparaître avant K:.
Les voix utilisées dans le corps du morceau et qui n’étaient pas d´eclarées dans l’en-tête seront ignorées.

La commande %%staves commence par un % , donc elle aurait dû-être ignorée comme un commentaire.
Ce n’est pas le cas ; les lignes qui commencent par %% sont appelées m´eta-commentaires. Elles sont définies ainsi pour des raisons de compatibilité : les applications qui ne supportent pas certaines fonctions avancées peuvent lire le même fichier en ignorant simplement ces métacommentaires.
Les d´elimiteurs suivent les règles suivantes :
– quand les voix ne sont encadrées par aucun délimiteur, elles seront simplement imprimées sur des portées différentes. La voix la plus haute dans le système est la première voix de la liste. Par exemple :
%%staves SATB
– quand deux voix ou plus sont encadrées par des crochets, leurs portées seront reliées par un crochet épais. Cette disposition est souvent utilisée pour la partie chorale d’un système. Par exemple :
%%staves [SATB]
– quand deux voix ou plus sont encadrées par des accolades, leurs portées seront reliées par une accolade.
Ceci est typique de la partie piano ou orgue d’un système : %%staves {MG MD}
– quand deux voix ou plus sont encadrées par des parenthèses, elles seront imprimées sur la même portée. Par exemple :
%%staves [(SA) (TB)]
– par défaut, les barres de mesures traversent toutes les portées.
Pour tracer les barres de mesures sur chaque portée utilisez le caract`ere | entre le nom des voix : %%staves [S|A|T|B]
Quand deux voix se partagent une portée, la hampe des notes est dirigée vers le haut pour la première voix, et vers le bas pour la seconde.

En général, il est préférable d’écrire les voix dans l’ordre ou elles apparaissent sur la partition finale.

Changement de système
Dans des morceaux d’une certaine complexité(disons, pour solo, choeur et orchestre), tous les instruments ne jouent pas en même temps.
Ecrire toutes les parties ne contenant que des silences serait une perte de temps et d’espace quand un seul instrument joue.
Le champ %%staves peut être modifié si nécessaire, en n’indiquant que les instruments qui jouent.
Voici en exemple ‘Riu riu chiu’, un villancico (chant de Noël) bien connu du 16`eme si`ecle.
Remarquez l’´etrange \241 dans le titre. C’est le code octal du caractère ¡ dans le jeu de caractères ISO 8859-1 (Latin1).

%%scale 0.68
%%barsperstaff 6
X: 1
T: Riu, riu, chiu, \241la guarda ribera!
C: Villancico (Espagne, XVIth century)
M: C|
L: 1/2
Q: 1/2 = 240
%%staves 3
V: 3 clef=treble-8 name="Tenor\nBasses"
K: Am
% HOMMES SEULS
[V: 3] [M:none] AAGA|F2ED2EFG|A2A2|
w: Ri-u, ri-u, chi-u, \241la guar-da ri-be-ra!
[V: 3] AAGA |F2EG2GEF|D2D2|
w: Di\’os guar-d\’o el lo-bo de nue-stra cor-de-ra,
[V: 3] AAGA |F2EG2GEF|D2D2|
w: Di\’os guar-d\’o el lo-bo de nue-stra cor-de-ra.
% CHANGEMENT DE SYSTEME : TOUS
%%staves [1 2 3 4]
V: 1 clef=treble name="S" sname="S"
V: 2 clef=treble name="A" sname="A"
V: 3 clef=treble-8 name="T" sname="T"
V: 4 clef=bass name="B" sname="B"
[V: 1]AAGA|F2ED2EFG |A2A2z2|
w: Ri-u, ri-u, chi-u, la guar-da ri-be-ra!
[V: 2]FFEC|D2EF2EDD |C2C2z2|
[V: 3]cccG|A2AA2ADD |E2E2z2|
w: Ri-u, ri-u, chi-u, la guar-da ri-be-ra!
[V: 4]ffcf|d2Ad2c_BB|A2A2z2|
%
[V: 1] z4 |AAGA|F2EF2FEE|D2D2z2|
w: Di\’os guar-d\’o el lo-bo de nue-stra cor-de-ra,
[V: 2] z2EE |DCEC|D2CD2DCC|D2D2z2|
w: Di\’os guar-d\’o el lob’, el lo-bo de nue-stra cor-de-ra,
[V: 3] ccBc |A2BA|A2AA2AAA|A2A2z2|
w: Di\’os guar-d\’o el lo-bo, el lo-bo de nue-stra cor-de-ra,
[V: 4] aaga |f2ef|d2Ad2dAA|d2d2z2|
%
[V: 1] z4 |AAGA|F2ED2DCC |D2D2 |
w: Di\’os guar-d\’o el lo-bo de nue-stra cor-de-ra.
[V: 2] z2EE|DCEC|D2CA,2A,A,A,|A,2A,2|
w: Di\’os guar-d\’o el lob’, el lo-bo de nue-stra cor-de-ra.
[V: 3] ccBc|A2BA|A2AF2FEE |D2D2 |
w: Di\’os guar-d\’o el lo-bo, el lo-bo de nue-
[V: 4] aaga|f2ef|d2Ad2dAA |d2d2 |
% CHANGEMENT DE SYSTEME : HOMMES SEULS
%%staves 3
[V: 3] AAGA|F2EG2GEF|D4|AAGA|
w: El lo-bo ra-bio-so la qui-so mor-der, Mas Di\’os po-de-
[V: 3] F2FEGGEF|D4|AAGA|F2FEDEFG|
w: ro-so la su-po de-fen-der; qui so-le ha-ce que no pu-die-sce pe-
[V: 3] A4|AAGA|F2FEGGEF|D2D2|
w: car: ni˜aun o-ri-gi-nal e-sta Vir-gen no tu-vie-ra.

Une autre m´ethode serait de découper ce morceau en trois airs séparés, avec chacun son système. L’inconvénient dans ce cas est que la conversion en MIDI produit trois fichiers séparés au lieu d’un seul.

Champ W:
Place les paroles sous la musique .
Les champs W: sont cumulatifs.

Les paroles peuvent être ajoutées à la fin du morceau, ou bien alignées avec les notes sous la portée.
Dans le premier cas, il faut ajouter à la fin du morceau des lignes qui commencent par le champ W: (majuscule), suivi par les paroles.

Les paroles alignées avec la musique sont bien sûr plus complexes à écrire.
Juste après une ligne de musique, il faut ´ecrire une ou plusieurs lignes qui commencent par le champs w: (minuscule) suivi par les paroles découpées en syllabes.

X:1 %Music
T:A BORDEU QUE I A NAU DAMAS %Tune name
C: Traditionnel
N:RONDEAU %Tune infos
Q:1/4=120 %Tempo
V:1 %
M:2/4 %Meter
L:1/16 %
K:C
c2e2 c2e2 |d2B2 c2c2 |ccce c2de |d2B2 c2c2 ::
W:A Bor-deu que i'a nau da-mas, po-mas-ar-ra-sims, hi-gas e cas-ta-nhas,
W:A Bor-deu que i'a nau da-mas, po-mas-ar-ra-sims, hi-gas e cas-ta-nhas,
c2d2 e2e2 |g2f2 d4 |fede c2Bc |[1d2f2 e4 :|[2
W:Tan bien dan-sen au vio-lon, po-mas ar-ra-sims hi-gas e ma-rons
W:Tan bien dan-sen au vio-lon, po-mas ar-ra-sims, hi-gas ***
d2B2 c4 |
W:e ma-rons.
V:2 %
M:2/4 %Meter
L:1/16 %
K:C
G2 G2 GG GG |G2G2 GGGG |G2G2 GGGG |G2G2 GGGG ::
G2G2 GGGG |G2G2 GGGG |G2G2 GGGG |[1G2G2 GGGG :|[2G2 G2 G4 |
%End of file

Champ w:
Place les paroles sous la portée
concernée. Exemple avec le même air :

Voici les règles d’alignement :

– le caractère - (moins) sépare les syllabes d’un mot. S’il est séparé de la syllabe précédente par un espace, une note est sautée. (n) caractères - après une syllabe sautent autant de notes. Les espaces après le - n’ont pas d'effet, et peuvent être utilisés pour une meilleure lisibilité.
– | passe `a la mesure suivante.
– _(souligné) la syllabe précédente est chantée une note de plus, et une ligne horizontale est tracée.
– * saute une note.
– ˜ (tilde) joint deux syllabes sous une même note.
– \- insère un caractère - .
– \ caractère de continuation : la ligne w: suivante continue la même ligne de paroles.

X:1 %Music
T:A BORDEU QUE I A NAU DAMAS %Tune name
C: Traditionnel
N:RONDEAU %Tune infos
Q:1/4=120 %Tempo
V:1 %
M:2/4 %Meter
L:1/16 %
K:C
c2e2 c2e2 |d2B2 c2c2 |ccce c2de |d2B2 c2c2 ::
w:A Bor-deu que i'a nau da-mas, po-mas-ar-ra-sims, hi-gas e cas-ta-nhas,
w:A Bor-deu que i'a nau da-mas, po-mas-ar-ra-sims, hi-gas e cas-ta-nhas,
c2d2 e2e2 |g2f2 d4 |fede c2Bc |[1d2f2 e4 :|[2
w:Tan bien dan-sen au vio-lon, po-mas ar-ra-sims hi-gas e ma-rons
w:Tan bien dan-sen au vio-lon, po-mas ar-ra-sims, hi-gas ***
d2B2 c4 |
w:e ma-rons.
V:2 %
M:2/4 %Meter
L:1/16 %
K:C
G2 G2 GG GG |G2G2 GGGG |G2G2 GGGG |G2G2 GGGG ::
G2G2 GGGG |G2G2 GGGG |G2G2 GGGG |[1G2G2 GGGG :|[2G2 G2 G4 |
%End of file

Champ X: numéro de référence
Le champ X: contient l'identifiant du morceau dans le cadre du fichier, c.à.d. un code de référence qui doit être UNIQUE pour chaque morceau dans un fichier donné.

Le champ X: sert aussi de repérage d'un début de morceau lors de la lecture d'un fichier par l'ordinateur
(en théorie, une ligne vide doit séparer chaque morceau et un morceau ne doit pas contenir de lignes vides, en théorie... )

Ce champ doit être le premier champ de l'en-tête du morceau, car il indique le début du morceau.
Ce champ doit être unique pour chaque morceau (identifiant du morceau).

Le champ X: est obligatoire, sauf si le fichier ne contient qu'un morceau, dans ce cas un champ X:1 est supposé présent implicitement.

Bien que cela ne soit pas obligatoire, ce champ ne devrait contenir que des nombres entiers (1,2,3,...), chaque nombre étant unique pour un fichier donné.

La notation

Dans une partition ABC, les notes sont représentées par leur désignation alphabétique dans le système anglo-saxon, c.à.d. de A à G avec
la = A.

do = C
ré = D
mi = E
fa = F
sol = G
la = A
si = B

On s'habitue très vite à la notation anglo-saxonne, qui est en fait bien plus commode que le système traditionnel de désignation.

Hauteur des notes

La hauteur des notes (donc leur place sur la portée) est représentée en ABC par une convention d'écriture mélangeant majuscules et minuscules, virgule et apostrophe (plus exactement le guillemet simple anglo-saxon qui remplace usuellement l'apostrophe au clavier).

Les notes de la moitié inférieure de la portée sont en majuscules, les notes de la moitié supérieures de la portée sont en minuscules.
La virgule abaisse la note d'une octave sur la portée, l'apostrophe l'élève d'une octave.

Le codage ABC standard couvre 19 notes soit un peu plus de deux octaves :... mais par extension les notes C, D, E, F, et e' f' g' a' b' sont disponibles.

d'
do --- c' ---
si b
la --- a ---
sol g
fa ----------------------------- f -----------------------
mi e
ré ------------------------- d ---------------------------
do c
si --------------------- B -------------------------------
la A
sol ----------------- G -----------------------------------
fa F
mi ------------- E ---------------------------------------
D
do --- C ---
si B,
la --- A, ---
sol G, 

Ce code ne détermine que la hauteur des notes. Pour leur variation en durée, voir la section concernée.

Altérations
       ^                             = dièse
       _ (caractère de soulignement) = bémol
       =                             = bécarre

ATTENTION, ces symboles sont à utiliser DEVANT la note concernée (comme sur une portée traditionnelle).

Exemples :

       ^C 	(do dièse)
       _B 	(si bémol)

Ces symboles peuvent si nécessaire être doublés : ^^ et __

Valeurs de durée des notes

Petit rappel de solfège classique :

Chaque durée de note a un rapport de 1 à 2 avec ses voisines :
1 ronde = 2 blanches = 4 noires = 8 croches = 16 doubles-croches
1 blanche = 2 noires = 4 croches = 8 doubles-croches
1 noire = 2 croches = 4 doubles-croches
1 croche = 2 doubles-croches

Une note pointée est allongée de la moitié de sa valeur :
1 blanche pointée = 3 noires = 6 croches = 12 doubles-croches
1 noire pointée = 3 croches = 6 doubles-croches

La longueur de note peut être notée de façon fractionnaire (par rapport à la ronde qui par convention vaut 1 ) :
blanche = 1/2
noire = 1/4
croche = 1/8
double-croche = 1/16

A propos de la valeur de durée par défaut
Un principe fondamental : dans une ligne de musique ABC, la durée des notes n'est pas indiquée de manière absolue mais de manière relative à la valeur de durée par défaut.

Qu'est-ce que la valeur de durée par défaut ? En notation ABC, dans la ligne de musique, il n'existe pas de noires, de croches etc.
Seule la longueur de note par défaut peut être définie (explicitement par le champ L: ou automatiquement à partir le la mesure indiquée par le champ M: ) comme étant une noire, une croche, une double croche, etc.
Dans la ligne de musique, la longueur de chaque note ABC (une lettre de A à G ou de a à g) n'est donc qu'une fraction ou un multiple de cette valeur par défaut : chaque note dure la valeur par défaut ou deux fois cette valeur ou la moitié de celle-ci, etc. La nuance est importante.

Dans une ligne de musique ABC, chaque note (une lettre) représente donc une note ayant cette durée par défaut, sauf indication particulière ajoutée à la note pour modifier sa durée (toujours de façon relative à la valeur par défaut).

Si on change la valeur de durée par défaut, les durées de toutes les notes de la partition changent mais leurs longueurs relatives sont respectées (si les noires deviennent des blanches, alors les croches deviennent des noires et ainsi de suite).

Comment connaître ou déterminer cette valeur par défaut ?

Valeur par défaut automatique
Le champ de la mesure M: définit automatiquement la longueur de note par défaut.
Celle-ci est déduite en transformant la mesure en valeur décimale ; si le résultat est inférieur à 0,75 la valeur par défaut sera une double-croche, sinon ce sera une croche.

Exemples :
M:2/4 = 0,5 donc la valeur de note par défaut est la double-croche.
M:4/4 = 1 donc la valeur par défaut est la croche.
M:6/8 = 0,75 donc la valeur par défaut est la croche.
M:3/4 = 0,75 donc la valeur par défaut est la croche.

Les mesures C (4/4) et C barré (2/2) et M:none [ABC 1.7.6] ont la croche comme valeur par défaut.

A noter qu'un changement de mesure en cours de morceau ne change pas la durée de note par défaut.

Valeur par défaut imposée

Une valeur par défaut de longueur de note peut être fixée de manière explicite par le champ L: (cf.). Par exemple, L:1/8 impose la croche comme valeur par défaut, quelle que soit la mesure associée.

Il est toujours préférable de fixer explicitement la valeur de durée par défaut, même quand celle-ci est identique à la valeur implicite (calculée automatiquement).


Notes de longueur différente de la valeur par défaut
Elles s'obtiennent de manière relative à la valeur de durée de note par défaut (déduite automatiquement de la mesure ou fixée par le champ L:).

Les notes plus longues que la valeur par défaut sont obtenues en écrivant un multiplicateur après la lettre indiquant la note.
Donc dans une mesure en 2/4, A ou A1 est un la en double-croche, A2 une croche, A4 une noire, A6 une noire pointée, A8 une blanche, A12 une blanche pointée etc... alors que pour une mesure 3/4, A est une croche, A2 une noire, A3 une noire pointée, A4 une blanche etc...

Les notes plus courtes que la valeur par défaut sont obtenues en écrivant un diviseur, par exemple en mesure 3/4, A est une croche et A/2 est une double-croche, A/4 une triple-croche etc... A noter que A/ est un raccourci d'écriture pour A/2.

Pour obtenir certaines variations de durée telles que noire pointée+double croche ou équivalent, il est plus simple d'utiliser les caractères de rythme irréguliers < et >
X: 1
L: 1/4
K: C
C3D|E3/2 F//G// A B| c3/2 B//A// G>F|E D C z|


Quand une note est pointée et que la suivante est deux fois plus courte ou vice versa, on parle de rythme brisé. Il s’obtient en utilisant les caractères > ou < entre deux notes.
Quand on utilise > , la première note est pointée (c’est-à-dire que sa durée est augmentée de moitié) et la note suivante est deux fois plus courte.
C’est l’opposé avec < . Pour indiquer une note suivie par deux points ou plus, on peut utiliser >> , >>> et ainsi de suite.
Exemple
X: 1
L: 1/4
K: C
CEGc|C > E G >> c|C < E G < c|C/>E/ C/ > E/ C/<E/ C/ < E/|

Nb : le multiplicateur 0 (zéro) est utilisable avec certains logiciels pour afficher/imprimer une note sans hampe (dont la durée est égale à la durée par défaut), mais cette possibilité est une extension qui ne fait pas partie de la norme ABC et est donc à utiliser avec prudence.

Remarque :
Du fait de ce système fractionnaire relatif on peut écrire en notation ABC des notes dont la longueur n'est pas prise en compte par la notation classique du solfège (par ex. des tiers de noires, etc.). Ces valeurs sont correctes en ABC mais elles sont à éviter puisqu'elles ne peuvent être affichées/imprimées sur une portée traditionnelle.


Rythmes irréguliers

On utilise fréquemment dans la musique traditionnelle des notes pointées ou des rythmes irréguliers.
Pour noter cela en ABC, on utilise le signe > qui signifie "la note précédente est pointée et la suivante est divisée par deux", et à l'inverse le signe < pour dire "la note précédente est divisée par deux et la suivante est pointée".
Les groupes de lignes suivantes sont donc identiques : (la troisième version est recommandée)

L:1/16
a3b cd3 a2b2c2d2

L:1/8
a3/2b/2 c/2d3/2 abcd

L:1/8
a>b c<d abcd

De même, >> signifie que la note précédente est doublement pointée et la suivante divisée par quatre, et >>> que la précédente est triplement pointée et la suivante divisée par huit. Même raisonnement pour les signes << et <<<

Remarque :
Ces symboles < et > ne sont que des simplifications d'écriture, à n'utiliser qu'entre deux notes de même durée au départ, sinon le résultat risque d'être au mieux variable suivant les logiciels utilisés et au pire totalement aléatoire...


Silences

Les silences ou repos sont notés par z (lettre minuscule) et peuvent varier en durée de la même manière que les notes.
Les silences peuvent aussi être notés par x (minuscule). La différence entre z et x est que z entraîne l'affichage/impression d'un symbole de silence sur la portée alors que x reste invisible, rien n'est affiché/imprimé.

Z (majuscule) représente une pause d'une mesure. Des silences s'étalant sur plusieurs mesures sont codés par Zn ou n représente le nombre de mesures concernées par la pause.

Exemple :
Z4|CD EF|GA Bc est équivalent de z4|z4|z4|z4|CD EF|GA Bc

Duolets, triolets, quartolets etc... (n-olets)

Syntaxe compacte :Ceux-ci sont notés (2ab pour un duolet, (3abc pour un triolet, (4abcd pour un quartolet et ainsi de suite jusqu'à (9....

La signification musicale en est :
(2 = 2 notes pour la durée de 3
(3 = 3 notes pour la durée de 2
(4 = 4 notes pour la durée de 3
(5 = 5 notes pour la durée de n
(6 = 6 notes pour la durée de 2
(7 = 7 notes pour la durée de n
(8 = 8 notes pour la durée de 3
(9 = 9 notes pour la durée de n

Pour les mesures composées (6/8, 9/8, 12/8) n vaut 3, pour les autres mesures n vaut 2.

Syntaxe générale :
La syntaxe générale d'un p-olet est (p:q:r ce qui signifie "utiliser p notes dans le temps de q notes pour les r prochaines notes".
Si q est omis, q vaut la valeur indiquée dans la syntaxe compacte. Si r est omis, sa valeur est celle de p.
Par exemple, (3:2:2 est équivalent à (3::2 , tandis que (3:2:3 est équivalent à (3:2 , (3 et (3::

Cette syntaxe est utile pour inclure des notes de différentes longueurs dans le p-olet.

Exemples :
(3:2:2 G4c2
(3:2:4 G2A2Bc

Le nombre inscrit au-dessus du p-olet est p.


Barres de mesure et de reprise

Les barres de mesure sont générées par les groupes de caractères suivants :

| = barre de mesure

|] = double barre fine+épaisse

|| = double barre fine

[| = double barre épaisse+fine

:| = fin de reprise

|: = début de reprise

:: = fin et début de reprise (raccourci pour :|: ou :||: )

Si une fin de reprise est rencontrée alors qu'il n'y avait pas de début de reprise d'indiqué, la reprise s'effectue soit à la première double barre en amont soit au début du morceau s'il n'y a aucune double barre en amont.

|:: et ::| délimitent une section à répéter 3 fois, et ainsi de suite.

.|. représente une barre pointée.

[|] représente une barre de mesure invisible.

Première et seconde reprise

La première et la seconde reprises sont indiquées par les symboles [1 et [2, Exemple :
faf gfe|[1 dfe dBA:|[2 d2e dcB|]

Si la reprise est adjacente d'une barre de mesure (cas habituel) ,l'écriture peut être simplifié en |1 et :|2 sans espace entre la barre de mesure et le 1 ou le 2. Attention, |[1 et | [1 sont corrects, |1 est correct mais | 1 ne l'est pas.

Un morceau ABC contenant des reprises différentes se présentera donc ainsi :
|: <partie commune du morceau> |1 <première fin> :|2 <deuxième fin> ||

Variantes multiples de fin

En combinaison avec le champ P: (cf.), il est possible d'indiquer plus de deux variantes de fin pour une section qui est à répéter plus de deux fois.
L'exemple explique la procédure :
Dans l'en-tête du morceau :
P:A4.B4 c.à.d "répéter 4 fois la partie A puis 4 fois la partie B."

Dans le corps de morceau :
P:A
... | [1 ... || [2 ... || [3 ... || [4 ... ||

Cette partie A sera répétée 4 fois avec chaque fois une partie différente (1 puis 2 puis 3 puis 4)
La n-ième fin commence à [n et se termine au ||, :|, |] ou [| qui suit.

Une partie peut être répétée plusieurs fois en lui affectant plusieurs numéros :
[1,3 ... || Cette partie sera utilisée au premier passage puis au troisième.
[1-3 ... || Cette partie sera utilisée du premier au troisième passage

La liste de numéros peut être longue et complexe tant qu'elle ne contient aucun espace :
[1,3,5-7 ... ||
[2,4,8 ... ||

Changement de tonalité, de mesure ou de longueur de note par défaut

Pour changer de tonalité, de mesure ou de longueur de note par défaut au cours d'un morceau, il suffit d'écrire sur une nouvelle ligne un champ K: (tonalité), M: (mesure), ou bien L: (longueur de note par défaut). Par exemple :

ed|cecA B2ed|cAcA E2ed|cecA B2ed|c2A2 A2:|
K:G
AB|cdec BcdB|ABAF GFE2|cdec BcdB|c2A2 A2:|

Attention, un changement de mesure en cours de morceau ne modifie pas la longueur de note par défaut si un champ L: n'est pas explicitement ajouté.

On peut également effectuer un changement de clé en cours de morceau. Un changement de clé sans changement de tonalité est indiqué par un champ K: sans indication de tonalité, par exemple : K:tenor.

Pour éviter que l'indication du changement de mesure ou autre ne génère une nouvelle ligne de musique, il faut ajouter le symbole \ à la fin de la ligne précédente. Par exemple :

E2E EFE|E2E EFG|\
M:9/8
A2G F2E D2|]

Ces changements peuvent aussi être intégrés à la ligne de musique en utilisant des crochets (on parle alors de champ inclus).

Par exemple :
E2E EFE|E2E EFG|[M:9/8] A2G F2E D2|]

Attention ! :
- Dans un champ inclus, le premier crochet, la lettre de champ et le double point doivent être contigus, sans espace.
- Un seul champ peut être placé entre les crochets, mais on peut faire suivre plusieurs ensembles de crochets contenant chacun un champ.
- Un champ inclus contenant une modification peut être placée au milieu d'une mesure sans briser celle-ci.

Les champs inclus c'est-à-dire intégrés à la ligne (entre crochets) doivent être préférés aux champs placés sur des lignes séparées.

Liaisons de notes

Remarque : la syntaxe ABC différencie la liaison forte (fusion de notes identiques) et les simples coulés (legato), mais la distinction et l'interprétation graphique ou sonore de cette syntaxe par certains logiciels n'est pas toujours conforme.

Fusion de notes
Pour lier deux notes de hauteur identique qui seront jouées comme une note unique, on utilise le symbole - (trait d'union).
Soit entre deux mesures :
abc-|cba
Soit à l'intérieur d'une même mesure :
abc-cba

Legato et notes coulées
Les coulés, les groupes de notes à jouer legato, sont indiqués en mettant les notes concernées entre parenthèses ( ). Ainsi (DEFG) crée une liaison entre ces quatre notes.
Les notes entre parenthèses peuvent être espacées (D E F G) sauf la première qui doit suivre immédiatement l'ouverture de parenthèse et la dernière qui doit être suivie immédiatement par la fermeture de parenthèse. Ainsi (=b c'2) est correct mais ( =b c'2 ) ne l'est pas.
Les coulés peuvent utiliser des parenthèses imbriquées. Par exemple : (c (d e f) g a)

Les coulés peuvent se terminer sur une note commençant un autre coulé.
Par exemple : (c d e) et (e f g a) avec e représentant un temps commun s'écrit (c d (e) f g a) qui est à comprendre comme :
(c d e)
|
(e f g a)

Ornementations et symboles d'expression

Ornementations

Ecriture explicite. Les notes d'ornementation s'écrivent entre des accolades {}.
Les ornementations n'ayant pas de valeur de durée propre (elles font partie de la note à laquelle elles se rattachent), les expressions du genre {a2} ou {a>b} sont incorrectes.
Bien que sans valeur de durée propre, les ornementations peuvent néanmoins mentionner des durées relatives entre les diverses notes qui les composent.
Ceci est par exemple utile pour noter les cadences des complexes ornementations du piobaireachd à la cornemuse écossaise. Les expressions telles que {a2} {a>b} ou {ge4d} sont donc correctes, contrairement à ce que préconisait la norme 1.6.
Ecriture implicite
Une alternative simplifiée d'écriture des ornementations est d'utiliser le tilde ~ qui indique une ornementation autour d'une note, sans autre précision de nature.
Cependant, en contexte de musique traditionnelle, "ornementation" peut signifier des choses très différentes selon l'instrument et pour un même instrument...
De même, l'interprétation sonore qui est faite du tilde par les logiciels est arbitraire (le plus souvent quelque chose ressemblant au "roll" irlandais).
L'écriture explicite des ornementations est donc souvent préférable.

Les acciacatures (ornementations très brèves, marquées sur la partition par de petites notes barrées) sont indiquées par un slash après l'accolade ouvrante.
Exemple : {/g}C ou {/gagab}C.
Sans ce slash, les ornementations sont interprétées comme des appogiatures (ornementations plus longues et appuyés, marquées sur la partition par de petites notes non barrées).

Accentuations et symboles d'expression

Staccato
Le staccato, ou détaché, (marqué en notation musicale classique par un point au-dessous ou au-dessus des notes concernées) s'écrit en ABC par un point avant la note.
Par exemple un triolet staccato s'écrit (3.a.b.c

Coup d'archet
Pour les violonistes, les lettres u et v peuvent être utilisées pour indiquer la position haute (u pour up en anglais) ou basse de l'archet.
Par exemple : vAuBvA

Autres symboles

~ roll irlandais
T trille
H point d'orgue
L accent ou emphasis
M mordant bas
P mordant haut
S segno
O coda

Ces symboles, ainsi que u, v et ~, ne sont que des raccourcis par défaut pour les accents indiqués plus bas et sont redéfinissables (cf. Symboles redéfinissables).

Nb : la version 1.7.6. d'ABC introduit un nombre important de codes destinés à contrôler le placement de symboles d'expression, d'interprétation, lors de l'affichage/impression ainsi qu'une norme pour redéfinir certains symboles. La musique classique est friande de tous ces "machins" tentant de décrire en détail le jeu et l'interprétation, mais leur abus nuit à la lisibilité et l'excès de précision est souvent antinomique avec l'interprétation de la musique traditionnelle ! De plus, les logiciels actuels ne prennent que peu ou pas ces codes en compte ; pire, le risque est grand qu'au lieu de se contenter de les négliger, ce qui serait sans importance, certains tentent de les interpréter comme des suites de notes ! (!accent! peut être interprété comme acce par exemple, idem pour !fff! etc.).
Si les fichiers ABC sont destinés à être diffusés, il vaut donc mieux, pour le moment, s'abstenir d'utiliser ces codes...

Ces symboles s'utilisent avec la syntaxe générale !symbole! placé juste avant la note concernée, symbole étant le nom symbolique du motif d'expression/accentuation, encadré de points d'exclamation.
!trill! symbole de trille
!lowermordent! courte ligne brisée /|/|/ avec une barre verticale
!uppermordent! courte ligne brisée /|/|/
!mordent! identique à !lowermordent!
!pralltriller! identique à !uppermordent!
!accent! le symbole ">"
!emphasis! identique à !accent!
!fermata! point d'orgue
!invertedfermata! point d'orgue inversé
!tenuto! note tenue (courte ligne horizontale)
!0!-!5! symboles de doigtés
!+! symbole "+", pizzicato de main gauche ou équivalent
!wedge! petite marque en coin plein
!open! petit cercle au-dessus d'une note (corde libre ou harmonique)
!thumb! symbole du pouce pour le violoncelle
!snap! marque de snap-pizzicato mark, visuellement similaire à !thumb!
!turn! un S inversé souché
!roll! symbole de "roll" (arc) utilisé en musique irlandaise
!breath! marque de respiration (grosse apostrophe) après une note
!shortphrase! ligne verticale en partie supérieure de la portée
!mediumphrase! idem, étendue au milieu de la portée
!longphrase! idem, étendue au 3/4 de la portée
!segno! un S entouré de deux points et barré d'une diagonale
!coda! symbole coda (cercle avec une croix)
!D.S.! lettres D.S. (= Da Segno)
!D.C.! lettres D.C. (= Da Coda)
!fine! mot fine
!crescendo(! marque de début de crescendo
!crescendo)! marque de fin de crescendo
!diminuendo(! marque de début de diminuendo
!diminuendo)! marque de fin de diminuendo
!f! !ff! !fff! !ffff! marques de dynamique
!repeatbar! répéter la mesure (symbole %)
!repeatbar2! répéter les 2 mesures (symbole %2), idem pour 3 etc.
!upbow! symbole "V"
!downbow! un carré sans côté inférieur

La syntaxe !symbole! devient +symbole+, tous les codes précédents sont donc à modifier de cette manière, avec les apports suivants à la liste de la norme 1.7.6 :
+>+ idem à +accent+ (marque ">")
!+! à remplacer par +plus+
+dacoda+ le mot "Da" précédant le symbole Coda
+dacapo+ les mots "Da Capo"
+<(+ idem à +crescendo(+
+<)+ idem à +crescendo)+
+>(+ idem à +diminuendo(+
+>)+ idem à +diminuendo)+
+mp+ marque dynamique

et par extension :
+slide+ une apostrophe inversée avant la note
+turnx+ un S inversé couché et barré
+invertedturn+ un S couché
+invertedturnx+ un S couché barré
+arpeggio+ barre verticale ondulante
+trill(+ début de la marque de trille (ligne horizontale ondulante
+trill)+ fin de la marque de trille

Nb : les remarques faites plus haut sur la non prise en compte de ces codes par la plupart des logiciels restent valables et le problème est aggravé par ce changement de syntaxe (+ à la place de !) qui multiplie les éventualités à prendre en compte par les parseurs (analyseurs syntaxiques) des logiciels...

La norme 2.0 recommande la prise en compte par les logiciels de lecture sonore au moins des marques de dynamiques, de la marque d'accent et du point de staccato. Une échelle 0-127 est proposée pour l'interprétation des marques de dynamique :
+pppp+ = +ppp+ = 30 (pianisissimo)
+pp+ = 45 (pianissimo)
+p+ = 60 (piano)
+mp+ = 75 (mezzo piano)
+mf+ = 90 (mezzo forte) Volume par défaut
+f+ = 105 (forte)
+ff+ = 120 (fortissimo)
+fff+ = +ffff+ = 127 (forte fortissimo)

A noter que les noms de symbole ne peuvent contenir d'espaces ni les caractères [ ] | :

Symboles redéfinissables

Création :
Alternativement à la syntaxe !symbol!, les lettres H à Z, h à z et le symbole ~ peuvent être redéfinis à l'aide des champs U: et u:.

U: définit la façon dont le symbole est affiché/imprimé.
u: définit la façon dont le symbole doit être interprété musicalement.

La redéfinition des symboles évite l'alourdissement et la perte de lisibilité des lignes de musique ABC surchargées de symboles d'expression de type !xxxxx! en remplaçant ceux-ci par une simple lettre.
Exemples :
U: T = !trill! affecte le symbole de trille à la lettre T
U: X = "^+" affecte à X le symbole + qui sera inscrit au-dessus des notes précédées par X

Le même symbole peut être affecté à plusieurs lettres.
Exemples :
Cela peut sembler inutile, il n'en est rien. Cela permet une même interprétation graphique mais une interprétation sonore différente, cette dernière étant déterminée dans le champ u:, mais ce dernier champ reste un projet...

La syntaxe +symbole+ remplace !symbole!
Le champ u: (minuscule) passe implicitement aux oubliettes...

Supprimer des redéfinitions
Une redéfinition personnalisée peut être supprimée (réinitialisée) ainsi, en reprenant l'exemple de redéfinition de T :

U: T = !nil!
ou
U: T = !none!

Niveau des redéfinitions :
Deux possibilités :
-
Niveau global : redéfinition dans l'en-tête du fichier. La redéfinition s'applique alors à tous les morceaux du fichier. Certains logiciels manipulant l'ABC peuvent aussi établir des redéfinitions au niveau global.
-
Niveau local : redéfinition dans l'en-tête du morceau. La redéfinition s'applique alors uniquement au morceau et supplante une éventuelle redéfinition au niveau global.

Il faut être prudent avec les redéfinitions dans les en-têtes de fichiers distribués car un utilisateur est susceptible d'extraire ou de recopier manuellement un morceau sans prendre conscience de la présence d'un en-tête de fichier...

Liste des redéfinitions par défaut

Définitions standards tant que l'utilisateur ne les redéfinit pas lui-même :
U: ~ = !roll!
U: T = !trill!
U: H = !fermata!
U: L = !emphasis!
U: M = !lowermordent!
U: P = !uppermordent!
U: S = !segno!
U: O = !coda!
U: u = !upbow!
U: v = !downbow!

Accords et unissons

Il n'est question ici que des accords faisant partie intégrante de la ligne mélodique, les accords d'accompagnement ont leur propre syntaxe et sont traités à part.

Accords

Syntaxe générale :
En notation classique, les accords sont représentés sur une portée par plusieurs notes sur une hampe commune.
En notation ABC, les accords sont notés en entourant le groupe de notes par des crochets [ ].

Les notes d'un même accord doivent toutes avoir la même longueur.
Exemple : [CEGc] produit l'accord de do majeur.

Indication de durée :
Un accord est une unité syntaxique équivalente à une note ordinaire et qui admet donc les même préfixes et suffixes sauf les altérations.

Si des modificateurs de durée sont présents dans l'accord et à l'extérieur de celui-ci, ils se multiplient. Exemple : [C2E2G2]3 = [CEG]6

Regroupement :
Tous comme les notes isolées, les accords peuvent être groupés sous des barres communes à condition qu'il n'y ait pas d'espace entre eux.
Exemple : [d2f2][ce][df].

Unisson
Certains instruments permettent de jouer simultanément plusieurs notes de hauteur et de durée identique (par exemple une même note jouée sur deux cordes d'un violon).
Ceci est représenté classiquement par une note munie à la fois d'une hampe supérieure et inférieure ou par une seule hampe à deux notes alignées.
En notation ABC, l'unisson est noté comme un accord.

Exemple : [DD]
Accord ou Champ inclus ?

Cette syntaxe entre crochets est également utilisée pour les champ inclus. Un champ inclus est un champ informatif placé au milieu d'une ligne de musique. Un champ inclus permet de changer de tonalité, de mesure, de tempo, etc.).

Comment différencier accords et champs inclus ?
Pour la lecture humaine les différencier par leur contenu est immédiat et intuitif, mais les traitements informatiques n'ont guère d'intuition... C'est donc la présence du caractère ":" en deuxième position dans le texte du champ qui identifie de manière absolue un champ inclus et le différencie d'un accord.

Accords d'accompagnement

Les accords faisant partie intégrante de la ligne mélodique ont leur propre syntaxe et sont traités à part.

Syntaxe de base
Un accord d'accompagnement peut être lié à une note de la mélodie en le mettant entre guillemets doubles et en l'accolant à la gauche de la note.
Attention : les guillemets doubles doivent être des guillemets droits symétriques, de type anglo-saxon, "..." et non des guillemets de type français «...» ou autres...
Exemple : "Am7"A2D2

La façon dont les accords d'accompagnement sont affichés/imprimés sur la partition dépend du logiciel utilisé (soit au dessus soit au dessous de la portée).
Syntaxe étendue

La syntaxe complète d'un accord d'accompagnement (accord et/ou note de basse) est la suivante :
"<note><altération><type>/<basse>"
Nb : seul le paramètre <note> est obligatoire.

<note> :
Lettre de A à G

<altération> :
Valeur b (bémol) ou # (dièse).

<type> : une ou plusieurs des valeurs suivantes :
m ou min mineur
maj majeur
dim diminué
aug or + augmenté
sus soutenu
7, 9, etc. 7ème, 9ème, etc.

/<basse> : note de basse.
Le slash / est utilisé seulement si une note de basse est présente.
Si cette note de basse fait partie intégrante de l'accord, le slash indique l'inversion, c.à.d. la note de l'accord qui est la plus basse. Si cette note ne fait pas partie de l'accord, elle correspond à une note basse additionnelle à jouer avec l'accord.

Nb : la casse (majuscule/minuscule) utilisée pour noter la note de basse n'est pas prise en compte et ne modifie pas la hauteur de cette note.

Accords alternatifs

Les indications d'accords alternatifs ne concernent que l'impression des partitions et non leur interprétation sonore.
Ces accords sont placés entre parenthèses et inclus dans les guillemets.
Exemple : "G(Em)"

Ordre des symboles d'une note ABC

L'ordre standard des symboles pour une note de la ligne mélodique ABC est le suivant :

<notes d'ornementation><accord d'accompagnement><accentuation><altération><note><facteur de durée>

Exemples de notes (chaque ligne représente une note ABC unique, un groupe-note) :

~^c'3
"Gm7"v.=G,2

Les symboles de liaison de notes ? doivent suivrent immédiatement, sans espace, un groupe-note mais peuvent être suivis d'un espace. Exemple : =G,2-

Attention à bien inclure l'intégralité des composants de chaque note dans les crochets indiquant les accords de la mélodie, en en excluant les accords d'accompagnement.
Il en va de même pour les parenthèses de legato.
Exemples :

"C"[CEGc]
"Gm7"[.=G,^c']
"Gm7"(v.=G,2~^c'2)

Mesure et tempo

Le champ Q: peut indiquer le tempo sous la forme, par exemple, Q:1/2=120 qui signifie 120 blanches par minute.
Le tempo peut aussi être indiqué sans indication de vitesse (par exemple Q:3/8) ce qui sous-entend que la vitesse sera déterminée librement par l'interprète ou par le logiciel de lecture sonore.
L'unité de battement peut aussi être définie comme un multiple de la longueur de note par défaut en s'y référant par la lettre-clé L.

Exemple :
Ces deux formulations de tempo sont équivalentes :

Il est souvent préférable de définir le tempo de manière absolue car définir le tempo par rapport à la longueur de note par défaut peut entraîner des résultats inattendus quand celle-ci est modifiée (explicitement ou implicitement).

L'ancien standard ABC utilisait la lettre C (voir la notice du champ Q: ) au lieu de L, cet usage reste correct mais n'est plus recommandé.

Unité de battement par défaut :

Si le champ Q: est absent ou vide, l'unité de battement par défaut est le dénominateur de la mesure, hormis pour les mesures composées (c.à.d. tous les multiples de 3/8) pour lesquelles l'unité de battement par défaut est 3/8.

Exemples :

M:2/4 : unité de battement par défaut : 1/4

M:C| (= M:2/2) : 1/2

M:12/8 : 3/8

Il est toujours préférable de spécifier explicitement une unité de battement plutôt que de se contenter du comportement par défaut.

Commentaires dans le fichier

Tout ce qui suit le symbole % dans une ligne d'un fichier ABC est ignoré et considéré comme un commentaire.

Un commentaire peut soit occuper une ligne entière soit être placé en fin d'une ligne quelconque.

Exemples :
% Ceci est un commentaire
DE FG C2 EF % ceci est un autre commentaire

Lla syntaxe utilisant le champ r: (remarque) est une alternative à la syntaxe précédente. Son principal intérêt est de permettre d'écrire un commentaire à l'intérieur d'une ligne de musique (en plaçant le champ entre crochets, syntaxe dite du champ inclus).

Exemple :
r: ceci est un commentaire
DE FG [r: ceci est un commentaire inclus] C2 EF

Ecriture sur la portée

Ce qui suit ne concerne pas la notation ABC proprement dite mais la façon dont celle-ci sera transposée en notation classique (sur des portées) par les logiciels applicatifs.

Barres et hampes des notes

Regroupement de notes :
Pour grouper ensembles les notes sous une barre unique à l'affichage/impression de la portée, il faut les noter sans laisser d'espace dans la ligne ABC.
Ainsi, dans une mesure 2/4, A2BC donnera une croche suivie de deux doubles croches unies par une seule barre, alors que A2 B C donnera les mêmes notes écrites de manière séparée.
Si les notes ne peuvent pas être reliées par une barre commune (deux noires par exemple), il est sans importance de les accoler ou de laisser un espace, car elles resteront quoi qu'il en soit séparées à l'affichage/impression.

On peut souhaiter grouper certaines notes sur la portée mais en les espaçant dans la ligne ABC pour augmenter la lisibilité. Pour cela, on utilisera le caractère `.
Ce caractère d'espacement sera ignoré lors de l'interprétation par les logiciels de traitement qui traiteront donc la ligne de musique comme si ce caractère était absent de la ligne ABC.
Si votre clavier ne comporte pas ce caractère, on l'obtient sous Windows en enfonçant la touche "Alt" tout en tapant "096" sur le pavé numérique.
Exemple :
A2``B``C sera interprété comme A2BC

Notes isolées :
Laisser un espace avant et après chqua note à inscrire de manière isolée sur la portée.

Orientation et inclinaison :
L'inclinaison des barres et la position supérieure ou inférieure des hampes ne sont pas contrôlés par le code ABC mais déterminés par les logiciels l'interprétant graphiquement.

Espacement des notes
Le symbole y (minuscule) augmente l'espace sur la portée entre les notes qui l'entourent lors de l'affichage/impression.
Ce code est uniquement une commande de mise en forme graphique, sans effet sur la musique elle-même.

Passage à la ligne des portées
Par défaut, une ligne de notation ABC produit généralement à l'affichage/impression une ligne de musique (une portée) sur la partition.
L'interprétation par les logiciels d'affichage/impression peut cependant présenter des variations de comportement, d'où parfois la nécessité d'être explicite.

Attention ! dans un fichier-texte (les fichiers ABC sont des fichiers-texte) une ligne est définie par la présence à sa fin d'un caractère de fin de ligne (caractère non imprimable mais bien présent dans le fichier), à ne pas confondre avec un simple passage à la ligne dans l'éditeur.
Dans une terminologie "traitement de texte" une ligne de musique ABC est donc un paragraphe plus qu'une ligne.

Empêcher le passage à la ligne automatique d'une portée
Si la ligne d'écriture ABC est trop longue, la portée passera automatiquement à la ligne suivante, ce qui peut être gênant par exemple en cas de liaisons à cheval entre deux mesures.
Pour éviter cela, il est possible...
... soit de changer l'espacement entre notes réglé par le champ E: (mais peu de logiciels ont pris en compte ce champ, qu'il faut oublier),
... soit de modifier le paramétrage d'espacement dans le logiciel d'affichage (si cette possibilité existe), donc hors ABC,
... soit en forçant le passage à la ligne de la portée à un endroit précis par un saut de ligne dans la ligne ABC.

La dernière solution est la plus simple et la plus fiable.

Forcer le maintien sur une même portée
Pour que plusieurs lignes d'écriture ABC se retrouvent inscrites sur une seule portée, il faut ajouter un \ (anti-slash) à la fin de chaque ligne ABC à continuer avec la ligne suivante
Ceci est également utile pour insérer un changement de mesure ou de tonalité au milieu d'une ligne musicale (mais ceci peut aussi être effectué par un champ inclus, entre crochets).

Forcer le passage à la ligne de la portée
Il suffit simplement de placer un saut de ligne (pression sur la touche 'Entrée') à l'endroit désiré de la ligne ABC.

Si le saut de ligne ABC n'est pas correctement interprété par le logiciel en saut de ligne de portée ou bien si on ne désire pas fractionner la ligne ABC pour une raison quelconque, il faut alors insérer après une mesure le symbole ! (point d'exclamation) pour indiquer au logiciel d'affichage/impression qu'il doit commencer à cet endroit une nouvelle ligne de portée.
Justification des portées

La justification consiste à aligner tous les bords gauches et droits des portées, et à répartir de manière régulière les notes sur les portées pour remplir complètement celles-ci de gauche à droite.
La plupart des logiciels effectuent une justification automatique des portées à l'affichage/impression.
Si ce n'est pas le cas, le caractère * placé à la fin d'une ligne ABC indiquera au logiciel qu'il doit appliquer la justification de portée à la ligne concernée.

Annotations de la portée
Du texte d'annotation peut être ajouté à la portée (sur la portée, au dessus ou au dessous de celle-ci).
La syntaxe est proche de celle des accords d'accompagnements : le texte est enclos dans des guillemets doubles.
La position de l'annotation est contrôlée par les symboles suivants :
^ : au-dessus
_ : au dessous
< : à gauche
> : à droite
@ : placement déterminé librement par le logiciel de traitement.

Ces symboles sont placés en tête du texte de l'annotation. Ils ne doivent pas être omis car ils garantissent que l'annotation sera distinguée d'un accord d'accompagnement par le logiciel de traitement.

La position relative est déterminée par rapport à l'élément qui suit immédiatement l'annotation dans la ligne ABC. Cet élément peut être une note, une pause ou une ligne de portée.

Dans le cas de plusieurs annotations consécutives, le logiciel d'impression doit les inscrire les unes au-dessous des autres, avec un saut de ligne entre chacune et la première en haut.
Exemple :
"<(" ">)" C fait inscrire la note entre parenthèses.

Encodage des chaînes ABC

Généralités
Une "chaîne ABC" est une chaîne de caractères ascii 7 bits (0-127), c'est-à-dire une chaîne de texte excluant les caractères accentués et autres caractères spéciaux.
Ces caractères étendus (caractères 8 bits, 128-255) sont remplacés par une séquence de codage en caractères 7 bits.
Cet encodage des caractères 8 bits est le même que pour l'HTML sur le plan du principe, mais les codes utilisés diffèrent totalement.

Rappel : pour un ordinateur tout caractère (lettre, chiffre ou caractères spécial) est représenté en interne par un octet, c.à.d. un ensemble de 8 bits, un bit étant une unité logique valant 0 ou 1. Un octet est donc un nombre binaire de 8 bits, valant donc de 00000000 à 11111111 ce qui correspond en décimal à 0 à 255.
Pour les caractères standards, seuls les 7 premiers bits sont utilisés (00000000 à 01111111 soit 0 à 127).
Les caractères sur 8 bits sont appelés caractères étendus et ne sont pas standardisés.

Les chaînes ABC utilisent par défaut le jeu de caractères Latin-1.

Intérêts du codage :
Le codage sur 7 bits améliore considérablement la compatibilité internationale et inter-plateformes en cas de distribution des fichiers.
En effet, si les caractères standards (0-127) sont à peu près identiques dans tous les jeux de caractères basés sur le latin, les caractères étendus sont par contre très variables suivant les jeux utilisés (en fonction des pays et en fonction des systèmes d'exploitation), ce qui entraîne des permutations anarchiques de caractères lors de l'affichage.

Inconvénients du codage :
L'encodage des caractères étendus altère beaucoup la lisibilité directe des fichiers, allant donc à l'encontre de l'esprit même du format ABC : simplicité et lisibilité directe des fichiers (mais les permutations anarchiques de caractères ne sont pas très lisibles non plus... ).

L'encodage des caractères étendus utilisé par ABC est différent de celui, bien connu, utilisé par HTML.
En conséquence, les moteurs de recherches ne peuvent indexer correctement les fichiers ABC présents sur le Web qui utilisent ce codage, alors qu'un fichier ABC n'utilisant pas de codage sera correctement indexé et donc plus facile à trouver.
L'encodage des caractères étendus reste donc totalement facultatif.

Codage des caractères étendus
Chaque caractère étendu (codes numériques de 128 à 255) est remplacé par une séquence de codage qui débute par un anti-slash "\" suivi d'un accent conventionnel (qui évoque mais peut différer de l'accent ou du signe diacritique réel) puis de la lettre à accentuer ou d'un groupe de lettre dans le cas d'une ligature.

Voici une table simplifiée des codages (cette table ne contient que les codages utiles en français, voir la documentation ABC officielle pour consulter la table complète des codages) :

 

Caractères 8 bits

Codage ABC

Accent grave

À à ...

\`A \`a \`...

Accent aigu

Á á ...

\'A \'a ...

Accent circonflexe

 â ...

\^A \^a \^...

Tréma

Ä ä ...

\"A

Tilde

à ã ...

\~A \~a \~...

Cédille

Ç ç ...

\,C \,c \,...

Ligature

Æ æ ...

\AE \ae \...

Anti-slash

\

\\

Les logiciels ne gérant pas les caractères étendus doivent les réduirent à la lettre de base et séparer les ligatures.

Les caractères peuvent aussi être encodés par leur code ascii précédé de "\d" et suivi par ";"
Exemple : \d194; = Â (dans le jeu Latin-1)
Quelques caractères spéciaux sont encodables avec une syntaxe qui leur est propre :

 

Codage ABC

Copyright

(C)

Bémol

(b)

Dièse

(#)

Bécarre

(=)


Polices de caractères
Les indicateurs$1, $2, $3 et $4 permettent de changer de police dans une chaîne ABC.
Les polices correspondant à ces indicateurs sont définies par la directive de feuille de style %%setfont-n.
L'indicateur $0 réinitialise la police à sa valeur par défaut.
L'indicateur $$ permet d'afficher le symbole dollar lui-même.

La feuille de style

Une feuille de style est un ensemble de directives qui sont soit intercalées dans un fichier ABC soit placées ou incluses dans l'en-tête de celui-ci.
Ces directives de style concernent tout ce qui n'est pas directement la musique et sa transcription, donc essentiellement la mise en page, graphique ou sonore.

Toute directive non reconnue par un logiciel applicatif est simplement ignorée.

L'utilisation et le comportement des feuilles de styles ABC est très similaire à celui des feuilles de styles CSS en relation avec HTML.
Cependant, la notion de "style" en ABC est beaucoup plus large que le simple rendu à l'affichage sur écran.

Syntaxe générale
Chaque directive de style est une ligne commençant par %% suivi d'un mot-clé.
Exemple :
%%papersize A4
%%newpage
%%setbarnb 10

De façon alternative les directives peuvent être placées dans des champs I: Un champ I: ne peut contenir qu'une seule directive.
I:papersize A4
I:newpage
I:setbarnb 10

L'intérêt de ce champ est de permettre une syntaxe en ligne (champ inclus) qui peut être utilisée pour modifier la présentation au milieu d'une ligne de musique :
CDEFG|[I:setbarnb 10]ABc

La spécification des directives de style ne fait pas partie de la norme ABC proprement dite.
Chaque logiciel applicatif devrait donc fournir la liste des directives qu'il reconnaît et indiquer comment il les interprète, en attendant l'officialisation d'un futur standard.

Regroupement des voix

Syntaxe générale :

%%score <voice-id1> <voice-id2> ... <voice-idn>
Définit quelles voix doivent être imprimées et comment elles doivent être regroupées sur les portées.
Les voix regroupées entre parenthèses () sont placées sur une même portée.
Les voix regroupées entre crochets {} sont placées sur des portées superposées regroupées par une accolade.
Les voix regroupées entre crochet [] sont placées sur des portées superposées regroupées par un crochet.

Le caractère | indique que la barre de mesure doit se continuer entre les portées concernées. Exemple :
%%score Solo [(S A) (T B)] {RH | (LH1 LH2)}

Comportement :

Une voix intercalée entre deux groupes de voix et précédée du caractère * est dite flottante, c'est-à-dire que le logiciel applicatif déterminera pour chaque note si celle-ci doit être incluse au groupe supérieur ou au groupe inférieur.
Si le logiciel ne gère pas les voix flottantes, la voix sera intégrée au groupe qui la précède.
Exemple :
%%score {RH *M| LH}
%%score {(RH1 RH2) *M| (LH1 LH2)}

Les voix présentes dans le corps de morceau mais absentes de la directive %%score ne seront pas imprimées.
En l'absence de directive %%score, toutes les voix sont imprimées sur des portées indépendantes.

Directives instrumentales MIDI

La norme MIDI, pour Musical Instrument Digital Interface, est un format musical binaire de représentation de la musique sous formes de commandes et non de sons proprement dits. Ce format est à la musique ce que le format vectoriel est au graphisme.
Le MIDI constitue un format standard universel d'échange et de communication entre instruments électroniques et entre ceux-ci et systèmes informatiques et divers systèmes de traitement sonores.
En pratique, un morceau codé en ABC est d'abord traduit en MIDI avant d'être restitué de manière sonore.

Syntaxe générale :

%%MIDI voice [<ID>] [instrument=<integer> [bank=<integer>]] [mute]

Cette directive assigne un instrument MIDI à une voix donnée.

Les instruments MIDI sont organisés en "banques" de 128 instruments chacune.
Chaque banque et chaque instrument à l'intérieur de chaque banque est numéroté à partir de 1 (1-128, mais ATTENTION le codage interne des systèmes gérant le MIDI est 0-127). La banque 1 (0 en interne) est standardisée (standard General Midi = GM), les autres banques varient suivant le système sonore utilisé.
Un fichier ABC destiné à être diffusé ne devrait donc se référer qu'aux seuls instruments GM c'est-à-dire à la banque 1, la banque par défaut (banque 0 en interne).

Exemples : La directive suivante assigne l'instrument GM 59 (tuba) à la voix 'Tb'. Si l'identifiant de voix n'est pas mentionné, l'instrument est assigné à la voix courante :
%%MIDI voice Tb instrument=59
M:C
L:1/8
Q:1/4=66
K:C
V:Rueckpos
%%MIDI voice instrument=53 bank=2
A3B c2c2 |d2e2 de/f/P^c3/d/|d8 |z8 |
V:Organo
%%MIDI voice instrument=73 bank=2
z2E2- E2AG |F2E2 F2E2 |F6 F2|E2CD E3F/G/|

Pour couper une voix, on peut utiliser le mot-clé mute.

Si le logiciel applicatif est capable d'interpréter un accompagnement à partir des symboles d'accords de la ligne mélodique ABC, l'instrument MIDI à utiliser pour cet accompagnement est spécifié ainsi :
%%MIDI chordprog 20 % GM n°20 = Orgue d'église

Instruments General MIDI

En jargon informatico-musical, on parle indifféremment d'instruments, de patchs, de programmes ou de presets.

En fait les instruments GM ne sont que des types génériques de sonorités prédéfinies dont le rendu reste assez variable suivant le système les générant (puce ou carte son, synthétiseur externe, etc.).
En effet, le code MIDI se résume à dire à un système de reproduction sonore, par exemple, "jouer telle note de telle octave pendant tant de secondes avec une vélocité de tant en utilisant le preset numéro tant de la banque numéro tant".
A la sortie, suivant le système utilisé, avec une même commande MIDI vous obtiendrez donc soit une basse de grandes orgues à faire vibrer tous les murs du quartier soit une atroce sonnerie de téléphone portable... et la qualité du codage ABC ou MIDI n'y sera pour rien !

Liste des instruments GM

Voici la liste complète des codes et dénominations des "instruments" du standard General MIDI (GM).
Certains systèmes ne gèrent pas l'intégralité de cette banque (certaines puces sonores d'ordinateurs portables par exemple).

Pour la propriété instrument=n, n vaut la valeur interne + 1, en décimal.

   Dec.    Hexa.   Instrument
    0       00     Grand piano acoustique
1 01 Piano acoustique
2 02 Grand piano électrique
3 03 Piano bastringue
4 04 Piano électrique Rhodes
5 05 Piano - effet chorus
6 06 Clavecin
7 07 Clavicorde (Clavinet)
8 08 Celesta
9 09 Glockenspiel
10 0A Boîte à musique
11 0B Vibraphone
12 0C Marimba
13 0D Xylophone
14 0E Cloches tubulaires
15 0F Tympanon (Dulcimer)
16 10 Orgue Hammond
17 11 Orgue ? son percussif
18 12 Orgue - Rock
19 13 Grandes orgues
20 14 Harmonium
21 15 Accordéon
22 16 Harmonica
23 17 Bandonéon
24 18 Guitare acoustique ? classique
25 19 Guitare acoustique ? folk
26 1A Guitare électrique - jazz
27 1B Guitare électrique - son clair
28 1C Guitare électrique - sourdine
29 1D Guitare électrique ? saturée
30 1E Guitare électrique - distorsion
31 1F Harmoniques de guitare
32 20 Basse acoustique
33 21 Basse électrique ? picking
34 22 Basse électrique - médiator
35 23 Basse électrique non frettée
36 24 Basse - slap 1
37 25 Basse - slap 2
38 26 Basse - synthé 1
39 27 Basse - synthé 2
40 28 Violon
41 29 Alto
42 2A Violoncelle
43 2B Contrebasse
44 2C Cordes - trémolo
45 2D Cordes - pizzicato
46 2E Harpe
47 2F Timbales
48 30 Ensemble de cordes 1
49 31 Ensemble de cordes 2
50 32 Cordes - synthé 1
51 33 Cordes - synthé 2
52 34 Choeur - "Aah"
53 35 Choeur - "Ooh"
54 36 Voix synthétique
55 37 Tutti d'orchestre
56 38 Trompette
57 39 Trombone
58 3A Tuba
59 3B Trompette en sourdine
60 3C Cor d'harmonie
61 3D Section de cuivres
62 3E Cuivres - synthé 1
63 3F Cuivres - synthé 2
64 40 Saxophone soprano
65 41 Saxophone alto
66 42 Saxophone ténor
67 43 Saxophone baryton
68 44 Hautbois
69 45 Cor anglais
70 46 Basson
71 47 Clarinette
72 48 Piccolo
73 49 Flûte traversière
74 4A Flûte à bec
75 4B Flûte de pan
76 4C Bouteille - souffle
77 4D Flûte Shakuhachi
78 4E Sifflet
79 4F Ocarina
80 50 Synthé - signal carré
81 51 Synthé - signal dents de scie
82 52 Synthé - orgue à vapeur
83 53 Synthé ? Chiffer
84 54 Synthé - Charang
85 55 Synthé - voix solo
86 56 Synthé - signal dent de scie en quinte
87 57 Synthé - basse et nappe
88 58 Synthé - fantaisie (new age)
89 59 Synthé - son chaud
90 5A Polysynthé
91 5B Synthé - choeurs
92 5C Synthé ? archet
93 5D Synthé - métallique
94 5E Synthé ? halo
95 5F Synthé ? Balai
96 60 Pluie de glace
97 61 Trames sonores
98 62 Cristal
99 63 Atmosphère
100 64 Brillance
101 65 Lutins
102 66 Echos
103 67 Espace
104 68 Sitar
105 69 Banjo
106 6A Shamisen
107 6B Koto
108 6C Kalimba
109 6D Cornemuse
110 6E Fiddle
111 6F Shannai
112 70 Clochettes
113 71 Agogo
114 72 Batterie métallique
115 73 Planchettes
116 74 Tambour Taiko
117 75 Tom mélodique
118 76 Tambour - synthé
119 77 Cymbale - inversée
120 78 Guitare - bruit de frette
121 79 Respiration
122 7A Rivage
123 7B Gazouillis
124 7C Sonnerie de téléphone
125 7D Hélicoptère
126 7E Applaudissements
127 7F Coup de feu

Directives d'altérations

%%propagate-accidentals
%%propagate-accidentals not | octave | pitch
Trois valeurs possibles :
not : les altérations s'appliquent seulement à la note qui les portent.
octave : les altérations s'appliquent à toutes les notes de la même hauteur dans la même octave, jusqu'à la fin de la portée.
pitch (valeur par défaut) : les altérations s'appliquent à toutes les notes de la même hauteur dans toutes les octaves, jusqu'à la fin de la portée.

%%writeout-accidentals
%%writeout-accidentals none | added | all
Trois valeurs possibles :
none (valeur par défaut) : les altérations apparaissant dans le champ de clé K: sont imprimés dans l'armure de clé.
added : seules les altérations appartenant au mode indiqué dans K: sont imprimés dans l'armure de clé, les altérations ajoutées sont imprimées devant les notes concernées.
all : les altérations appartenant au mode indiqué et les altérations ajoutées sont toutes imprimées devant les notes concernées, aucune armure de clé n'est imprimée.

Directives de formatage

Unités des valeurs :
<longueur> : valeur exprimée en centimètres, pouces (in) ou points (pt) (1 pt = 1/72 in)
<logique> : valeur booléenne (vrai | faux) représentée par 1 (vrai) ou 0 (faux).
<entier> : nombre entier.
<nombre> : nombre quelconque, éventuellement décimal.

<ABC> : texte sous forme de chaîne ABC.

Format de page à imprimer
%%pageheight < longueur > %hauteur de la page
%%pagewidth < longueur > % largeur de la page
%%topmargin < longueur > % marge supérieure
%%botmargin < longueur > % marge inférieure
%%leftmargin < longueur > % marge gauche
%%rightmargin < longueur > % marge droite
%%indent <longueur> % indentation de première ligne
%%landscape <logique> % vrai = format paysage

Format de police
%%titlefont <nom police> <taille> % police du champ T: principal
%%subtitlefont <nom police> <taille> % police du ou des champs T: secondaires
%%composerfont <nom police> <taille> % police du champ C:
%%partsfont <nom police> <taille> % police des champs P:
%%tempofont <nom police> <taille> % police du tempo
%%gchordfont <nom police> <taille> % police des symboles d'accords
%%annotationfont <nom police> <taille> % police des annotations "^..."
%%infofont <nom police> <taille> % police des champs I:
%%textfont <nom police> <taille> % police des lignes %%text
%%vocalfont <nom police> <taille> % police des lignes w:
%%wordsfont <nom police> <taille> % police des lignes W:

Indicateurs de police pour les chaînes ABC :
%%setfont-1 <nom police> <taille>
%%setfont-2 <nom police> <taille>
%%setfont-3 <nom police> <taille>
%%setfont-4 <nom police> <taille>

Format des espaces
%%topspace <longueur> % espace avant un morceau
%%titlespace <longueur> % espace avant le titre
%%subtitlespace <longueur> % espace avant un sous-titre
%%composerspace <longueur> % espace avant le compositeur
%%musicspace <longueur> % espace entre compositeur et première portée
%%partsspace <longueur> % espace avant une nouvelle partie
%%vocalspace <longueur> % espace avant les paroles sous les portées
%%wordsspace <longueur> % espace avant les paroles en fin de morceau
%%textspace <longueur> % espace avant les textes
%%infospace <longueur> % espace avant la ligne d'information
%%staffsep <longueur> % entre groupes de portées
%%sysstaffsep <longueur> % entre portées d'un même groupe
%%barsperstaff <entier> % nombre de mesures maximal par ligne
%%parskipfac <nombre> % espace entre deux parties
%%lineskipfac <nombre> % interligne du texte
%%stretchstaff <logique> % justification des portées
%%stretchlast <logique> % justification de la dernière portée
%%maxshrink <nombre> % resserrer les notes au maximum
%%scale <nombre> % échelle pour toute la musique

Format de mesure
%%measurefirst <entier> % débuter la numérotation des mesure par ...
%%barnumbers <entier> % numéro de barre toues les ''n'' mesures
%%measurenb <entier> % idem à %%barnumbers
%%measurebox <logique> % inscrire les numéros de mesure dans un carré
%%setbarnb <entier> % détermine le nombre de mesures

Format de texte
%%text <ABC> % texte à imprimer tel quel.
%%center <ABC> % texte imprimé centré
%%begintext % format alternatif à un ensemble de lignes %%text
%%...
%%endtext
%%sep % inscrit un séparateur (ligne horizontale), 3 paramètres numériques optionnels (espace avant, espace après, longueur) :
%%sep <nombre1> <nombre2> < nombre 3>
%%vskip % ajoute un espace vertical
%%vskip <nombre> % ajoute un nombre déterminé d'espaces verticaux
%%newpage % débute une nouvelle page.

Formats divers
%%continueall <logique> % ignore les sauts de lignes si vrai
%%exprabove <logique> % inscrit les symboles d'expressions au-dessus de la portée
%%exprbelow <logique> % inscrit les symboles d'expressions au-dessous de la portée
%%graceslurs <logique> % inscrit un lien entre les notes d'ornementation et la note principale
%%infoline <logique> % inscrit rythme et origine sur la même ligne
%%musiconly <logique> % ne pas inscrire les paroles
%%oneperpage <logique> % imprime un seul morceau par page
%%vocalabove <logique> % inscrit les paroles au-dessus de la portée
%%withxrefs <logique> % inscrire la valeur du champ X: dans le titre
%%writehistory <logique> % inscrire l'historique
%%freegchord <logique> % empêche l'inscription des altérations dans les accords si vrai
%%printtempo <logique> % inscrit le tempo