Justification automatique de partitions

Nabil Bouzaiene, Catherine Guastavino, Emmanuel Saint-James

► To cite this version:

Nabil Bouzaiene, Catherine Guastavino, Emmanuel Saint-James. Justification automatique de partitions. Journées d'informatique musicale 2000, 2000, Bordeaux, France. 12 p. hal-03169301

HAL Id: hal-03169301

https://hal.science/hal-03169301

Submitted on 15 Mar 2021

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Justification automatique de partitions

Nabil Bouzaïene, Catherine Guastavino,
Emmanuel Saint-James

Université Pierre et Marie Curie

4 place Jussieu, 75252 Paris Cedex 5, France

Nabil.Bouzaiene@ufr-info-p6.jussieu.fr,

Catherine.Guastavino@lam.jussieu.fr,

Emmanuel.Saint-James@ufr-info-p6.jussieu.fr

## 1 Introduction

Malgré leurs progrès, les logiciels d'édition de partitions musicales sacrifient encore soit l'ergonomie de l'entrée, soit la qualité de la sortie. C'est particulièrement vrai pour les partitions à plusieurs portées par système, qui posent le problème de la *justification des signes*, autrement dit leur répartition sur la portée de sorte que des événements sonores simultanés soient alignés verticalement, quelle que soit la taille des signes. Ce travail était le métier du *graveur de partition* qui utilisait des poinçons et des plaques de cuivre. L'informatique le concurrence aujourd'hui, à la fois en fournissant un support moins cher et plus pratique, accessible au néophyte, mais aussi en proposant des programmes de justification automatique qui prétendent remplacer un savoir-faire multi-séculaire.

Le présent article propose, dans une première section, une formalisation de ce savoir-faire des graveurs, après une enquête menée auprès d'eux. Dans une deuxième section, nous proposons un algorithme de justification totalement automatique, suffisamment performant pour opérer interactivement en cours de saisie sous un éditeur téléchargé par un navigateur.

## 2 Des règles de gravure empiriques et lacunaires

L'unité de mesure en gravure musicale est la *dent*, nom provenant de la fourchette qui servait à graver les portées [3]. La largeur d'un caractère se compte alors ainsi : 1,1 dent pour une noire, 0,8 pour le dièse, 0,77 pour le bémol et 0,74 pour le bécarre. La dent en typographie musicale est l'équivalent du corps pour le texte alphabétique. Le corps définit l'épaisseur nécessaire pour supporter toute la lettre, hampe et jambage compris [8]. Or en musique, il n'y a pas de jambage et la hampe est un artifice de lisibilité sans signification (à part la distinction blanche/ronde, mais la variation de têtes de note, comme dans la musique médiévale, lèverait l'ambiguité): elle pourrait disparaître, les fouets de croches se collant à la tête. En outre, la hampe, de par sa taille variable, n'est pas un caractère.
## 2.1 Microtypographie

Le terme microtypographie désigne l'assemblage des signes constituant un bloc typographique [2] : dans le cas de partitions, il s'agit d'une note avec ses altérations, d'un accord, de croches liées etc.

### 2.1.1 Clef et armure

En début de ligne, la clef se place à une dent du bord. Pour un changement de clef à l'intérieur de la pièce, les règles sont flexibles. Si la note précédant le changement est une valeur longue, on place la clé sur le grand espace qui suit cette note habituellement. Si c'est une valeur courte, il faudra décaler les autres portées du système pour conserver la synchronisation des voix.

<figure><img src="image_2.png" /><figcaption>Figure 1: Changement de clef (M. Ravel, *Trio pour Piano, Violon et Violoncelle*, Master Music Publications, Inc)</figcaption></figure>

Après la clé de début de ligne, viennent l'armure, placée une dent après, puis la métrique à deux dents de l'armure, et enfin la première note à trois dents de la métrique. Une barre de mesure est séparée de sa première note par une dent. Cependant, dans un système à plusieurs portées, cet espace peut contenir des altérations pour éviter de décaler les autres voix.

### 2.1.2 Espacer les signes, en théorie

L'espace après une note dépend non linéairement de sa durée. Quelques règles existent pour une seule voix sans considération des éléments perturbateurs comme les altérations : leur application est donc assez rare.

