Subject: Hampes + changements de portées + accords arpégés

From: Bernard Meylan <[email-masked]>
Date: Sun, 11 Sep 2016 01:49:34 -0700 (MST)

Bonjour/soir à tous!

Pour satisfaire mes besoins «prise de tête assurée"»..., j'ai récupéré dans
le manuel, au chapitre 2.2.1, "Hampes et changements de portées", le code me
permettant (a priori...) d'obtenir ceci:

<http://lilypond-french-users.1298960.n2.nabble.com/file/n7584149/exemple_cross_staff.jpeg> 

Vous remarquerez que, comme je ne puis jamais «faire simple», il a fallu que
la main droite se voie affublée de 2 voix (et non d'une, comme dans le
manuel) pour y glisser un accord à main droite et pour parachever le
désastre, que l'accord écartelé entre portée main gauche et portée main
droite se pare d'un très élégant \arpeggio...

Voici ce code que j'ai tenté de bidouiller pour tenter de reproduire l'image
ci-dessus:

\version "2.18.2"

\layout {
  \context {
    \PianoStaff
    \consists #Span_stem_engraver
  }
}

{
  \new PianoStaff <<
    \new Staff {
      \relative c'' {
      \key b \major
      \time 3/4
      <<{\voiceOne
  <e b' e>2 <cis e fis cis'>4 <dis fis dis'>2
    }
    \new Voice
    {\voiceTwo
      <e, b'>2\arpeggio fis4\arpeggio <fis b>2\arpeggio
    }
  >> \oneVoice
      }
    }
    \new Staff {
      \relative c' {
      \key b \major
      \clef bass
      \voiceOne
      \crossStaff {<gis b>2\arpeggio ais4\arpeggio b2\arpeggio}
      }
    }
}

mais, peau de zob... les notes main gauche censées s'accoupler avec leurs
consoeurs main droite vont chercher -évidemment- celles qui se trouvent sous
\voiceOne... inverser les voix ne résout pas le problème... bref, avez-vous
une lueur dans ce tunnel?

Bernard

-----
Cordialement

Bernard
--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Hampes-changements-de-portees-accords-arpeges-tp7584149.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: "Daniel Bernair" <[email-masked]>
Date: Sun, 11 Sep 2016 11:22:55 +0200

Je viens d'essayer en ajoutant après \new PianoStaff,
\set PianoStaff.connectArpeggios = ##t
et la compil correspond à ce que tu voudrais ?
Amicalement,
Daniel Bernair

-----Message d'origine----- 
De : Bernard Meylan
Date : dimanche 11 septembre 2016 10:49
À : [email-masked]
Objet : Hampes + changements de portées + accords arpégés

Bonjour/soir à tous!

\version "2.18.2"

