Subject: Question aux claviéristes

From: Cécile Huneau <[email-masked]>
Date: Wed, 28 Dec 2011 04:33:18 +0100

Bonjour bonjour,
J'ai une petite question typo : j'ai dans un accord un do dièse et un do 
bécarre à la même octave. Je sais que cela fait partie des "problèmes 
connus et avertissements" et qu'il faudrait soit utiliser plusieurs voix 
(je n'arrive pas du tout à savoir ce que je pourrais faire avec 
plusieurs voix), soit utiliser des enharmoniques (impossible : j'ai 
justement une progression harmonique), soit des clusters (non pertinent).
Je note <do! dod mi> ce qui me donne en rendu un dièse suivi d'un 
bécarre suivis des 2 do collés l'un à l'autre (et mon mi au dessus mais 
celui-là il est bien où il est)
Est-ce que cela vous semble lisible ? Dans le cas contraire comment 
aimeriez-vous que ce soit noté ? Question subsidiaire ne demandant pas 
forcément de réponse (faut bien que je bosse aussi) : vous noteriez ça 
comment avec lily ?

Dans l'original j'ai une espèce de triangle : le mi en haut du triangle, 
le do dièse à gauche et le do bécarre à droite, les trois notes étant 
reliées par des traits formant un triangle. Cela ne m'a pas entièrement 
convaincue étant donné que je suis restée plantée quelques minutes 
devant à me demander ce que c'était que cette bêêêête. Mais peut-être 
que cela vous semble super logique ?

Bonne nuit à tous !
Cécile

---

From: Phil Hézaine <[email-masked]>
Date: Wed, 28 Dec 2011 07:31:24 +0100

> que cela vous semble super logique ?

Bonjour,

Oui, logique et habituel. Bien que pour <do! dod mi> il me semble que 
do! et mi seront placés sur la même colonne.

Pour résoudre cette difficulté, voir:
  http://lsr.dsi.unimi.it/LSR/Item?id=505

Dans ce snippet les altérations sont placées devant chaque note.

Mike a aussi proposé une esquisse de fonction pout traiter ce problème. 
(cf. la discussion "2 questions pour la Berceuse de Chopin)

Je la recopie: (Elle ne fonctionne qu'avec la version 2.15)

#(define note-head-shift 2)

#(define (positioning-done grob)
  (let ((nh (ly:grob-array->list (ly:grob-object grob 'note-heads))))
    (for-each
      (lambda (x y)
      (ly:grob-translate-axis! x (* note-head-shift y) X))
      nh (iota (length nh))))
  0.0)

#(define (stencil grob)
(let*
   ((pc (ly:grob-parent (ly:grob-parent grob X) X))
    (dir (ly:grob-property grob 'direction))
    (half-space (* 0.5 (ly:staff-symbol-staff-space grob)))
    (y1 (* half-space (ly:stem::calc-stem-begin-position grob)))
    (y2 (* half-space (ly:stem::calc-stem-end-position grob)))
    (nh (ly:grob-array->list (ly:grob-object grob 'note-heads)))
    (x (ly:grob-relative-coordinate (car nh) pc X))
    (thick (* (ly:grob-property grob 'thickness)
              (ly:staff-symbol-line-thickness grob))))
    (apply
      ly:stencil-add
      (map (lambda (nh)
             (let ((my-x (car (ly:grob-extent nh pc X))))
               (make-line-stencil thick x y2 my-x y1)))
           nh))))

\relative c' {
  \override Stem #'positioning-done = #positioning-done
  \override Stem #'stencil = #stencil
  <d d d> <d d d d d> <d d d> <d d d d d d d>
}

\relative c'' {
  \override Stem #'positioning-done = #positioning-done
  \override Stem #'stencil = #stencil
  <d d d> <d d d d d> <d d d> <d d d d d d d>
}

Malheureusement avec des altérations, elles ne se placent pas devant 
chaque tête de note mais se juxtaposent seulement au début de l'accord.
Exemple:
\relative c' {
  \override Stem #'positioning-done = #positioning-done
  \override Stem #'stencil = #stencil
  <d! dis> <d d d d d> <dis d d!> <d d d d d d d>
}

Phil.