Blostein & Haken [5] calculent l'espace après une note de durée *D* (1 pour une noire, 0,5 pour une croche, etc.) par $base^{ln(1/D)}$ où $0 < base \le 1$ avec 0,7 comme valeur par défaut.

Montel [3] concilie espace et durée, sans trop s'étendre horizontalement, avec un facteur de 1,5 (une noire occupe une fois et demie la largeur d'une croche). C'est une tradition de la gravure française, qui se reconnait également au blanc continu entre les liens de doubles croches. Dans les autres pays, les hampes se prolongent jusqu'au lien le plus éloigné des têtes.
Par ailleurs, une note dont la durée remplit la mesure entière est centrée, et la taille de la mesure est réduite par rapport aux autres, sauf évidemment dans un système à plusieurs portées avec des mesures à plusieurs notes.

### 2.1.3 Des altérations à la limite de la surimpression

C'est un domaine où la plupart des logiciels se montrent peu convaincants, alors qu'il faut systématiquement éviter le chevauchement des symboles :

<figure><img src="image_3.png" /><figcaption>Figure 2: Accords altérés en abc2ps</figcaption></figure>

L'altération doit toujours être placée plus près de la note qu'elle altère que de la note précédente. Ce principe simple est rarement respecté :

<figure><img src="image_4.png" /><figcaption>Figure 3: Altération produite par Lime</figcaption></figure>

En temps normal, l'altération se place à une demi-dent de la note. Si cet encombrement est trop important, on augmente l'espace entre les notes, en essayant de garder constants l'espace entre notes de même durée et le rapport de largeur avec les notes d'autres durées. Mais bien souvent la place manque, et l'espacement doit être modifié en rapprochant l'altération de la note jusqu'à un tiers de dent, distance minimale entre deux symboles.

Pour le placement des altérations devant un accord, l'intervalle déterminant est la septième. Diverses combinaisons d'imbrications des symboles sont possibles, que le graveur étudie cas par cas.

* Quand deux altérations sont placées simultanément sur un accord, elles gardent leur position normale (et sont donc alignées verticalement) si l'intervalle entre les deux notes altérées est d'au moins une septième, sinon l'altération inférieure se décale vers la gauche.

<figure><img src="image_5.png" /><figcaption>Figure 4: C. Debussy, Préludes, Canope, Ed. Durand</figcaption></figure>
* Avec trois notes altérées, les altérations extrêmes suivent la règle précédente, et celle du milieu se décale à gauche de l'altération inférieure.

<figure><img src="image_6.png" /><figcaption>Figure 5: C. Debussy, Préludes, “General Lavine”, Ed. Durand</figcaption></figure>

* Quatre altérations se placent encore en triangle, et les extrêmes s'alignent si l'intervalle est d'au moins une septième. Quant aux autres altérations, la deuxième (en partant du haut) se place à gauche de l'altération supérieure, et la troisième à gauche de la deuxième.

<figure><img src="image_7.png" /><figcaption>Figure 6: C. Debussy, Préludes, La Puerta del Vino, Ed. Durand</figcaption></figure>

* Pour cinq altérations, les quatre supérieures suivent la règle précédente, et l'inférieure se place à gauche de la quatrième (en partant du haut).

<figure><img src="image_8.png" /><figcaption>Figure 7: C. Debussy, Études, Pour les accords, Ed. Durand</figcaption></figure>

* Pour six altérations, on place les cinq supérieures comme précédemment et la sixième entre la quatrième et la cinquième, quitte à décaler la cinquième un peu plus vers la gauche.

* Au delà de six, il n'y a plus de règles fixes. On considère que le déchiffrage ne pourra pas être immédiat, et on essaie de faire tenir tous les symboles le mieux possible dans la place disponible.

* Cependant si l'accord contient un intervalle d'au moins une septième entre deux notes altérées, on considère alors deux sous-accords et on place les altérations sur chacun d'eux indépendamment de l'autre.
<figure><img src="image_9.png" /><figcaption>Figure 8: C. Debussy, *Préludes, La terrasse des audiences du clair de lune*, Ed. Durand</figcaption></figure>