\layout {
  \context {
    \PianoStaff

{
  \new PianoStaff <<
    \new Staff {
      \relative c'' {
      \key b \major
      \time 3/4
      <<{\voiceOne
      }
    }
    \new Staff {
      \relative c' {
      \key b \major
      \clef bass
      \voiceOne
}

Bernard

-----
Cordialement

Bernard
--
View this message in context: 
http://lilypond-french-users.1298960.n2.nabble.com/Hampes-changements-de-portees-accords-arpeges-tp7584149.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

_______________________________________________
liste de diffusion lilypond-user-fr
[email-masked]
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

---

From: Seventies <[email-masked]>
Date: Sun, 11 Sep 2016 02:31:09 -0700 (MST)

Bonjour Bernard,

Voici l'un des arpèges les plus "tordus" que j'ait eu à réaliser. Il y a
quelques ressemblances avec ton cas (Brahms, second concerto pour piano, mvt
3, mes. 249) :

<http://lilypond-french-users.1298960.n2.nabble.com/file/n7584151/arpege.jpg> 

Le commentaire que j'avais inséré à la réalisation :
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  % deux accords sont un à cheval sur les deux portées, et dans le sens
inhabituel (main gauche après main droite)
  % On utilise NoteColumn.force-hshift pour assurer le positionnement
correct.
  % Pour aligner les accords ou notes de la main gauche, il faut créer une
note invisible.
  %
  % Néanmoins, l'arpège sur les deux portées ne fonctionne pas avec des
accords décalés.
  % S'il fonctionne, il se place à gauche du premier accord.
  % On désactive donc la connexion des arpèges, et on crée deux arpèges, un
sur chaque portée -
  % ce qui nécessite une note invisible à la main gauche - et on règle leur
superposition grâce à extra-offset
  % dans le sens des X
  %
  % Le décalage MG/MD du premier accord est assez important pour accueillir
l'arpège (1.6 unités)
  % Dans les accords suivants, il est ramené à la valeur habituelle : 1.2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Et le code correspondant :

Main droite :

  \stemUp \tieUp
  <g, cis g'>4

  \override NoteColumn.force-hshift = #-0.8
  \polyphonic {
    \override TieColumn.tie-configuration = #'((6 . 1) (4 . 1) (2 . 1) (-0.8
. 1))

    <g c! ees! g>4 ~
    \override NoteColumn.force-hshift = #-0.6
    <g c ees g>2 ~

    q4(
  }{
    \crossStaff {
      \override NoteColumn.force-hshift = #0.8
      <c,! ees a>4 -\tweak extra-offset #'(4.7 . 0) -\tweak positions #'(-6
. -1) \arpeggio ~
      \override NoteColumn.force-hshift = #0.6
      <c ees a>2 ~
      q 8
    }
  }

  \revert NoteColumn.force-hshift
  \revert TieColumn.tie-configuration
  \set PianoStaff.connectArpeggios = ##t
  \breathe
  \stemNeutral

Main gauche :

  \up cis_. e]_.)
  \down

  <<
    {
      \voiceOne
      \override NoteColumn.force-hshift = #-0.8
      \hideNotes g4
      \override NoteColumn.force-hshift = #-0.6
      g2
      g8 \unHideNotes
    }
    \new Voice {
      \voiceTwo
      \override NoteColumn.force-hshift = #0.8
      <f, \tweak transparent ##t d>4 -\tweak extra-offset #'(0.4 . 0)
-\tweak positions #'(1.5 . 8) \arpeggio ~
      \override NoteColumn.force-hshift = #0.6
      f2 ~
      f8
    }
    \new Voice {
      \voiceFour
      \tweak Y-offset -4.5 r8 f,,8 ~
      f2 ~
      f8
    }
  \oneVoice
  \revert NoteColumn.force-hshift
  \set PianoStaff.connectArpeggios = ##t

  r8
  \breathe

En complément, les fonctions ou macros, heureusement simples :

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

up = {\change Staff = "up" \stemDown}
down = {\change Staff = "down" \stemUp}

En espérant que ça t'apporte un peu d'aide ... sinon, je me replongerai dans
ce code, vieux de plus d'un an ;-)

Cordialement,

Jean-François

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Hampes-changements-de-portees-accords-arpeges-tp7584149p7584151.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sun, 11 Sep 2016 12:25:33 +0200

Bonjour Bernard, bonjour à Tous,

Voilà une solution :

\version "2.18.2"

\layout {
  \context {
    \PianoStaff
    connectArpeggios = ##t
  }
}

{
  \new PianoStaff <<
    \new Staff \relative c'' {
      \key b \major
      \time 3/4
      <<
        \new Voice {
          \voiceTwo
          \shiftOnn
          <e b' e>2 <cis e fis cis'>4
          <dis fis dis'>2
        }
        \new Voice {
          \voiceFour
          \override Stem.cross-staff = ##t
          \override Stem.length = #14
          <e, b'>2\arpeggio fis4\arpeggio
          <fis b>2\arpeggio
        }
    }
    \new Staff {
      \key b \major
      \clef bass
      \time 3/4
      \new Voice {
        \voiceFour
        \autoBeamOff
        \crossStaff {
          %% does not work (not surprising):
          %\override NoteColumn.force-hshift = #1
          %% workaround:
          \override NoteHead.X-offset = #.75
          \override Stem.X-offset = #.75
          \override PianoStaff.Arpeggio.extra-offset = #'(-.75 . 0)
          <gis b>2\arpeggio ais4\arpeggio
          b2\arpeggio
          \revert NoteHead.X-offset
          \revert Stem.X-offset
          \revert PianoStaff.Arpeggio.extra-offset
        }
        \autoBeamOn
      }
    }
}

