next up previous contents
suivant: Justification monter: Placement des notes précédent: Lime, justification sur une   Table des matières

Alignement vertical avant la fin de la ligne

La première étape consiste à décider de l'endroit où il faut aller à la ligne. Notre application donne la possibilité à l'utilisateur de fixer le nombre de mesures par ligne s'il le désire, sinon elle le calcule automatiquement. De plus, notre algorithme de justification se comporte de deux façons différentes selon les cas. Nous utilisons le premier mode de fonctionnement pour aligner les événements verticalement au moment de la saisie et tant que la fin de la ligne n'est pas atteinte. Le deuxième se déclenche après le retour à la ligne.

Nous commençons par attribuer à chaque note ou plutôt à chaque durée un espace par défaut. C'est l'espace que prendrait la note si elle était seule. Soit par exemple E60#60, E61#61 et E62#62 les espaces nécessaires respectivement à une croche, une noire et une blanche. D'après les règles de gravure, nous savons que :
E62#62=1,5 * E61#61 et que
E61#61=1,5 * E60#60.
Au moment de la saisie et tant que la ligne n'est pas pleine, nous considérons la notion de simultanéité en prenant l'échelle des temps comme base du traitement de la partition. Nous partons du temps zéro qui correspond au début de la partition, nous traitons tous les événements qui arrivent à cet instant, en incrémentant le temps nous passons à l'instant suivant, etc. Il faut évidemment avoir attribué à chaque note une durée; dire par exemple que la noire correspond à 16 temps, la blanche à 32 et la croche à 8.

Ensuite, nous repérons tous les instants où il y a un événement sur chaque voix, c'est-à-dire tous les instants où toutes les voix sont alignées, par exemple, en figure 2.9 les instants indiqués par les flèches.

Figure 2.9: points de simultanéité

Enfin, pour chaque intervalle entre deux instants où toutes les voix sont alignées, il faut trouver la note la plus petite, et c'est cette note qui va imposer son espacement à toutes les autres. Si, par exemple, la note la plus petite est une croche, alors la noire prendra 2 fois l'espacement d'une croche, la blanche prendra 4 fois l'espacement d'une croche et ainsi de suite. Par contre, si la note la plus petite est une double croche, alors la noire prendra 4 fois l'espacement d'une double croche, la blanche prendra 8 fois l'espacement d'une double croche, etc.

Pour résumer, entre deux instants où toutes les voix sont alignées, c'est-à-dire où il y a au moins un événement sur chaque voix, c'est la note la plus brève qui s'impose et toutes les autres vont en être des multiples.

Il faut ensuite prendre en compte les événements n'ayant pas de durée, mais nécessitant quand même un espace, comme par exemple les altérations. Ces objets graphiques sont traités de deux façons : quand il y a la place pour les insérer sans être obligé de décaler les notes qui les suivent, ils le sont. Sinon ils imposent un espace à toutes les voix, pour que deux notes simultanées soient quand même alignées même si l'une a un bémol et pas l'autre.

Figure 2.10: alignement vertical au moment de la saisie

En figure 2.10 par exemple, l'espacement réservé à une noire varie en fonction des notes sur les autres voix, même à l'intérieur d'une même mesure.


next up previous contents
suivant: Justification monter: Placement des notes précédent: Lime, justification sur une   Table des matières
Nabil Bouzaiene 2000-07-12