* Ces règles s'appliquent aussi aux accords avec secondes : contrairement à ce qu'on pourrait croire, on ne rapproche pas l'altération de la note la plus à droite.

* Si deux accords appartenant à deux voix différentes commencent simultaneously, on place leurs altérations séparément, mais il est parfois nécessaire de décaler une altération pour éviter le chevauchement.

<figure><img src="image_10.png" /><figcaption>Figure 9: M. Ravel, *Trio pour Piano, Violon et Violoncelle*, op. cit.</figcaption></figure>

### 2.1.4 Les hampes

Dans la musique à une seule voix, la hampe d'une note isolée est longue d'une octave, sauf en cas de lignes supplémentaires si la queue de la hampe n'atteint pas la première ligne supplémentaire : dans ce cas, la hampe doit toujours atteindre la ligne médiane.

<figure><img src="image_11.png" /><figcaption>Figure 10: S. Prokofieff, *Visions fugitives* Op.22, Ed. Booseys & Hawkes</figcaption></figure>
Les hampes s'orientent vers le bas pour les notes sur ou au dessus la ligne médiane de la portée, vers le haut autrement. Pour les notes sous un lien, c'est la plus éloignée de cette ligne qui détermine le sens, non la majorité.

<figure><img src="image_12.png" /><figcaption>Figure 11: S. Prokofieff, *Visions fugitives* Op.22, Ed. Booseys & Hawkes</figcaption></figure>

Dans la musique polyphonique, le sens des hampes permet de différencier les voix. Les règles précédentes ne s'appliquent plus : la longueur des hampes en particulier est souvent diminuée.

<figure><img src="image_13.png" /><figcaption>Figure 12: S. Prokofieff, *Visions fugitives* Op.22, Ed. Booseys & Hawkes</figcaption></figure>

### 2.1.5 Les points

Comme les altérations, les points se placent à une demi-dent de la note, et peuvent s'en rapprocher jusqu'au tiers de dent si nécessaire. Si la note est dans un interligne, le ou les points s'y placent; sinon, ils se placent dans l'interligne au dessus pour les notes avec hampe vers le haut, et dans celui du dessous pour les autres. En cas d'accord ou de polyphonie, tous les points doivent être alignés, même si certaines notes sont décalées.

<figure><img src="image_14.png" /><figcaption>Figure 13: M. Ravel, *Trio pour Piano, Violon et Violoncelle*, op. cit.</figcaption></figure>

## 2.2 Macrotypographie

Ce terme désigne l'assemblage, sur la page, des blocs typographiques (paragraphes, système à portées). Contrairement au texte alphabétique, le texte musical ne change ni de police ni de taille, encore moins de couleur. Seuls le retrait de ligne et d'éventuelles indications ponctuent la pièce.
### 2.2.1 Mise en page

Pour offrir une compréhension immédiate de l'organisation de la musique, il convient de laisser un espace entre les systèmes bien supérieur à l'espace entre les portées. Dans les partitions d'orchestre, on groupe les familles d'instruments afin de les faire ressortir au premier coup d'œil.

Le passage à la ligne s'effectue si possible après une barre de mesure. Cependant, des mesures exceptionnellement longues obligent à couper au milieu d'une mesure, voire sous un lien.

<figure><img src="image_15.png" /><figcaption>Figure 14: S. Prokofieff, *Visions fugitives* Op.22, Ed. Booseys & Hawkes</figcaption></figure>

La densité de notes par ligne dépend du style de musique. Si beaucoup de notes rapides sont liées entre elles, on tolèrera un nombre de notes plus important que si elles sont toutes détachées.

### 2.2.2 Aligner à tout prix

Superposer plusieurs parties pose des problèmes inévitables de décalage. Il ne faut pas trop vouloir aligner, car l'œil corrige instinctivement les petits décalages. Le centre de la tête des notes reste la référence la plus simple.

Les intervalles de seconde dans un accord ou dans de la musique polyphonique entraînent un décalage de certaines têtes de notes (vers la droite pour la hampe vers le haut). On décale le plus petit nombre de têtes possible, et on aligne sur les têtes non décalées.

<figure><img src="image_16.png" /><figcaption>Figure 15: C. Debussy, *Études, Pour les accords*, Ed. Durand</figcaption></figure>