Il y a un certain nombre de choses qui m'échappent dans cette compil, je
poserai la question à la liste anglophone.
Cordialement,
Pierre

Le 11 septembre 2016 à 10:49, Bernard Meylan <[email-masked]> a écrit :

> View this message in context: http://lilypond-french-users.
> 1298960.n2.nabble.com/Hampes-changements-de-portees-
> accords-arpeges-tp7584149.html

---

From: Bernard Meylan <[email-masked]>
Date: Sun, 11 Sep 2016 04:03:44 -0700 (MST)

Bonjour Jean-François,

alors si Brahms t'a posé une telle colle, moi c'est Schumann (Le Pélerinage
de la Rose) qui me donne des sueurs froides... Ton code a -partiellement-
résolu le problème, à savoir qu'il m'a enfin été possible de «relier» les
deux arpeggio entre les portées, mais je n'ai pas réussi à décaler les
accords main gauche vers la droite... toutes mes tentatives avec ton code,
en y ajoutant quelques pincées de 
\override NoteColumn.force-hshift = #-0.8 se sont soldées par la suppression
des hampes entre portées. J'ai donc renoncé -pour l'instant- à décaler ces
accords arpégés vers la droite (ils sont tout aussi lisibles tel quels,
alignés sous les accords main droite).

Voici mon code:

Main Droite

\polyphonic { <e b' e>2 <cis e fis cis'>4 <dis fis dis'>2 }
  { \crossStaff { <e, b'>2 fis4 <fis b>2 }
  }

Main Gauche

\voiceTwo %pour ajuster les hampes vers le bas
  <gis b \tweak transparent ##t e,>2 -\tweak extra-offset #'(-0.3 . 3)
-\tweak positions #'(-2 . 6.5) \arpeggio \sustainOn
  <ais \tweak transparent ##t e>4 -\tweak extra-offset #'(-0.3 . 3) -\tweak
positions #'(-1 . 5) \arpeggio
  *2 -\tweak extra-offset #'(-0.3 . 3.3) -\tweak positions #'(-1 . 6)
\arpeggio

Le fait de mettre des notes invisibles sur une \voiceOne à main gauche
provoque chez moi une cassure des hampes entre les portées; c'est pourquoi
je l'ai supprimée...

Bernard

-----
Cordialement

Bernard
--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Hampes-changements-de-portees-accords-arpeges-tp7584149p7584153.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Seventies <[email-masked]>
Date: Sun, 11 Sep 2016 10:53:18 -0700 (MST)

Quand un tel problème se présente, je n'hésite pas à exagérer les différents
paramètres (un hshift de 10 permet de voir plus clairement le comportement
de LilyPond).

Et pour l'alignement des accords, je crois qu'il n'est pas anodin. N'étant
pas pianiste, il me semble que si la main gauche est devant la main droite,
l'accord de la main droite doit "terminer" l'arpège. Dans le cas contraire,
il faut d'abord frapper l'accord main droite puis commencer l'arpège à la
main gauche.

Nos romantiques avaient le soucis du détail dans leurs partitions 

Jean-François

-----
http://www.espace-midi.lilypond
--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Hampes-changements-de-portees-accords-arpeges-tp7584149p7584154.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Bernard Meylan <[email-masked]>
Date: Sun, 11 Sep 2016 13:19:32 -0700 (MST)

Seventies wrote
> pas pianiste, il me semble que si la main gauche est devant la main
> droite, l'accord de la main droite doit "terminer" l'arpège. Dans le cas
> contraire, il faut d'abord frapper l'accord main droite puis commencer
> l'arpège à la main gauche.

Là, il s'agit de la version pour piano du «Pélerinage de la Rose», mais
édité par Harmelle, donc avec une traduction française... Pratiquement
parlant, tu as entièrement raison, dans ce cas-ci l'accord arpégé devrait se
trouver, techniquement parlant, devant celui de la main droite, mais même
«mal» placé comme sur l'image plus haut, il ne me viendrait jamais à l'idée
de jouer d'abord la main droite et terminer ensuite par l'accord arpégé.

Bernard

-----
Cordialement

Bernard
--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Hampes-changements-de-portees-accords-arpeges-tp7584149p7584155.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.