direction des liaisons de prolongation

bonsoir à tous

version courte :dans une partie à deux voix je voudrais que les liaisons se comportent comme s'il n'y en avait qu'une, c'est à dire que leur direction soit fonction uniquement de la position des notes sur la portée. Je sais forcer la direction soit avec \override Tie.direction soit avec ^ ou _ devant un ~ mais je voudrais que cela se fasse automatiquement. Il se peut qu'il y ait une autre solution à mon problème => voir la version longue.

version longue :mon projet est de saisir tous les standards des realbooks que je suis susceptible de jouer dans un bœuf pour les afficher sur ma tablette. Comme je joue de différents instruments je transpose en Sib et en Mib en plus de la version en do.

Dans "Don't Get Arund Much Anymore" de Duke Ellincton et Bob Russell (Realbook 1 VIe édition page 122) des indications rythmiques sont données entre la ligne d'accord et la portée. Voir ici les 6 premières mesures.

Je traite la ligne de rythme comme une seconde voix, avec \improvisationOn pour les têtes de note, \override NoteHead.no-ledgers = ##t pour supprimer les lignes additionnelles et \override Rest #'staff-position = #6 pour la position des silences.

Dans la première voix (la mélodie) je positionne les silences sans difficulté avec \override Rest #'staff-position = #0. Le problème est dans la direction des liaisons. Considérant qu'il s'agit de la 1ère voix Lily me les dirige vers le haut. Bien sûr je peut corriger ceci à base de \override Tie.direction ou de _ et ^ devant les ~ mais ces corrections manuelles ne tiennent pas compte des versions transposées. Et ce qui fonctionne pour la version en Do ne convient pas pour celle en Mib (transposée d'une sixte au dessus pour des raisons de tessiture).

Ci-dessous une partie de mon code, correspondant aux 6 mesures évoquées plus haut.

Merci d'avance.

\version "2.18.2"

\paper {
page-count = #1
ragged-bottom = ##f
%ragged-last = ##t
}

\header {
tagline = ##f
composer = "Duke Ellington / Bob Russel"
title = \markup { "Don't Get Arund Much Anymore" \small "(Med. Swing)" }
}

\layout {
\context {
\Score
skipBars = ##t
}
}

harmonies = \chordmode {
r1s8 c4.:7+ d4:m7 dis8:dim c/e s1 s8 c4.:7 b4:7 bes8:7 a:7
s1 d:7 }