Lorsque des instruments d'un même système jouent avec des métriques différentes, les barres de mesure des portées aux mesures les plus courtes occupent de l'espace à répartir sur tout le système.
<figure><img src="image_17.png" /><figcaption>Figure 16: M. Ravel, *Trio pour Piano, Violon et Violoncelle*, op. cit.</figcaption></figure>

Quant aux petites notes, elles se placent généralement avant le temps,
et entraînent un décalage sur toutes les portées. Il en est de même pour les
altérations en début de mesure, ou si par manque de place, l'espace entre
notes est rallongé sur une portée, il doit l'être aussi sur les autres. On suppose
de toutes façons qu'il existe une partition séparée pour chaque instrument,
justifiée différemment de la partie du conducteur.

<figure><img src="image_18.png" /><figcaption>Figure 17: M. Ravel, *Trio pour Piano, Violon et Violoncelle*, op. cit.</figcaption></figure>

### 2.2.3 Les chaises

Une *chaise* est le passage d'une voix d'une portée à l'autre sous un même lien, phénomène courant dans la musique pour piano. Les notes avec hampe vers
le bas ont alors la tête à droite de celle-ci, tandis que les notes avec hampe vers le haut l'ont à gauche. Afin de garder un espace entre tête de note à peu près constant et permettre ainsi une bonne lecture, il convient de raccourcir le lien entre les notes au changement de portée, dans le cas d'une voix montant vers la portée supérieure. On réduit ainsi la distance horizontale entre les hampes, mais les têtes de notes sont régulièrement espacées.

<figure><img src="image_19.png" /><figcaption>Figure 18: F. Bianchini, *Est-il regret*, CNRS Editions (V. Otéro)</figcaption></figure>

Si au contraire une voix descend vers la portée inférieure, on essaiera de garder un espace constant entre les hampes, en rapprochant les têtes.

<figure><img src="image_20.png" /><figcaption>Figure 19: C. Debussy, *Préludes, Feux d'artifice*, Ed. Durand</figcaption></figure>

Si d'autres portées s'ajoutent à celle-ci dans un même système, la gravure replace les notes décalées par les chaises sur les autres portées, afin de ne pas perturber la lecture des autres instruments.

# 3 Un algorithme de justification

## 3.1 Aligner les portées

Un événement est un signe typographique musical qui a une position dans le temps définie (e.g. note, soupir) ou un ensemble de signes dont l'un a une position dans le temps (e.g. note altérée, pointées) ou bien des signes ayant tous la même position temporelle (e.g. accords). À chaque événement, on associe un espace minimal avant et après (espace nécessaire à éviter le
chevauchement) et un espace souhaité avant et après (espace esthétique si
le contexte le permet, avant pour les altérations, après pour les points et les
notes décalées).

La contrainte dans une partition est que tous les événements simultanés
soient alignés. La première étape de la justification est donc d'aligner les
portées. Pour simplifier, on considère des portées à une seule voix. Cela
revient à construire une matrice d'événements avec le temps en abscisse et
où chaque ligne correspond à une portée.

<table>
  <tr>
    <td></td>
    <td>t<sub>1</sub></td>
    <td>t<sub>2</sub></td>
    <td>t<sub>3</sub></td>
    <td>t<sub>4</sub></td>
    <td>t<sub>5</sub></td>
  </tr>
  <tr>
    <td>p<sub>1</sub></td>
    <td>ev</td>
    <td>ev</td>
    <td>ev</td>
    <td>ev</td>
    <td>ev</td>
  </tr>
  <tr>
    <td>p<sub>2</sub></td>
    <td>ev</td>
    <td>ev</td>
    <td>ev</td>
    <td>ev</td>
    <td>ev</td>
  </tr>
  <tr>
    <td>p<sub>3</sub></td>
    <td>ev</td>
    <td>ev</td>
    <td>ev</td>
    <td>ev</td>
    <td>ev</td>
  </tr>
</table>

On cherche à associer à chaque temps $t_i$ pour $1 \le i \le n$ une position en $x$. Pour cela, on fixe l'abscisse de tous les événements simultanés (dans la même colonne) au maximun des abscisses de chacun, afin de s'assurer que chaque événement aura l'espace nécessaire. L'abscisse considérée ici est celle que l'on obtient en faisant la somme des espaces minimaux, ce qui correpond à serrer les caractères au maximun sans les faire se chevaucher.

## 3.2 Espacer les événements

Nommons *espace temporel* l'intervalle de temps entre événements, et *espace textuel* le maximun des espaces minimaux après des événements dont la position temporelle est la borne inférieure de l'intervalle considéré. Une fois déterminé le passage à la ligne, on répartit l'espace nécessaire à remplir en essayant de tendre le plus rapidement possible vers l'espace souhaité entre chaque événement. Ces notions s'inspirent des blancs élastiques et des ressorts de $T_{EX}[1]$, repris par Michael Methfessel pour les système à une portée dans abc2ps, mais adaptée ici à un système à plusieurs portées : il faut *raidir* les ressorts pour qu'ils se détendent de façon cohérente sur différentes portées.

À chaque intervalle de temps $[t_i, t_{i+1}]$ correspond un intervalle d'abscisse $[x_i, x_{i+1}]$ déterminé au moment de l'alignement des portées. C'est ce dernier qu'on étirera, afin de conserver l'alignement.

Chaque intervalle d'abscisse $[x_i, x_{i+1}]$ entre deux événements se voit attribué une partie de l'espace libre proportionnel à la différence entre l'espace temporel et l'espace textuel de l'intervalle de temps $[t_i, t_{i+1}]$ correspondant. De cette manière, on répartit le blanc suivant la durée.

S'il reste encore de l'espace libre une fois que chaque intervalle a obtenu son espace temporel, on augmente la valeur de l'intervalle de temps le plus court jusqu'à occuper tout l'espace.
## 3.3 Espacer les signes d'un même événement

Comme nous l'avons vu précédemment, l'altération et le point se placent en temps normal à une distance maximale fixe de la note (une demi-dent), et peuvent s'en rapprocher jusqu'à une distance minimale (un tiers de dent) quand la musique est dense. Si l'espace attribué à la note après l'espacement des événements est tel qu'il y a au moins la place nécessaire, on les placera donc à la distance maximale; sinon, on calcule la position relative de l'altération en fonction du poids de chacun des signes composant l'événement. Le poids est la différence entre l'espace maximal et l'espace minimal de chaque signe. Il présente peu d'intérêt dans le cas d'une note seule avec une altération puisque les espaces minimal et maximal sont fixes, mais sera très utile pour des cas plus complexes, comme les altérations d'un accord.

## 3.4 Réalisation

La première étape consiste à balayer entièrement toutes les portées et les aligner. Ensuite on détermine les passages à la ligne, puis on espace les événements. Pour finir chaque événement dispose les signes qui le composent.

Cet algorithme a été implémenté en Java et intégré à un éditeur distribué développé antérieurement [6]. Ces performances permettent de demander la justification de chaque ligne saisie et de voir immédiatement le résultat. La figure ci-dessous montre en grisé les signes disposés lors de la saisie, et en noir le résultat de la justification après validation de l'entrée.

<figure><img src="image_21.png" /><figcaption>Figure 20: Comparaison de la saisie et de la justification automatique</figcaption></figure>

## References

[1] R. Seroul, Le petit livre de TEx, InterEditions, 1989.

[2] F. Richaudeau, Manuel de typographie et de mise en page, Retz, 1989.
[3] D. Montel, La gravure de la musique, lisibilité esthétique, respect de l'oeuvre, Musique et Notations, Mars 1997.

[4] L. Haken, D. Blostein, The Lime Music Editor : a Diagram Editor In-volving Complex Translations, Software practice and experience, VOL. 24(3), Mars 1994.

[5] L. Haken, D. Blostein, Justification of Printed Music, Communications of the ACM, VOL. 34(3), Mars 1991.

[6] N. Bouzaïene, E. Saint-James, Édition distribuée de partitions musicales multi-polices JIM 1999.

[7] J. André, Création de fonte en typographie numérique, Documents d'habilitation, IRISA IFSIC, 1993.

[8] Massin, Lexique des règles typographiques en usage à l'Imprimerie Nationale, Imprimerie Nationale 1990, ISBN 2-11-081075-0.