chordsRhythm = \relative c''' {
\override Rest #'staff-position = #6

\improvisationOn \override NoteHead.no-ledgers = ##t
s1 r8 b4. b4 b8 b | s1 | r8 b4. b4 b8 b | s1*2
\improvisationOff }

Melodie = \relative c'' {
\clef "treble" \key c \major \time 4/4
\override Rest #'staff-position = #0
\override Tie.direction = #DOWN
r8 e4 d8 c g f e~
\repeat volta 2 {
e1 | r8 e'4 d8 c g f e~ | e1

r8 g4 f8 e d c c'^~ | c4. a8~ a2 }
}

% The score definition
\book {

\bookpart {
\header {poet = \markup { \bold "Partition en C" } }
#(define output-suffix "C")

\score {
<<
\new ChordNames {
\set chordChanges = ##f
\harmonies
}

\new Staff <<
<< \Melodie \ \chordsRhythm >>

}

} }
\book {

\bookpart {
\header {poet = \markup { \bold "Partition en B" \flat } }
#(define output-suffix "Bb")

\score {
<<
\new ChordNames {
\set chordChanges = ##f
\transpose c d \harmonies
}

\new Staff <<
<< \transpose c d \Melodie \ \chordsRhythm >>

}

} }
\book {

\bookpart {
\header {poet = \markup { \bold "Partition en E" \flat } }
#(define output-suffix "Eb")

\score {
<<
\new ChordNames {
\set chordChanges = ##f
\transpose c a \harmonies
}

\new Staff <<
<< \transpose c a \Melodie \ \chordsRhythm >>

}

}

}

···
-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
[http://blog.vintherine.org/](http://blog.vintherine.org/) - [http://photos.vintherine.org/](http://photos.vintherine.org/)

Bonjour,

Tu utilises beaucoup de choses que je ne connais pas, alors ma réponse
sera peut-être à côté de la plaque. Cela dit je tente quand même...

···

Le 22/01/2018 23:36, Vincent Gay a écrit :

dans une partie à deux voix je voudrais que les liaisons se comportent
comme s'il n'y en avait qu'une, c'est à dire que leur direction soit
fonction uniquement de la position des notes sur la portée. [...]

[...] Le problème est
dans la direction des liaisons. Considérant qu'il s'agit de la 1ère voix
Lily me les dirige vers le haut.

Euh... essayer avec \oneVoice ?

Bonsoir Olivier si j'utilise \oneVoice... je n'aurai qu'une voix et ne sais comment insérer ma ligne rythmique. Bah... je me suis résolu à dupliquer ma variable mélodie en ne changeant que la direction des prolongations. Ce n'est pas très élégant, voire un peu bestial, mais ça marche !

···

Le 23/01/2018 à 01:43, Olivier Miakinen a écrit :

Euh... essayer avec \oneVoice ?
[http://lilypond.org/doc/v2.18/Documentation/notation/multiple-voices](http://lilypond.org/doc/v2.18/Documentation/notation/multiple-voices)

-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
[http://blog.vintherine.org/](http://blog.vintherine.org/) - [http://photos.vintherine.org/](http://photos.vintherine.org/)

Je ne crois pas, non. Mettre \oneVoice ne supprime pas magiquement les
autres voix écrites en parallèle, et pourvu qu'il n'y ait pas de
collision entre notes (ce qui ne devrait pas arriver si ta ligne
rythmique ne comporte pas de notes en \oneVoice elles aussi) je ne vois
pas pourquoi ça ne fonctionnerait pas.

Essaye toujours, ça n'engage à rien :

Melodie = \relative c'' {
  \clef "treble" \key c \major \time 4/4
  \oneVoice % j'ai supprimé les deux « \override ... »
  r8 e4 d8 c g f e~
  \repeat volta 2 {
    e1 | r8 e'4 d8 c g f e~ | e1

    r8 g4 f8 e d c c'~ | c4. a8~ a2 } % j'ai supprimé le « ^ »
}

(sans rien changer d'autre au code que tu donnais)

···

Le 23/01/2018 22:25, Vincent Gay a écrit :

Euh... essayer avec \oneVoice ?
LilyPond Notation Reference: 1.5.2 Multiple voices

si j'utilise \oneVoice... je n'aurai qu'une voix

Alors ça ! avoir 2 voix en mettant \oneVoice je n'y aurais pas pensé. Effectivement ça fonctionne au poil, merci Olivier. Où as-tu péché ça ? J'ai relu la doc, y compris la page que tu as mis en lien, sans voir mention de cette fonctionnalité autrement que pour signaler la fin de la section polyphonique. Encore merci.

···

Le 23/01/2018 à 23:40, Olivier Miakinen a écrit :

Je ne crois pas, non. Mettre \oneVoice ne supprime pas magiquement les
autres voix écrites en parallèle, et pourvu qu'il n'y ait pas de
collision entre notes (ce qui ne devrait pas arriver si ta ligne
rythmique ne comporte pas de notes en \oneVoice elles aussi) je ne vois
pas pourquoi ça ne fonctionnerait pas.

Essaye toujours, ça n'engage à rien
-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
[http://blog.vintherine.org/](http://blog.vintherine.org/) - [http://photos.vintherine.org/](http://photos.vintherine.org/)

Alors ça ! avoir 2 voix en mettant \oneVoice je n'y aurais pas pensé.
Effectivement ça fonctionne au poil, merci Olivier. Où as-tu péché ça ?

En fait, je n'utilise jamais la construction avec double antislash :
  <<
    { r8 r16 g e8. f16 g8[ c,] f e16 d }
    \\
    { d16 c d8~ d16 b c8~ c16 b c8~ c16 b8. }
  >>

mais toujours celle avec \new Voice explicites :
  \new Staff <<
    \new Voice = "first"
      { \voiceOne r8 r16 g e8. f16 g8[ c,] f e16 d }
    \new Voice= "second"
      { \voiceTwo d16 c d8~ d16 b c8~ c16 b c8~ c16 b8. }
  >>

Avec les \\ tu n'as pas besoin de préciser \voiceOne et \voiceTwo car
ils sont mis de façon implicite. Mais dans la méthode que j'utilise,
lorsque j'oublie de les préciser, cela fait comme si j'avais mis un
\oneVoice aux deux parties... du coup, par étourderie je vois assez
souvent ce qui se passe quand on a deux voix en \oneVoice ! Ça fait
des collisions et non pas la suppression d'une des deux voix.

J'ai relu la doc, y compris la page que tu as mis en lien, sans voir
mention de cette fonctionnalité autrement que pour signaler la fin de la
section polyphonique.

En fait le \oneVoice ne fait rien d'autre que de dire « reprendre le
comportement par défaut ».

···

Le 24/01/2018 11:25, Vincent Gay a écrit :

Bonsoir à tous,

Pour emboiter le pas d'Olivier, voici deux fonctions bien utiles - et très
simple, ... de mon niveau - pour écrire la polyphonie :

%{ Fonction polyphonic : assure une polyphonie de type \voiceOne \new Voice
\voiceTwo \oneVoice
La voix UN est connectée à l'environnement, c'est à dire qu'elle peut
prolonger des ligatures, liaisons, nuances, ... avec le mode normal
%}
polyphonic=
#(define-music-function (parser location voixun voixdeux)
   (ly:music? ly:music?)
   #{
     <<
       {
         \voiceOne
         $voixun
       }
       \new Voice
       {
         \voiceTwo
         $voixdeux
       }
     >>
     \oneVoice
   #}
   )

% idem en laissant libre l'orientation des hampes et liaisons -
% utile pour introduire une ligne indépendante de nuances, ...

polyphonicNeutral=
#(define-music-function (parser location voixun voixdeux)
   (ly:music? ly:music?)
   #{
     <<
       {
         $voixun
       }
       \new Voice
       {
         $voixdeux
       }
     >>
   #}
   )

Et pour être complet :

% Idem en inversant voix 1 et 2 - la voix 1, connectée à l'environnement,
% a les propriétés d'une voix 2,tournée vers le bas

polyphonicInv=
#(define-music-function (parser location voixun voixdeux)
   (ly:music? ly:music?)
   #{
     <<
       {
         \voiceTwo
         $voixun
       }
       \new Voice
       {
         \voiceOne
         $voixdeux
       }
     >>
     \oneVoice
   #}
   )

Cordialement,

Jean-François

···

-----
Liste des partitions LilyPond en http://www.espace-midi.com/lilypond
--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/